0){ $this->anketa = $anketa; } } public function displaySettings(){ global $lang; echo '
'; } // Izvozimo tabelo s parapodatki v xls public function exportTable(){ global $site_path; ini_set('memory_limit', '4048M'); // Pridobimo podatke za vse tabele $timestamp_data = $this->getTimestampData(); $page_data = $this->getPageData(); $question_data = $this->getQuestionData(); $variable_data = $this->getVariableData(); $spreadsheet = new Spreadsheet(); // Zavihek strani $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle("Strani"); $sheet->fromArray( $page_data, // The data to set NULL, // Array values with this value will not be set 'A1' // Top left coordinate of the worksheet range where ); $spreadsheet->createSheet(); // Zavihek vprasanja $sheet = $spreadsheet->getSheet(1); $sheet->setTitle("Vprašanja"); $sheet->fromArray( $question_data, // The data to set NULL, // Array values with this value will not be set 'A1' // Top left coordinate of the worksheet range where ); $spreadsheet->createSheet(); // Zavihek itemi $sheet = $spreadsheet->getSheet(2); $sheet->setTitle("Itemi"); $sheet->fromArray( $variable_data, // The data to set NULL, // Array values with this value will not be set 'A1' // Top left coordinate of the worksheet range where ); $spreadsheet->createSheet(); // Zavihek casi po straneh $sheet = $spreadsheet->getSheet(3); $sheet->setTitle("Časi po straneh"); $sheet->fromArray( $timestamp_data, // The data to set NULL, // Array values with this value will not be set 'A1' // Top left coordinate of the worksheet range where ); $writer = new Xlsx($spreadsheet); // ob_clean(); // ob_start(); $filename = 'advanced_timestamps_'.$this->anketa.'.xlsx'; header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); header("Content-Disposition: attachment;filename=".$filename); header("Cache-Control: max-age=0"); header("Last-Modified: ".date("D, d M Y H:i:s")); header("Cache-Control: cache, must-revalidate"); header("Pragma: public"); $writer->save("php://output"); // ob_end_flush(); die(); } // Pridobimo parapodatke casov po straneh private function getTimestampData(){ $data = array(0 => array('Stran ID', 'Respondent ID', 'Čas')); // Najprej dobimo case na uvodih (gru_id=0) $sql = sisplet_query("SELECT at.gru_id, at.usr_id, at.time_edit FROM srv_advanced_timestamps at, srv_user u WHERE u.ank_id='".$this->anketa."' AND at.usr_id=u.id AND gru_id<1 ORDER BY at.usr_id ASC, at.id ASC "); while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } // Dobimo se ostale case $sql = sisplet_query("SELECT at.gru_id, at.usr_id, at.time_edit FROM srv_advanced_timestamps at, srv_grupa g WHERE g.ank_id='".$this->anketa."' AND at.gru_id=g.id ORDER BY at.usr_id ASC, at.id ASC "); while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } return $data; } // Pridobimo podatke strani v anketi private function getPageData(){ $data = array(0 => array('Stran ID', 'Naslov', 'Vrstni red')); $sql = sisplet_query("SELECT id, naslov, vrstni_red FROM srv_grupa WHERE ank_id='".$this->anketa."' ORDER BY vrstni_red ASC "); while($row = mysqli_fetch_assoc($sql)){ $data[] = $row; } return $data; } // Pridobimo podatke vprasanj v anketi private function getQuestionData(){ $question_types = array( '1' => 'radio', '2' => 'checkbox', '3' => 'select', '4' => 'text', '21' => 'besedilo*', '5' => 'label', '6' => 'multigrid', '16' => 'multicheckbox', '19' => 'multitext', '20' => 'multinumber', '7' => 'number', '22' => 'compute ', '25' => 'quota', '8' => 'datum ', '17' => 'ranking ', '18' => 'vsota', '24' => 'grid - multiple', '23' => 'iz knjiznice', '9' => 'SN-imena', '26' => 'Lokacija', '27' => 'HeatMap ', ); $data = array(0 => array('Vprašanje ID', 'Stran ID', 'Naslov', 'Variabla', 'Tip')); $sql = sisplet_query("SELECT s.id, s.gru_id, s.naslov, s.variable, s.tip FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='".$this->anketa."' AND s.gru_id=g.id ORDER BY g.vrstni_red ASC, s.id ASC "); while($row = mysqli_fetch_assoc($sql)){ $row['tip'] = $question_types[$row['tip']]; $row['naslov'] = strip_tags($row['naslov']); $data[] = $row; } return $data; } // Pridobimo podatke posameznih itemov v vprasanjih private function getVariableData(){ $data = array(0 => array('Vrednost ID', 'Vprašanje ID, ', 'Naslov', 'Variabla', 'Vrstni red')); $sql = sisplet_query("SELECT v.id, v.spr_id, v.naslov, v.variable, v.vrstni_red FROM srv_vrednost v, srv_spremenljivka s, srv_grupa g WHERE g.ank_id='".$this->anketa."' AND s.gru_id=g.id AND v.spr_id=s.id ORDER BY g.vrstni_red ASC, s.id ASC, v.id ASC "); while($row = mysqli_fetch_assoc($sql)){ $row['naslov'] = strip_tags($row['naslov']); $data[] = $row; } return $data; } }