Portions created by the Initial Developer are Copyright (C) 2008-2016 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; //check permissions if (if_group("superadmin")) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //define the functions function array2csv(array &$array) { if (count($array) == 0) { return null; } ob_start(); $df = fopen("php://output", 'w'); fputcsv($df, array_keys(reset($array))); foreach ($array as $row) { fputcsv($df, $row); } fclose($df); return ob_get_clean(); } function download_send_headers($filename) { // disable caching $now = gmdate("D, d M Y H:i:s"); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Last-Modified: {$now} GMT"); // force download header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // disposition / encoding on response body header("Content-Disposition: attachment;filename={$filename}"); header("Content-Transfer-Encoding: binary"); } //define possible columns in the array $allowed_columns[] = 'device_uuid'; $allowed_columns[] = 'domain_uuid'; $allowed_columns[] = 'device_mac_address'; $allowed_columns[] = 'device_label'; $allowed_columns[] = 'device_template'; $allowed_columns[] = 'device_description'; //get the devices and send them as output $column_group = $_REQUEST["column_group"]; if (is_array($column_group) && @sizeof($column_group) != 0) { //validate columns foreach ($column_group as $index => $column_name) { if (!in_array($column_name, $allowed_columns)) { unset($column_group[$index]); } } //iterate columns if (is_array($column_group) && @sizeof($column_group) != 0) { $column_names = implode(", ", $column_group); $sql = "select ".$column_names." from v_devices "; $sql .= " where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $devices = $database->select($sql, $parameters, 'all'); unset($sql, $parameters, $column_names); //print_r($extensions); if (is_array($devices) && @sizeof($devices) != 0) { download_send_headers("data_export_".date("Y-m-d").".csv"); echo array2csv($devices); exit(); } } unset($column_group); } //set the row style $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //begin the page content require_once "resources/header.php"; echo "
\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "\n"; foreach ($allowed_columns as $column_name) { echo "\n"; echo " \n"; echo " "; echo " "; echo ""; if ($c==0) { $c=1; } else { $c=0; } } echo " \n"; echo " \n"; echo " "; echo "
".$text['header-export']."
\n"; echo " \n"; echo "
Column NameDescription
\n"; echo " "; echo " ".$column_name."
\n"; echo "
"; echo " \n"; echo "
"; echo "

"; echo "
"; //define the checkbox_toggle function echo "\n"; //include the footer require_once "resources/footer.php"; ?>