diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..3f7a4162f --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# Vendor folder +/vendor/ + +# DEV tools +.vscode/ +.idea/ + +# SVN +.svn/ + +# Docker database +/utils/Docker/sql/database +docker + +# Cache files +/admin/survey/SurveyData/*.html + +# Log files +*.log + +# dat 1ka files +*.dat + +# CSV files +*.csv + +# Map files (sass) +*.map + +# Applications +*.app +*.exe +*.war + +# Large media files +*.mp4 +*.tiff +*.avi +*.flv +*.mov +*.wmv + + +# Settings, htaccess... +/settings.php +/settings_optional.php +/.htaccess +/composer.bat +/composer.phar +/composer.lock +/.favorites.json \ No newline at end of file diff --git a/admin/survey/SurveyAdminAjax.php b/admin/survey/SurveyAdminAjax.php index 634f945c2..4891ce366 100644 --- a/admin/survey/SurveyAdminAjax.php +++ b/admin/survey/SurveyAdminAjax.php @@ -318,7 +318,9 @@ class SurveyAdminAjax { if (isset ($_POST['state'])) $state = $_POST['state']; if (isset ($_POST['return_finished'])) - $return_finished = $_POST['return_finished']; + $return_finished = $_POST['return_finished']; + if (isset ($_POST['subsequent_answers'])) + $subsequent_answers = $_POST['subsequent_answers']; if (isset ($_POST['cookie_continue'])) $cookie_continue = $_POST['cookie_continue']; if (isset ($_POST['block_ip'])) @@ -1084,6 +1086,7 @@ class SurveyAdminAjax { 'cookie', 'cookie_return', 'return_finished', + 'subsequent_answers', 'cookie_continue', 'user_from_cms', 'user_base', diff --git a/admin/survey/SurveyAdminSettings.php b/admin/survey/SurveyAdminSettings.php index a7bf114c5..e945ebce1 100644 --- a/admin/survey/SurveyAdminSettings.php +++ b/admin/survey/SurveyAdminSettings.php @@ -494,6 +494,12 @@ class SurveyAdminSettings { echo '' . "\n\r"; + echo '
'; + + // Nikoli ne more popravljati svojih odgovorov (tudi ce se npr. vrne na prejsnjo stran) + echo '
'; + echo ' ' . "\n\r"; + echo '
' . "\n\r"; echo '
'; // Ce ni sprejel piskotka lahko/ne more nadaljevati diff --git a/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php b/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php index 8fa629641..5c2a9e9fb 100644 --- a/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php +++ b/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php @@ -18,7 +18,8 @@ class BesediloLatex extends LatexSurveyElement var $internalCellHeight; protected $texBigSkip = '\bigskip'; protected $export_subtype; - protected $path2SignatureImages; + protected $path2SignatureImages; + protected $texGapBeforeTable = '\vspace*{-\baselineskip}'; public function __construct() { @@ -183,7 +184,7 @@ class BesediloLatex extends LatexSurveyElement $izpisanoBesediloPoStarem = 0; }elseif($export_data_type==1){ //ce je izpis razsirjen $okvir = 1; //rabimo okvir - //$okvir = 0; //rabimo okvir + //$okvir = 0; //ne rabimo okvir } }else{ //ce je prazen vprasalnik $okvir = 1; //rabimo okvir @@ -194,11 +195,17 @@ class BesediloLatex extends LatexSurveyElement /* echo "postavitev besedila: ".$postavitev." ".$spremenljivke['id']."
"; echo "položaj besedila: ".$polozajBesedila."
"; */ if($okvir == 1){ + + + if(($postavitev!=0)){ //ce ni vodoravno ob vprasanju, uporabi za izpis tabelo if($steviloOken>1){ //ce je stevilo oken vec kot 1, zacni novo tabelo + //Ureditev dodajanja manjsega razmika med besedilom vprasanja in tabelo + $tex .= $this->texGapBeforeTable; + //Ureditev dodajanja manjsega razmika med besedilom vprasanja in tabelo - konec #ZACETEK TABELE - //zacetek tabele - $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1); + //zacetek tabele + $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1); } //echo "ni vodoravno ob vprašanju
"; @@ -273,9 +280,8 @@ class BesediloLatex extends LatexSurveyElement //priprava latex kode za text box dolocene sirine in visine glede na export format z ustreznim besedilom odgovora - if($okvir == 1){ //ce rabimo okvir, izpisi - if($podatekVBazi && $export_format == 'pdf' && $steviloOken==1){ //ce je podatek v bazi in je pdf oz. se izpisuje odgovore respondenta - //$dataTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $besedilo, $textboxAllignment, 1); + if($okvir == 1){ //ce rabimo okvir, izpisi + if($podatekVBazi && $export_format == 'pdf'){ //ce je podatek v bazi in je pdf oz. se izpisuje odgovore respondenta $dataTextBox = $besedilo; //izpis besedila brez okvirja }else{ //echo "Pos: ".$postavitev."
"; diff --git a/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php b/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php index e659044e6..f252f7fc2 100644 --- a/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php +++ b/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php @@ -77,10 +77,36 @@ class DatumLatex extends LatexSurveyElement $besedilo .= '}'; //ureditev besedila odgovora respondenta v doloceno barvo - konec - //$answerTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $userAnswer['text'], $textboxAllignment, $noBorders); - $answerTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $besedilo, $textboxAllignment, $noBorders); - - + if($userAnswer['text']==''){ //ce ni izpisa odgovorov respondentov, priprava izpis s tabelo + $answerTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $besedilo, $textboxAllignment, $noBorders); + + //parametri tabele + //$parameterTabular = 'l'; + if($export_format == 'pdf'){ //ce je pdf + $parameterTabular = 'X'; + }else{ //ce je rtf + $parameterTabular = 'l'; + } + + //IZRIS + #ZACETEK TABELE + //zacetek tabele + $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1); + + $tex .= $answerTextBox; //izris znotraj tabele + + //zakljucek tabele + $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular'); + #KONEC TABELE + $tex .= $this->texBigSkip; + }else{ //ce je izpis odgovorov respondentov + $tex .= $this->texNewLine; + $tex .= $besedilo; + //$tex .= " \ "; //da ni tezave z "there is no line here to end" + $tex .= $texNewLine; + $tex .= $texNewLine; + } + //priprava missing-ov //pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ @@ -95,46 +121,17 @@ class DatumLatex extends LatexSurveyElement $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora //priprava missing-ov - konec - //parametri tabele - //$parameterTabular = 'l'; - if($export_format == 'pdf'){ //ce je pdf - $parameterTabular = 'X'; - }else{ //ce je rtf - $parameterTabular = 'l'; - } - - //IZRIS - #ZACETEK TABELE - //zacetek tabele - $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1); - - $tex .= $answerTextBox; //izris znotraj tabele - - //zakljucek tabele - $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular'); - #KONEC TABELE - - $tex .= ' \vspace{0.3cm} '; //prostor med okvirjem in missing - // Izris polj drugo - ne vem... if (count($array_others) > 0) { + $tex .= ' \vspace{0.3cm} '; //prostor med okvirjem in missing $tex .= $texNewLine; foreach ($array_others AS $oKey => $other) { $tex .= $symbol.' '.$other['naslov'].' '; $tex .= $texNewLine; } + $tex .= $texNewLine; } -/* $tex .= $texNewLine; - $tex .= $texNewLine; */ - $tex .= $this->texBigSkip; - - if($export_format == 'pdf'){ //ce je pdf - $tex .= '\\end{absolutelynopagebreak}'; //zakljucimo environment, da med vprasanji ne bo prelomov strani - }else{ //ce je rtf - - } - //IZRIS - KONEC return $tex; diff --git a/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php b/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php index 98708757d..3dbe1f965 100644 --- a/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php +++ b/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php @@ -252,14 +252,14 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){ $prop['full'] = ( isset($userAnswer[$rowVrednost['id']]) ); - if($this->language!=''){ //ce je prevod ankete + //if($this->language!=''){ //ce je prevod ankete + if($this->language>1){ //ce je prevod ankete $rowl = $this->srv_language_vrednost($rowVrednost['id']); //pridobi prevod naslova v ustreznem jeziku $stringTitle = ((( $rowl['naslov'] ) ? $rowl['naslov'] : ( ( $rowl['naslov2'] ) ? $rowl['naslov2'] : $rowl['variable'] ) )); //prevod naslova v ustreznem jeziku }else{ $stringTitle = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) )); } - - + //echo "jezik: ".$this->language."
"; if ( $spremenljivke['tip'] == 1 || $spremenljivke['tip'] == 3 ){ $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, $this->userAnswer[$rowVrednost['id']], $spremenljivke['orientation'], $indeksZaWhile, $vizualnaSkalaNumber); //$tex .= '{\ChoiceMenu[radio,radiosymbol=\ding{108},name=myGroupOfRadiobuttons]{}{='.$stringTitle.'}}'.$stringTitle.' '.$this->texNewLine; diff --git a/admin/survey/export/latexclasses/class.LatexSurvey.php b/admin/survey/export/latexclasses/class.LatexSurvey.php index f78008649..52b7d89eb 100644 --- a/admin/survey/export/latexclasses/class.LatexSurvey.php +++ b/admin/survey/export/latexclasses/class.LatexSurvey.php @@ -265,20 +265,21 @@ class LatexSurvey{ // Izrisemo naslov loopa $tex .= $this->dataPiping($loop_title); - + //TODO: TUdi tu se celotna spremenljivka prenaša naprej - $sqlSpremenljivke = sisplet_query("SELECT id, tip, visible, sistem, variable, naslov, info, orientation FROM srv_spremenljivka WHERE gru_id='".$this->grupa."' AND visible='1' ORDER BY vrstni_red ASC"); - + $sqlSpremenljivke = sisplet_query("SELECT id, tip, visible, sistem, variable, naslov, info, orientation, dostop FROM srv_spremenljivka WHERE gru_id='".$this->grupa."' AND visible='1' ORDER BY vrstni_red ASC"); + //echo "SELECT id, tip, visible, sistem, variable, naslov, info, orientation FROM srv_spremenljivka WHERE gru_id='".$this->grupa."' AND visible='1' ORDER BY vrstni_red ASC "."
"; + while ($rowSpremenljivke = mysqli_fetch_assoc($sqlSpremenljivke)) { // sprehodimo se skozi spremenljivke grupe $spremenljivka = $rowSpremenljivke['id']; - + if ($rowSpremenljivke['visible'] == 0 || !( ($this->admin_type <= $rowSpremenljivke['dostop'] && $this->admin_type>=0) || ($this->admin_type==-1 && $rowSpremenljivke['dostop']==4) ) ) { //echo "ni admin za sprem: ".$rowSpremenljivke['id']."
"; continue; } - + if($export_subtype=='q_data'||$export_subtype=='q_data_all'){ //ce je vprasalnik s podatki za enega ali vse respondente $preveriSpremenljivko = $this->checkSpremenljivkaData($spremenljivka, $this->loop_id); }else{ //ce je prazen vprasalnik ali vprasalnik s komentarji @@ -304,10 +305,6 @@ class LatexSurvey{ } else if ($rowSpremenljivke['sistem'] == 1) $this->pdf->SetTextColor(0,0,255); - - -/* $this->pdf->SetTextColor(0,0,0); - $this->pdf->SetDrawColor(0,0,0); */ // Izpis vprasalnika z rezultati @@ -401,9 +398,6 @@ class LatexSurvey{ $stevilcenje = ( SurveyInfo::getInstance()->getSurveyCountType() ) ? ( ( SurveyInfo::getInstance()->getSurveyCountType() == 2 ) ? $rowSpremenljivke['variable'].") " : $zaporedna.") " ) : null; - //$this->pdf->SetTextColor(0,0,0); - //$this->pdf->SetDrawColor(0,0,0); - $this->currentHeight = 0; // izpis skrcenega vprasalnika (samo pri izpisu iz urejanja) @@ -1151,9 +1145,10 @@ class LatexSurvey{ //Stari query srv_vrednost se ni nikjer uporabljal //$sql = sisplet_query("SELECT l.* FROM srv_loop_data l, srv_vrednost v WHERE l.if_id='$if_id' AND l.id > '$loop_id' AND l.vre_id IN ($vre_id) AND l.vre_id=v.id ORDER BY l.id ASC"); //Problematicni sql, ker ocitno tale zadeva z obj ne dela najbolje - //$sql = sisplet_query("SELECT id FROM srv_loop_data WHERE if_id='$if_id' AND id > '$loop_id' AND vre_id IN ($vre_id) ORDER BY id ASC", "obj"); - + //$sql = sisplet_query("SELECT id FROM srv_loop_data WHERE if_id='$if_id' AND id > '$loop_id' AND vre_id IN ($vre_id) ORDER BY id ASC", "obj"); + $sqlTestString = "SELECT id FROM srv_loop_data WHERE if_id='$if_id' AND id > '$loop_id' AND vre_id IN ($vre_id) ORDER BY id ASC"; + //echo "sqlString: ".$sqlTestString."
"; $sqlTest = sisplet_query($sqlTestString); $rowTest = mysqli_fetch_array($sqlTest); diff --git a/admin/survey/export/latexclasses/class.LatexSurveyElement.php b/admin/survey/export/latexclasses/class.LatexSurveyElement.php index ad8a55c5f..224375aad 100644 --- a/admin/survey/export/latexclasses/class.LatexSurveyElement.php +++ b/admin/survey/export/latexclasses/class.LatexSurveyElement.php @@ -206,7 +206,7 @@ class LatexSurveyElement{ //echo "naslov: ".$text."
"; //$tex = $text." ".$texNewLine; - if( !in_array($spremenljivke['tip'], array(1, 2, 3, 4, 7, 6, 16, 19, 20, 21, 17, 18, 24, 26, 27)) ){ //ce ni radio, check, roleta, stevilo, multigrid radio, checkbox, besedilo, stevilo, razvrscanje, vsota ali kombinirana tabela, lokacija, ali heatmap + if( !in_array($spremenljivke['tip'], array(1, 2, 3, 4, 7, 8, 6, 16, 19, 20, 21, 17, 18, 24, 26, 27)) ){ //ce ni radio, check, roleta, stevilo, datum, multigrid radio, checkbox, besedilo, stevilo, razvrscanje, vsota ali kombinirana tabela, lokacija, ali heatmap $tex .= ($this->export_format == 'pdf' ? '\\begin{absolutelynopagebreak} \\noindent ' : ' '); //ce je pdf uredimo, da med vprasanji ne bo prelomov strani } @@ -283,9 +283,8 @@ class LatexSurveyElement{ if($spremenljivke['info'] != ''){ $tex .= $this->texNewLine; $tex .= '\vspace{2 mm}'; - //$tex .= ' {\indent \\footnotesize '.$this->encodeText($spremenljivke['info']).'}'; //$tex .= ' {\noindent \\footnotesize '.$this->encodeText($spremenljivke['info']).'}'; - $tex .= ' \noindent \\footnotesize '.$this->encodeText($spremenljivke['info']).' '; + $tex .= ' \noindent \\footnotesize '.$this->encodeText($spremenljivke['info']).' \\normalsize '; } if( !in_array($spremenljivke['tip'], array(4, 6, 16, 19, 20, 21, 7, 8, 18)) ){ //ce ni multigrid radio, checkbox, besedilo, stevilo, datum ali vsota ki ne potrebujejo prazne vrstice zaradi uporabe tabele @@ -346,7 +345,7 @@ class LatexSurveyElement{ $tex .= $this->texNewLine; $tex .= '\vspace{2 mm}'; //$tex .= ' {\indent \\footnotesize '.$this->encodeText($spremenljivke['info']).'} '; - $tex .= ' {\noindent \\footnotesize '.$this->encodeText($spremenljivke['info']).'} '; + $tex .= ' {\noindent \\footnotesize '.$this->encodeText($spremenljivke['info']).' \\normalsize } '; } if($export_subtype=='q_data'||$export_subtype=='q_data_all'){ //ce je izpis odgovorov @@ -983,6 +982,24 @@ class LatexSurveyElement{ } //RESEVANJE BESEDILA V CIRILICI - konec + + + //RESEVANJE odstranitve dodatnih style tag-ov po ul, ipd. ####################################################### + $findStyleTag = 'style="'; + $findStyleTagEnd = '">'; + $numOfStyleTags = substr_count($text, $findStyleTag); //stevilo 'style=" ' v tekstu + //echo "stevilo style: ".$numOfStyleTags."
"; + + for($s=0; $s<$numOfStyleTags; $s++){ //za vsako najdeno 'style=" ' besedilo, uredi njeno odstranitev + //$posImg = strpos($text, $findImg); + $posStyleTag = strpos($text, $findStyleTag); + $posStyleTagEnd = strpos($text, $findStyleTagEnd); + $dolzinaOff = $posStyleTagEnd - $posStyleTag + 2; + $text = substr_replace($text, "", $posStyleTag, $dolzinaOff); + + } + //RESEVANJE odstranitve dodatnih style tag-ov po ul, ipd. - konec ################################################# + if($pos === false && $posImg === false) { //v tekstu ni br in img $text = preg_replace("/(\R){2,}/", "$1", $text); diff --git a/admin/survey/modules/Evalvacija/class.GC.php b/admin/survey/modules/Evalvacija/class.GC.php index 94e91702a..47741f571 100644 --- a/admin/survey/modules/Evalvacija/class.GC.php +++ b/admin/survey/modules/Evalvacija/class.GC.php @@ -136,8 +136,8 @@ class GC{ $fakultete[$row['id']] = $row; } /* - * AG 3000043 Akademija za glasbo - * AGRFT 3000044 Akademija za gledališče, radio, film in televizijo - NIMA GC-JA + * AG 3000043 Akademija za glasbo (posebni upload) + * * ALUO 3000042 Akademija za likovno umetnost in oblikovanje * BF 3000071 Biotehniska fakulteta * FA 3000025 Fakulteta za arhitekturo @@ -145,13 +145,11 @@ class GC{ * FF 3000018 Filozofska fakulteta * FFA 3000031 Fakulteta za farmacijo * FGG 3000026 Fakulteta za gradbeništvo in geodezijo - * FKKT 3000030 Fakulteta za kemijo in kemijsko tehnologijo * FMF 3000027 Fakulteta za matematiko in fiziko * FPP 3000009 Fakulteta za pomorstvo in promet * FS 3000023 Fakulteta za strojništvo * FSD 3000006 Fakulteta za socialno delo * FSP 3000022 Fakulteta za šport - * FU 3000004 Fakulteta za upravo - NIMA GC-JA * MF 3000041 Medicinska fakulteta * NTF 3000029 Naravoslovnotehniška fakulteta * PEF 3000001 Pedagoska fakulteta @@ -160,6 +158,9 @@ class GC{ * VF 3000037 Veterinarska fakulteta * ZF 3000011 Zdravstvena fakulteta * + * FKKT 3000030 Fakulteta za kemijo in kemijsko tehnologijo + * AGRFT 3000044 Akademija za gledališče, radio, film in televizijo - NIMA GC-JA + * FU 3000004 Fakulteta za upravo - NIMA GC-JA * EF 3000019 Ekonomska fakulteta * FRI 3000063 Fakulteta za računalništvo in informatiko * FE 3000064 Fakulteta za elektrotehniko @@ -182,15 +183,15 @@ class GC{ '4_1' => 'predmeti' ); - $reports_id = '09072020'; - $report_type = '1_1'; - $fak_id = '3000001'; + $reports_id = '19102020'; + $report_type = '4_1'; + $fak_id = '3000011'; $zip_name = ''; // Nastavimo pot do pdf-jev - $this->pdf_path = 'modules/Evalvacija/pdf/unzipped/'; + //$this->pdf_path = 'modules/Evalvacija/pdf/unzipped/'; //$this->pdf_path = 'modules/Evalvacija/pdf/unzipped/'.$fakultete[$fak_id]['kratica'].'/'; - //$this->pdf_path = 'modules/Evalvacija/pdf/unzipped/'.$fakultete[$fak_id]['kratica'].'/'.$report_type_array[$report_type].'/'; + $this->pdf_path = 'modules/Evalvacija/pdf/unzipped/'.$fakultete[$fak_id]['kratica'].'/'.$report_type_array[$report_type].'/'; echo 'Parametri:'; echo '