1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <?php include_once("../include/common.inc.php"); $format = "csv"; //$format = "json"; if (isset($_REQUEST['format'])) $format = $_REQUEST['format']; setlocale(LC_CTYPE, 'C'); if ($format == "csv") { $headers = Array("name"); } else { $headers = Array(); } $db = $server->get_db('disclosr-agencies'); try { $rows = $db->get_view("app", "all", null, true)->rows; $dataValues = Array(); foreach ($rows as $row) { if (isset($row->value->statistics->employees)) { $headers = array_unique(array_merge($headers, array_keys(object_to_array($row->value->statistics->employees)))); } } } catch (SetteeRestClientException $e) { setteErrorHandler($e); } $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.employeestats.' . date("c") . '.csv"'); } header('Pragma: no-cache'); header('Expires: 0'); if ($format == "csv") { fputcsv($fp, $headers); } else if ($format == "json") { echo '{ "labels" : ["' . implode('","', $headers) . '"],' . PHP_EOL; } try { $agencies = $db->get_view("app", "all", null, true)->rows; //print_r($agencies); $first = true; if ($format == "json") { echo '"data" : [' . PHP_EOL; } foreach ($agencies as $agency) { if (isset($agency->value->statistics->employees)) { $row = Array(); $agencyEmployeesArray = object_to_array($agency->value->statistics->employees); foreach ($headers as $i => $fieldName) { if ($format == "csv") { if (isset($agencyEmployeesArray[$fieldName])) { $row[] = $agencyEmployeesArray[$fieldName]["value"] ; } else if ($i == 0) { $row[] = $agency->value->name; } else { $row[] = 0; } } else if ($format == "json") { if (isset($agencyEmployeesArray[$fieldName])) { $row[] = '[' . $i . ',' . $agencyEmployeesArray[$fieldName]["value"] . ']'; } else { $row[] = '[' . $i . ',0]'; } } } 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; } ?> |