. */ require_once("./include/include.php"); require_once("./include/IExport.php"); $exports = array(); $dir = dirname($_SERVER["SCRIPT_FILENAME"])."/Exports/*.php"; if( is_dir(dirname($dir)) ) { foreach( glob($dir) as $file ) { if( is_file($file) ) { $className = basename($file, ".php"); require_once($file); $exports[$className] = new $className; } } }else { debug(dirname($dir)." does not exist, failed loading exports"); } $colSeparators = array(); $colSeparators['semicolon'] = ";"; $colSeparators['comma'] = ","; if( isset( $_POST['columnSeparator']) && array_key_exists($_POST['columnSeparator'], $colSeparators) ) { $_SESSION['export_columnSeparator'] = $_POST['columnSeparator']; }elseif( !isset($_SESSION['export_columnSeparator']) ) { $_SESSION['export_columnSeparator'] = array_keys($colSeparators)[0]; } $textDelimiters = array(); $textDelimiters['DoubleQuote'] = "\""; $textDelimiters['SingleQuote'] = "'"; $textDelimiters['None'] = ""; if( isset( $_POST['textDelimiter']) && array_key_exists($_POST['textDelimiter'], $textDelimiters) ) { $_SESSION['export_textDelimiter'] = $_POST['textDelimiter']; }elseif( !isset($_SESSION['export_textDelimiter']) ) { $_SESSION['export_textDelimiter'] = array_keys($textDelimiters)[0]; } $error = NULL; if( $_SERVER['REQUEST_METHOD'] == "POST" ) { if( isset($_POST['export']) && array_key_exists($_POST['export'], $exports) && $exports[ $_POST['export'] ]->hasAccess() ) { admin_header(true, true); $exportClass = $exports[ $_POST['export'] ]; $separator = $colSeparators[ $_SESSION['export_columnSeparator'] ]; $textDelimiter = $textDelimiters[ $_SESSION['export_textDelimiter'] ]; $data = ""; $columns = array(); foreach($exportClass->getHeaders() as $headerName => $headerValue) { $columns[] = $headerName; if( strlen($textDelimiter) > 0 ) { $data .= $textDelimiter . str_replace($textDelimiter, $textDelimiter.$textDelimiter, $headerValue) . $textDelimiter . $separator; }else { $data .= $headerValue . $separator; } } $data = substr($data, 0, -1) . "\n"; foreach($exportClass->getData() as $row) { foreach($columns as $column) { if( !isset($row[$column]) ) { $data .= $separator; }elseif( is_numeric($row[$column]) || strlen($textDelimiter) == 0 ) { $data .= $row[$column] . $separator; }else { $data .= $textDelimiter . str_replace($textDelimiter, $textDelimiter.$textDelimiter, $row[$column]) . $textDelimiter . $separator; } } $data = substr($data, 0, -1) . "\n"; } header("Last-Modified: " . gmdate("D, d M Y H:i ") . " GMT"); header('Pragma: no-cache'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header("Content-length: ".strlen($data)); header("Content-disposition: attachment; filename=\"".$_POST['export'].".csv\""); header("Content-type: application/octet-stream"); header("Content-Transfer-Encoding: binary"); header('Pragma: public'); echo $data; admin_footer(true, true); }else { $error = "Unknown export selected, or you don't have access."; } } if( $_SERVER['REQUEST_METHOD'] == "GET" || $error != NULL ) { admin_header(); if( $error != NULL ) { echoln("" . $error . "

"); } echoln("

"); foreach( $exports as $exportName => $exportClass ) { if( $exportClass->hasAccess() ) { echoln(""); echoln("
"); echoln("" . $exportClass->getDescription() . "

"); } } echoln("

"); echoln("Column separator: "); echoln(""); echoln("
Text delimiter: "); echoln(""); echoln("

"); echoln("

"); admin_footer(); } ?>