povzetek") * * 'data' - izvoz podatkov * - 'full' - celotna tabela podatkov - potrebno prenesti iz SurveyExport - TO SE LAHKO PRENAŠA NAKNADNO * - 'list' - kratek izpis podatkov - samo prvih 5 spremenljivk * * 'other' - poseben izvoz (Evoli, Hierarhija, MFDPS, MJU...) * - 'usable' - uporabni respondenti * - 'text_analysis' - analiza besedil v anketi * - 'speeder' - speeder index * - 'edits_analysis' - analiza urejanja ankete * - 'evoli' * - 'evoli_teammeter' * - 'hierarhija' * - 'mfdps' * - 'adecco_360' - treba dodatno prenesti * - '1ka_360' - treba dodatno prenesti * * 'gdpr' - izvoz gdpr porocil (ce je vklopljen gdpr v anketi) * - 'individual' - podrobnosti o zbiranju osebnih podatkov * - 'activity' - evidenca dejavnosti obdelav * * Formati izvoza: * - 'pdf' * - 'rtf' * - 'xls' * - 'csv' * - 'txt' * - 'html' * - 'spss_syntax' * - 'spss_sav' * - 'ppt' * * */ //use Export\Latexclasses\LatexDocument as LatexDocument; //include('../../function.php'); include('../../vendor/autoload.php'); include('export_definitions.php'); class ExportController{ var $anketa; // ID ankete function __construct(){ global $site_path, $global_user_id, $admin_type, $lang; # če pridemo iz rekodiranga urlja if (!isset($_GET['anketa']) && isset($_GET['dc']) && $_GET['dc'] != null) { $data = $_GET['dc']; $data = base64_decode($data); $data = unserialize($data); foreach ($data AS $get_param => $value) { if ($get_param != null && $get_param != '' && $value != null && $value != '' && $value != 'undefined') { $_GET[$get_param] = $value; } } } // Nastavimo ID ankete $this->anketa = $_GET['anketa']; # PDF lahko vidijo vsi, ki kliknejo na link za kreacijo PDF-ja # zato, kadar uporabnik ni logiran v CMS za pdf nastavimo $global_user_id kateri je enak avtorju ankete if ($global_user_id === null || $global_user_id === 0) { $sql = sisplet_query("SELECT insert_uid FROM srv_anketa WHERE id='$this->anketa'"); $row = mysqli_fetch_assoc($sql); $global_user_id = $row['insert_uid']; } // nastavimo jezik SurveyInfo::SurveyInit($this->anketa); $lang_admin = SurveyInfo::getInstance()->getSurveyColumn('lang_admin'); //$file = '../../../lang/'.$lang_admin.'.php'; $file = $site_path.'lang/'.$lang_admin.'.php'; include($file); } // Izvedemo export public function executeExport(){ global $site_path; // Nastavimo tip, podtip in format izvoza $export_type = $this->getExportType(); $export_format = $this->getExportFormat(); $exportType = $export_type['export_type']; $subtype = $export_type['export_subtype']; /* echo "anketa: ".$this->anketa."
"; echo "subtype: ".$subtype."
"; echo "exportType: ".$exportType."
"; echo "export_format: ".$export_format."
"; */ // Posebni izvozi, ki se izvajajo drugje (za npr. locene module - evoli, mfdps...) if( $exportType == 'other' && in_array($subtype, array('evoli', 'evoli_teammeter', 'mfdps', 'heirarhija', 'text_analysis', 'usable', 'speeder')) ){ $this->exportOther($subtype); } else{ switch($export_format){ case 'pdf': case 'rtf': case 'html': // Ustvarimo latex dokument $document = new LatexDocument($this->anketa); $document->createDocument($export_type['export_type'], $export_type['export_subtype'], $export_format, (isset($_GET['sprID'])?$_GET['sprID']:null)); break; case 'xml': // Ustvarimo xml dokument $document = new XmlDocument($this->anketa); $document->createXmlDocument($export_type['export_type'], $export_type['export_subtype'], $export_format); break; case 'xls': // Mogoce lahko tudi xls po novem naredimo preko html-ja iz latexa? Html tabele se naceloma vredu izpisejo v xls... //Nov nacin izvoza xls iz Latex datoteke //$document = new LatexDocument($this->anketa); //$document->createDocument($export_type['export_type'], $export_type['export_subtype'], $export_format, $_GET['sprID']); //Nov nacin izvoza xls iz Latex datoteke - konec //Star nacin izvoza xls switch($subtype){ case 'sums': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaSums.php'; include ($path); $izvoz = new XlsIzvozAnalizaSums ($_GET['anketa'], $_GET['sprID'], $_GET['loop']); break; case 'desc': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaStatistics.php'; include ($path); $izvoz = new XlsIzvozAnalizaStatistics ($_GET['anketa'], $_GET['sprID'], $_GET['loop']); break; case 'freq': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaFrekvenca.php'; include ($path); $izvoz = new XlsIzvozAnalizaFrekvenca ($_GET['anketa'], $_GET['sprID'], $_GET['loop']); break; case 'crosstab': //poberemo tabelo s podatki $crossData1 = explode(",", $_GET['data1']); $crossData2 = explode(",", $_GET['data2']); $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaCrosstab.php'; include ($path); $izvoz = new XlsIzvozAnalizaCrosstab ($_GET['anketa'], $crossData1, $crossData2); break; case 'multicrosstab': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaMultiCrosstab.php'; include ($path); $izvoz = new XlsIzvozAnalizaMultiCrosstab ($_GET['anketa']); break; case 'mean': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaMean.php'; include ($path); $izvoz = new XlsIzvozAnalizaMean ($_GET['anketa']); break; case 'ttest': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaTTest.php'; include ($path); $izvoz = new XlsIzvozAnalizaTTest ($_GET['anketa']); break; case 'break': $path = $site_path.'admin/exportclases/class.xlsIzvozAnalizaBreak.php'; include ($path); $izvoz = new XlsIzvozAnalizaBreak ($_GET['anketa']); break; } $izvoz->createXls(); $izvoz->getFile('xls_analiza_'.$subtype.'_'.time().'.xls'); //Star nacin izvoza xls - konec break; case 'ppt': switch($subtype){ case 'chart': $path = $site_path.'admin/exportclases/class.pptIzvozAnalizaCharts.php'; include ($path); $izvoz = new PptIzvozAnalizaCharts ($_GET['anketa'], $_GET['sprID'], $_GET['loop']); $izvoz->createPpt(); $izvoz->getFile('ppt_analiza_'.$subtype.'_'.time().'.pptx'); break; case 'heatmap': $path = $site_path.'admin/exportclases/class.pptIzvozHeatmapImage.php'; include ($path); $izvoz = new pptIzvozHeatmapImage ($_GET['anketa'], $_GET['sprID'], $_GET['loop']); $izvoz->createPpt(); $izvoz->getFile('ppt_analiza_heatmap_image_'.$_GET['sprID'].'_'.time().'.ppt'); break; } break; case 'csv': case 'txt': case 'spss_syntax': case 'spss_sav': break; } } } // Izvozi, ki se izvedejo drugje v locenih modulih (npr. evoli, mfdps, hierarhija...) private function exportOther($subtype=''){ global $site_path; switch($subtype){ case 'evoli': $usr_id = (isset($_GET['usr_id']) && $_GET['usr_id'] > 0) ? $_GET['usr_id'] : 0; $evoli = new SurveyEvoli($_GET['anketa']); $evoli->executeExport($usr_id); break; case 'evoli_teammeter': $skupina = (isset($_GET['skupina']) && $_GET['skupina'] > 0) ? $_GET['skupina'] : 0; $evoli_tm = new SurveyTeamMeter($_GET['anketa']); $evoli_tm->executeExport($skupina); break; case 'mfdps': $usr_id = (isset($_GET['usr_id']) && $_GET['usr_id'] > 0) ? $_GET['usr_id'] : 0; $evoli = new SurveyMFDPS($_GET['anketa']); $evoli->executePDFExport($usr_id); break; case 'hierarhija': //include ($site_path.'admin/survey/modules/mod_hierarhija/class/HierarhijaIzvozAnalize.php'); $izvoz = new \Hierarhija\HierarhijaIzvozAnalize($_GET['anketa']); $izvoz->createPdf(); $izvoz->getFile('pdf_analiza1'.time().'.pdf'); break; case 'text_analysis': //include ($site_path.'admin/survey/classes/class.SurveyTextAnalysis.php'); $STA = new SurveyTextAnalysis($_GET['anketa']); $STA->exportCSVTable($_GET['type']); break; case 'usable': $path = $site_path.'admin/exportclases/class.xlsIzvozUsable.php'; include ($path); $izvoz = new XlsIzvozUsable ($_GET['anketa']); $izvoz->createXls(); $izvoz->getFile('xls_usable'.time().'.xls'); break; case 'speeder': include ($site_path.'admin/exportclases/class.xlsIzvozSpeeder.php'); $izvoz = new XlsIzvozSpeeder ($_GET['anketa']); $izvoz->createXls(); $izvoz->getFile('xls_speeder'.time().'.xls'); break; } } // Nastavimo tip izvoza private function getExportType(){ global $site_path, $global_user_id, $admin_type, $lang; if(isset($_GET['a'])) switch ( $_GET['a'] ) { case A_REPORT_VPRASALNIK_PDF: case A_REPORT_VPRASALNIK_RTF: $export_type = 'survey'; $export_subtype = 'q_empty'; break; case A_REPORT_VPRASALNIK_XML: $export_type = 'survey'; $export_subtype = 'q_empty_xml'; break; case A_REPORT_PDF_RESULTS: case A_REPORT_RTF_RESULTS: $export_type = 'survey'; if(isset($_GET['usr_id'])) $export_subtype = 'q_data'; // če je definiran $_GET['usr_id'] izpisemo samo njegove odgovore else $export_subtype = 'q_data_all'; // če ni usr_id definiran vprasalnike z odgovori vseh respondentov enega za drugim break; case A_REPORT_PDF_COMMENT: case A_REPORT_RTF_COMMENT: $export_type = 'survey'; $export_subtype = 'q_comment'; break; case A_REPORT_PDF_STATUS: $export_type = 'status'; $export_subtype = 'status'; break; case A_REPORT_PDF_EDITS_ANALYSIS: $export_type = 'other'; $export_subtype = 'edits_analysis'; break; case A_REPORT_PDF_LIST: case A_REPORT_RTF_LIST: case A_REPORT_XLS_LIST: $export_type = 'data'; $export_subtype = 'list'; break; case A_GDPR_PDF_INDIVIDUAL: case A_GDPR_RTF_INDIVIDUAL: $export_type = 'gdpr'; $export_subtype = 'individual'; break; case A_GDPR_PDF_ACTIVITY: case A_GDPR_RTF_ACTIVITY: $export_type = 'gdpr'; $export_subtype = 'activity'; break; } if(isset($_GET['m'])) switch ( $_GET['m'] ) { // Kakšna je razlika med tema dvema izvozoma?? //case M_REPORT_ANALIZA_HEATMAP_IMAGE: //case M_REPORT_PDF_HEATMAP_IMAGE: case M_REPORT_ANALIZA_PPT_HEATMAP_IMAGE: $export_type = 'analysis'; $export_subtype = 'heatmap'; break; case M_REPORT_ANALIZA_HEATMAP_IMAGE: $export_type = 'analysis'; $export_subtype = 'heatmap_image'; break; case M_REPORT_PDF_HEATMAP_IMAGE: case M_REPORT_ANALIZA_RTF_HEATMAP_IMAGE: $export_type = 'analysis'; $export_subtype = 'heatmap_image_pdf'; break; case M_REPORT_ANALIZA_PDF_SUMS: case M_REPORT_ANALIZA_RTF_SUMS: case M_REPORT_ANALIZA_XLS_SUMS: $export_type = 'analysis'; $export_subtype = 'sums'; break; case M_REPORT_ANALIZA_PDF_FREKVENCA: case M_REPORT_ANALIZA_RTF_FREKVENCA: case M_REPORT_ANALIZA_XLS_FREKVENCA: $export_type = 'analysis'; $export_subtype = 'freq'; break; case M_REPORT_ANALIZA_PDF_STAT: case M_REPORT_ANALIZA_RTF_STAT: case M_REPORT_ANALIZA_XLS_STAT: $export_type = 'analysis'; $export_subtype = 'desc'; break; case M_REPORT_ANALIZA_PDF_CHARTS: case M_REPORT_ANALIZA_RTF_CHARTS: case M_REPORT_ANALIZA_PPT_CHARTS: $export_type = 'analysis'; $export_subtype = 'chart'; break; case M_REPORT_ANALIZA_PDF_CROSSTAB_IZPIS: case M_REPORT_ANALIZA_RTF_CROSSTAB_IZPIS: case M_REPORT_ANALIZA_XLS_CROSSTAB_IZPIS: $export_type = 'analysis'; $export_subtype = 'crosstab'; break; case M_REPORT_ANALIZA_PDF_MULTICROSSTAB_IZPIS: case M_REPORT_ANALIZA_RTF_MULTICROSSTAB_IZPIS: case M_REPORT_ANALIZA_XLS_MULTICROSSTAB_IZPIS: $export_type = 'analysis'; $export_subtype = 'multicrosstab'; break; case M_REPORT_ANALIZA_PDF_MEAN_IZPIS: case M_REPORT_ANALIZA_RTF_MEAN_IZPIS: case M_REPORT_ANALIZA_XLS_MEAN_IZPIS: $export_type = 'analysis'; $export_subtype = 'mean'; break; case M_REPORT_ANALIZA_PDF_TTEST_IZPIS: case M_REPORT_ANALIZA_RTF_TTEST_IZPIS: case M_REPORT_ANALIZA_XLS_TTEST_IZPIS: $export_type = 'analysis'; $export_subtype = 'ttest'; break; case M_REPORT_ANALIZA_PDF_BREAK_IZPIS: case M_REPORT_ANALIZA_RTF_BREAK_IZPIS: case M_REPORT_ANALIZA_XLS_BREAK_IZPIS: $export_type = 'analysis'; $export_subtype = 'break'; break; case M_REPORT_ANALIZA_PDF_CREPORT: case M_REPORT_ANALIZA_RTF_CREPORT: $export_type = 'analysis'; $export_subtype = 'creport'; break; case M_REPORT_PDF_EVOLI: $export_type = 'other'; $export_subtype = 'evoli'; break; case M_REPORT_PDF_TEAMMETER: $export_type = 'other'; $export_subtype = 'evoli_teammeter'; break; case M_REPORT_PDF_MFDPS: $export_type = 'other'; $export_subtype = 'mfdps'; break; case M_REPORT_HIERARHIJA_PDF_IZPIS: $export_type = 'other'; $export_subtype = 'hierarhija'; break; case A_REPORT_XLS_USABLE: $export_type = 'other'; $export_subtype = 'usable'; break; case A_REPORT_XLS_SPEEDER: $export_type = 'other'; $export_subtype = 'speeder'; break; case A_REPORT_XLS_TEXT_ANALYSIS: case A_REPORT_CSV_TEXT_ANALYSIS: $export_type = 'other'; $export_subtype = 'text_analysis'; break; } return array('export_type'=>$export_type, 'export_subtype'=>$export_subtype); } // Nastavimo format izvoza private function getExportFormat(){ global $site_path, $global_user_id, $admin_type, $lang; if(isset($_GET['a'])) switch ( $_GET['a'] ) { case A_REPORT_VPRASALNIK_PDF: case A_REPORT_PDF_RESULTS: case A_REPORT_PDF_COMMENT: case A_REPORT_PDF_STATUS: case A_REPORT_PDF_EDITS_ANALYSIS: case A_REPORT_PDF_LIST: case A_GDPR_PDF_INDIVIDUAL: case A_GDPR_PDF_ACTIVITY: $export_format = 'pdf'; break; case A_REPORT_RTF_COMMENT: case A_REPORT_VPRASALNIK_RTF: case A_REPORT_RTF_RESULTS: case A_REPORT_RTF_LIST: case A_GDPR_RTF_INDIVIDUAL: case A_GDPR_RTF_ACTIVITY: $export_format = 'rtf'; break; case A_REPORT_XLS_LIST: $export_format = 'xls'; break; case A_REPORT_VPRASALNIK_XML: $export_format = 'xml'; break; } if(isset($_GET['m'])) switch ( $_GET['m'] ) { // Kakšna je razlika med tema dvema izvozoma?? case M_REPORT_ANALIZA_HEATMAP_IMAGE: case M_REPORT_PDF_HEATMAP_IMAGE: case M_REPORT_ANALIZA_PDF_FREKVENCA: case M_REPORT_ANALIZA_PDF_CROSSTAB_IZPIS: case M_REPORT_ANALIZA_PDF_MULTICROSSTAB_IZPIS: case M_REPORT_ANALIZA_PDF_MEAN_IZPIS: case M_REPORT_ANALIZA_PDF_TTEST_IZPIS: case M_REPORT_ANALIZA_PDF_BREAK_IZPIS: case M_REPORT_ANALIZA_PDF_STAT: case M_REPORT_ANALIZA_PDF_SUMS: case M_REPORT_ANALIZA_PDF_CHARTS: case M_REPORT_ANALIZA_PDF_CREPORT: case M_REPORT_PDF_EVOLI: case M_REPORT_PDF_TEAMMETER: case M_REPORT_PDF_MFDPS: case M_REPORT_HIERARHIJA_PDF_IZPIS: $export_format = 'pdf'; break; case M_REPORT_ANALIZA_RTF_STAT: case M_REPORT_ANALIZA_RTF_SUMS: case M_REPORT_ANALIZA_RTF_FREKVENCA: case M_REPORT_ANALIZA_RTF_CROSSTAB_IZPIS: case M_REPORT_ANALIZA_RTF_MULTICROSSTAB_IZPIS: case M_REPORT_ANALIZA_RTF_MEAN_IZPIS: case M_REPORT_ANALIZA_RTF_TTEST_IZPIS: case M_REPORT_ANALIZA_RTF_BREAK_IZPIS: case M_REPORT_ANALIZA_RTF_CHARTS: case M_REPORT_ANALIZA_RTF_CREPORT: case M_REPORT_ANALIZA_RTF_HEATMAP_IMAGE: $export_format = 'rtf'; break; case M_REPORT_ANALIZA_XLS_FREKVENCA: case M_REPORT_ANALIZA_XLS_CROSSTAB_IZPIS: case M_REPORT_ANALIZA_XLS_MULTICROSSTAB_IZPIS: case M_REPORT_ANALIZA_XLS_STAT: case M_REPORT_ANALIZA_XLS_SUMS: case M_REPORT_ANALIZA_XLS_MEAN_IZPIS: case M_REPORT_ANALIZA_XLS_TTEST_IZPIS: case M_REPORT_ANALIZA_XLS_BREAK_IZPIS: case A_REPORT_XLS_USABLE: case A_REPORT_XLS_SPEEDER: case A_REPORT_XLS_TEXT_ANALYSIS: $export_format = 'xls'; break; case A_REPORT_CSV_TEXT_ANALYSIS: $export_format = 'csv'; break; case M_REPORT_ANALIZA_PPT_CHARTS: case M_REPORT_ANALIZA_PPT_HEATMAP_IMAGE: $export_format = 'ppt'; break; } return $export_format; } }