Score exporter
[disclosr.git] / admin / exportScore.csv.php
blob:a/admin/exportScore.csv.php -> blob:b/admin/exportScore.csv.php
--- a/admin/exportScore.csv.php
+++ b/admin/exportScore.csv.php
@@ -1,1 +1,73 @@
+<?php
 
+include_once("../include/common.inc.php");
+
+$db = $server->get_db('disclosr-agencies');
+$format = "csv";
+//$format = "json";
+if (isset($_REQUEST['format']))  $format = $_REQUEST['format'];
+
+setlocale(LC_CTYPE, 'C');
+
+    $headers = Array();
+
+$fp = fopen('php://output', 'w');
+if ($fp && $db) {
+    if ($format == "csv") {
+        header('Content-Type: text/csv; charset=utf-8');
+        header('Content-Disposition: attachment; filename="export.score.' . date("c") . '.csv"');
+    }
+    header('Pragma: no-cache');
+    header('Expires: 0');
+    
+    try {
+        $agencies = $db->get_view("score", "score", null, true)->rows;
+        //print_r($agencies);
+        $first = true;
+        if ($format == "json") {
+        echo '"data" : ['.PHP_EOL;
+        
+        }
+        foreach ($agencies as $agency) {
+            $agencyArray = object_to_array($agency->value);
+            if ($first) {
+                $headers  = array_keys($agencyArray);
+if ($format == "csv") {
+        fputcsv($fp, $headers);
+    } else if ($format == "json") {
+        echo '{
+            "labels" : ["' . implode('","', $headers) . '"],'.PHP_EOL;
+    }
+            }
+                      $row = Array();
+            
+                foreach ($headers as $i => $fieldName) {
+                    if (isset($agencyArray[$fieldName])) {
+                        $row[] = $agencyArray[$fieldName];
+                    } else {
+                        $row[] = '';
+                    }
+                }
+                if ($format == "csv") {
+                    fputcsv($fp, array_values($row));
+                } else if ($format == "json") {
+                    if (!$first) echo ",";
+                    echo '{"data" : [' . implode(",", array_values($row)) . '], "label": "'.$agency->value->name.'", "lines" : { "show" : true }, "points" : { "show" : true }}'.PHP_EOL;
+                   
+                }
+                 $first = false;
+            }
+        
+        if ($format == "json") {
+        echo ']
+            }'.PHP_EOL;
+        
+        }
+    } catch (SetteeRestClientException $e) {
+        setteErrorHandler($e);
+    }
+
+    die;
+}
+?>
+