diff options
Diffstat (limited to 'admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php')
-rw-r--r-- | admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php | 127 |
1 files changed, 61 insertions, 66 deletions
diff --git a/admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php b/admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php index b6def64..539148e 100644 --- a/admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php +++ b/admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php @@ -10,9 +10,9 @@ *****************************************/
-define("PIC_SIZE", "\includegraphics[width=10cm]"); //slika sirine 50mm
-define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
-define("MAXSTEVILOSTOLPCEV", 21); //max Stevilo Stolpcev za prvo vrstico pod Drsnikom, zaradi tezav z izrisom, ce je teh vec kot toliko
+if (!defined('PIC_SIZE')) define("PIC_SIZE", "\includegraphics[width=5cm]"); //slika sirine 50mm
+if (!defined('ICON_SIZE')) define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
+if (!defined('MAXSTEVILOSTOLPCEV')) define("MAXSTEVILOSTOLPCEV", 21); //max Stevilo Stolpcev za prvo vrstico pod Drsnikom, zaradi tezav z izrisom, ce je teh vec kot toliko
class SteviloLatex extends LatexSurveyElement
{
@@ -39,9 +39,10 @@ class SteviloLatex extends LatexSurveyElement }
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype=null, $preveriSpremenljivko=null, $export_data_type=null, $loop_id=null){
+ //$time_start = microtime(true);
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
-
+
//preveri, ce je kaj v bazi
//$userDataPresent = $this->GetUsersData($db_table, $spremenljivke['id'], $spremenljivke['tip'], $usr_id);
$userDataPresent = $this->GetUsersData($db_table, $spremenljivke['id'], $spremenljivke['tip'], $usr_id, $this->loop_id);
@@ -57,7 +58,7 @@ class SteviloLatex extends LatexSurveyElement $tex = '';
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, 2, 10, 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, 2, 10, 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
//nastavitve iz baze ##########################
$steviloOken = $spremenljivke['size']; //stevilo oken
@@ -102,10 +103,11 @@ class SteviloLatex extends LatexSurveyElement /* if($postavitev!=0){
$tex .= $texNewLine;
} */
-
+
//ureditev polja s podatki trenutnega uporabnika ######################################################
//$sqlUserAnswer = sisplet_query("SELECT text FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' AND vre_id='".$rowVrednost['id']."' AND loop_id $loop_id");
- $sqlUserAnswer = sisplet_query("SELECT text, text2 FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' ");
+ $sqlUserAnswer = sisplet_query("SELECT text, text2 FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."'" .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : ""));
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
//echo "userAnswer: ".$userAnswer['text']."</br>";
//ureditev polja s podatki trenutnega uporabnika - konec ##############################################
@@ -152,12 +154,16 @@ class SteviloLatex extends LatexSurveyElement //echo "parametri tabele: ".$parameterTabular."</br>";
//ureditev parametrov za tabelo - konec######################
- if($userAnswer['text']){
- $okvir = 0;
- }elseif($userAnswer['text'] == ''){ //ce nimamo odgovora
- $okvir = 1; //rabimo okvir
+ if(isset($userAnswer['text'])){
+ if($userAnswer['text']){
+ $okvir = 0;
+ }elseif($userAnswer['text'] == ''){ //ce nimamo odgovora
+ $okvir = 1; //rabimo okvir
+ }
+ }else{
+ $okvir = 1;
}
-
+
#ZACETEK TABELE
//zacetek tabele
if($polozajEnota!=0){ //ce je prisotno besedilo za enoto
@@ -169,7 +175,8 @@ class SteviloLatex extends LatexSurveyElement }
$izpisStevilk = 0; //belezi, ali se je stevilo ali stevila ze izpisalo
-
+ $txtTmp = []; //polje, ki belezi vnesene odgovore okvirjev
+
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
# po potrebi se prevede besedilo, ki se pojavi pred textbox-om
@@ -181,11 +188,10 @@ class SteviloLatex extends LatexSurveyElement //ce ni other ali missing
if( (int)$rowVrednost['other'] == 0 && $rowVrednost['naslov']){ //in se ni se izpisalo stevila
-
- $drugoStevilo = $userAnswer['text2']; //belezi drugo mozno stevilo
+
+ $drugoStevilo = isset($userAnswer['text2'])?$userAnswer['text2']:null; //belezi drugo mozno stevilo
if($izpisStevilk == 0 && $okvir == 0){ //ce ni bilo se izpisano nobeno stevilo in ne rabimo tabele za izpis
- $txtTmp = [];
if($export_format=='pdf'){
if($polozajEnota==0){ //ce ni besedila za enoto, rabimo odstavek za pravilen izpis
$txtTmp1 = " \par { ";
@@ -219,10 +225,9 @@ class SteviloLatex extends LatexSurveyElement array_push($txtTmp, $txtTmp2); //filanje polja z besedili
}
}
-
if($okvir == 1){ //ce rabimo okvir, izpisi
- //$dataTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $txtTmp, $textboxAllignment, 0);
if($polozajEnota==0){ //ce ni besedila za enoto, rabimo odstavek za pravilen izpis
+ $dataTextBox = "";
if($steviloOken>1){
$dataTextBox = " \par { ";
}
@@ -241,28 +246,27 @@ class SteviloLatex extends LatexSurveyElement }
-
- if($polozajEnota==0){ //ce polozaja besedila enote je na NE
+ if($polozajEnota==0){ //ce polozaj besedila enote je na NE
if($indeksZaWhile!=1){
- //if($okvir == 1){ //ce rabimo prazen okvir, izpisi
if($okvir == 1 && $textboxWidth<0.49){ //ce rabimo prazen okvir, izpisi
$tex .= ' & '; //skoci v nov stolpec
}else{
- $tex .= ' \\\\ '; //pojdi v novo vrstico
+ //$tex .= ' \\\\ '; //pojdi v novo vrstico
+ $tex .= ' & '; //pojdi v nov stolpec
}
}
if($okvir == 1){ //ce rabimo prazen okvir, izpisi
//izpis praznega text box-a dolocene sirine in visine
- //$tex .= ' & '.$dataTextBox;
$tex .= ' '.$dataTextBox;
}else{ //ce je podatek ob levi enoti
- //$tex .= ' & '.$txtTmp[$indeksZaWhile-1];
- $tex .= ' '.$txtTmp[$indeksZaWhile-1];
+ $tmp_indeks = $indeksZaWhile-1;
+ if (array_key_exists($tmp_indeks , $txtTmp)) {
+ $tex .= ' '.$txtTmp[$indeksZaWhile-1];
+ }
}
}
- //if($polozajEnota==1){ //ce je polozaj besedila enote na LEVI
elseif($polozajEnota==1){ //ce je polozaj besedila enote na LEVI
if($indeksZaWhile!=1){
if($okvir == 1 && $textboxWidth<0.30){ //ce rabimo prazen okvir in je njegova sirina manjsa od 30, izpisi
@@ -274,8 +278,10 @@ class SteviloLatex extends LatexSurveyElement //izpis besedila enote
$stringEnota = $rowVrednost['naslov'];
- $stringEnota = Common::getInstance()->dataPiping($stringEnota, $usr_id, $loop_id);
- $tex .= $this->encodeText($stringEnota);
+ if($usr_id){
+ $stringEnota = Common::getInstance()->dataPiping($stringEnota, $usr_id, $loop_id);
+ }
+ $tex .= LatexDocument::encodeText($stringEnota);
if($okvir == 1){ //ce rabimo prazen okvir, izpisi
//izpis praznega text box-a dolocene sirine in visine
@@ -288,8 +294,6 @@ class SteviloLatex extends LatexSurveyElement $tex .= ' & '.$txtTmp[$indeksZaWhile-1];
}
- //echo "tex koda: ".$tex."</br>";
-
}elseif($polozajEnota==2){ //ce je polozaj besedila enote na DESNI
//if($indeksZaWhile!=1&&$export_format=='rtf'){//ce je drugi okvir in je rtf
if($indeksZaWhile!=1){//ce je drugi okvir
@@ -320,8 +324,10 @@ class SteviloLatex extends LatexSurveyElement }
$stringEnota = $rowVrednost['naslov'];
- $stringEnota = Common::getInstance()->dataPiping($stringEnota, $usr_id, $loop_id);
- $tex .= ' '.$this->encodeText($stringEnota);
+ if($usr_id){
+ $stringEnota = Common::getInstance()->dataPiping($stringEnota, $usr_id, $loop_id);
+ }
+ $tex .= ' '.LatexDocument::encodeText($stringEnota);
if($indeksZaWhile==1&&$export_format=='pdf'){ //ce je prvi okvir in je pdf
//$tex .= ' \hspace{0.5cm} '; //dodaj še nekaj prostora, za prvim okvirjem, da bo dovolj prostora
@@ -336,11 +342,14 @@ class SteviloLatex extends LatexSurveyElement }
elseif((int)$rowVrednost['other'] != 0) { //drugace, ce imamo missinge ali podobne, jih zabelezi v polju
- // imamo polje drugo - ne vem, zavrnil...
+ $rowVrednostNaslov= array_key_exists('naslov', $rowVrednost)?$rowVrednost['naslov']:null;
+ $rowVrednostVrstni_red= array_key_exists('vrstni_red', $rowVrednost)?$rowVrednost['vrstni_red']:null;
+
+ // imamo polje drugo - ne vem, zavrnil...
$array_others[$rowVrednost['id']] = array(
- 'naslov'=>$rowVrednost['naslov'],
- 'vrstni_red'=>$rowVrednost['vrstni_red'],
- 'value'=>$text[$rowVrednost['vrstni_red']],
+ 'naslov'=>$rowVrednostNaslov,
+ 'vrstni_red'=>$rowVrednostVrstni_red,
+ //'value'=>$text[$rowVrednost['vrstni_red']], //- pokomentiral, ker ne vem, zakaj je tako, saj drugače PHP javlja warning
);
}
@@ -373,13 +382,6 @@ class SteviloLatex extends LatexSurveyElement #KONEC TABELE
}
//echo "tex koda: ".$tex."</br>";
-
-/* $tex .= $this->texNewLine;
- $tex .= $this->texNewLine;
- if($okvir == 1){ //ce je prazen vprasalnik, dodaj se dve prazni vrstici
- $tex .= $this->texNewLine;
- $tex .= $this->texNewLine;
- } */
}elseif($nacinVnosa==1&&$export_format=='pdf'){ //ce je drsnik in je izvoz v pdf
@@ -446,7 +448,7 @@ class SteviloLatex extends LatexSurveyElement $array_others[$rowVrednost['id']] = array(
'naslov'=>$rowVrednost['naslov'],
'vrstni_red'=>$rowVrednost['vrstni_red'],
- 'value'=>$text[$rowVrednost['vrstni_red']],
+ //'value'=>$text[$rowVrednost['vrstni_red']], // - pokomentiral, ker ne vem, zakaj je tako, saj drugače PHP javlja warning
);
}
}
@@ -461,6 +463,7 @@ class SteviloLatex extends LatexSurveyElement for($i=1; $i<=$slider_NumofDescrLabels; $i++){
$slider_CustomDescriptiveLabelsTmp = ($spremenljivkaParams->get('slider_Labela_opisna_'.$i) ? $spremenljivkaParams->get('slider_Labela_opisna_'.$i) : '');
$slider_CustomDescriptiveLabelsTmp = preg_replace("/\s| /",' ',$slider_CustomDescriptiveLabelsTmp); //za odstranitev morebitnih presledkov, ki lahko delajo tezave pri polju za drsnik
+ $slider_CustomDescriptiveLabels = '';
if($i == 1){
$slider_CustomDescriptiveLabels = $slider_CustomDescriptiveLabelsTmp;
}else{
@@ -479,14 +482,14 @@ class SteviloLatex extends LatexSurveyElement $parameterTabularLabeleNad = 'lR'; //leva (l) pa desna poravnava, ki se prilagaja (R)
//zacetek tabele
- $tex .= ($export_format == 'pdf' ? '\keepXColumns \begin{tabularx}{0.9\textwidth}{'.$parameterTabularLabeleNad.'}' : '\begin{tabular*}{3 cm}{c}');
+ $tex .= ($export_format == 'pdf' ? '\keepXColumns \begin{xltabular}{0.9\textwidth}{'.$parameterTabularLabeleNad.'}' : '\begin{tabular*}{3 cm}{c}');
//vrstice in stolpci v tabeli
- $tex .= $this->encodeText($MinLabel).' & '.$this->encodeText($MaxLabel); //izpis naslovov label v eni vrstici
+ $tex .= LatexDocument::encodeText($MinLabel).' & '.LatexDocument::encodeText($MaxLabel); //izpis naslovov label v eni vrstici
//vrstice in stolpci v tabeli - konec
//konec tabele
- $tex .= ($export_format == 'pdf' ? "\\end{tabularx}" : "\\end{tabular*} \\noindent");
+ $tex .= ($export_format == 'pdf' ? "\\end{xltabular}" : "\\end{tabular*} \\noindent");
//$tex .= $texNewLine; //v novo vrstico po izrisu label
$tex .= '\par'; //odstavek
@@ -538,7 +541,7 @@ class SteviloLatex extends LatexSurveyElement //zacetek tabele
//$tex .= ($export_format == 'pdf' ? '\begin{tabularx}{0.9\textwidth}{'.$parameterTabularLabelePrvaPod.'}' : '\begin{tabular}{'.$parameterTabularLabelePrvaPod.'}');
- $tex .= ($export_format == 'pdf' ? '\keepXColumns \begin{tabularx}{0.9\textwidth}{'.$parameterTabularLabelePrvaPod.'}' : '\begin{tabular}{'.$parameterTabularLabelePrvaPod.'}');
+ $tex .= ($export_format == 'pdf' ? '\keepXColumns \begin{xltabular}{0.9\textwidth}{'.$parameterTabularLabelePrvaPod.'}' : '\begin{tabular}{'.$parameterTabularLabelePrvaPod.'}');
// \keepXColumns
//izris vrstice in stolpcev v tabeli
for($i=0; $i<$steviloStolpcevPrvaVrstica; $i++){
@@ -563,6 +566,7 @@ class SteviloLatex extends LatexSurveyElement }
}else{ //za vse ostale stolpce med prvi in zadnjim
if($slider_VmesneNumLabel&&$steviloStolpcevPrvaVrsticaOrig<=MAXSTEVILOSTOLPCEV){ //ce so vmesne labele stevilske in je stevilo stolpcev manjsi od maximalnega dovoljenega za ustrezen izris
+ $vmesnoStevilo=0;
if($i==1){
$vmesnoStevilo=$slider_MinNumLabel+$slider_handle_step;
}else{
@@ -578,7 +582,7 @@ class SteviloLatex extends LatexSurveyElement //izris vrstice in stolpcev v tabeli - konec
//konec tabele
- $tex .= ($export_format == 'pdf' ? "\\end{tabularx}" : "\\end{tabular} \\noindent");
+ $tex .= ($export_format == 'pdf' ? "\\end{xltabular}" : "\\end{tabular} \\noindent");
#IZRIS PRVE VRSTICE POD DRSNIKOM - KONEC ######################################
//echo $tex;
@@ -588,6 +592,7 @@ class SteviloLatex extends LatexSurveyElement //ureditev parametrov za tabeli
$parameterTabularLabeleDrugaPod='';
$prazniStolpciZaGraficneOznake = '';
+ $parameterTabularLabeleTretjaPod = '';
for($i=0; $i<$slider_StevLabelPodrocij; $i++){
$parameterTabularLabeleDrugaPod .= ($export_format == 'pdf' ? '|C|' : '|c|'); //sredinska poravnava
$parameterTabularLabeleTretjaPod .= ($export_format == 'pdf' ? 'C' : 'c'); //sredinska poravnava
@@ -599,19 +604,19 @@ class SteviloLatex extends LatexSurveyElement //ureditev parametrov za tabeli - konec
//zacetek tabele z graficnimi oznakami
- $tex .= ($export_format == 'pdf' ? '\begin{tabularx}{0.9\textwidth}{'.$parameterTabularLabeleDrugaPod.'}' : '\begin{tabular}{'.$parameterTabularLabeleDrugaPod.'}');
+ $tex .= ($export_format == 'pdf' ? '\begin{xltabular}{0.9\textwidth}{'.$parameterTabularLabeleDrugaPod.'}' : '\begin{tabular}{'.$parameterTabularLabeleDrugaPod.'}');
//izris prazne vrstice z graficnimi oznakami label (crta horizontal)
$tex .= $prazniStolpciZaGraficneOznake;
//izris prazne vrstice z graficnimi oznakami label (crta horizontal) - konec
//konec tabele z graficnimi oznakami
- $tex .= ($export_format == 'pdf' ? "\\end{tabularx}" : "\\end{tabular} \\noindent");
+ $tex .= ($export_format == 'pdf' ? "\\end{xltabular}" : "\\end{tabular} \\noindent");
$tex .= $texNewLine;
//zacetek tabele z naslovi label
- $tex .= ($export_format == 'pdf' ? '\begin{tabularx}{0.9\textwidth}{'.$parameterTabularLabeleTretjaPod.'}' : '\begin{tabular}{'.$parameterTabularLabeleTretjaPod.'}');
+ $tex .= ($export_format == 'pdf' ? '\begin{xltabular}{0.9\textwidth}{'.$parameterTabularLabeleTretjaPod.'}' : '\begin{tabular}{'.$parameterTabularLabeleTretjaPod.'}');
//izris naslovov label
$slider_Labela_podrocja = []; //polje, ki hrani vpisane naslove labele podrocij
@@ -628,7 +633,7 @@ class SteviloLatex extends LatexSurveyElement //izris naslovov label - konec
//konec tabele z naslovi label
- $tex .= ($export_format == 'pdf' ? "\\end{tabularx}" : "\\end{tabular} \\noindent");
+ $tex .= ($export_format == 'pdf' ? "\\end{xltabular}" : "\\end{tabular} \\noindent");
}
#IZRIS DRUGE VRSTICE POD DRSNIKOM - LABELE PODROCIJ ###########################
//echo $tex;
@@ -653,7 +658,6 @@ class SteviloLatex extends LatexSurveyElement }
if($nacinVnosa==1){ //ce je drsnik
- //if($export_data_type==1||$export_data_type==0){ //ce je dolg ali navaden izpis izvoza, ko se izrisuje drsnik
if(($export_data_type==1||$export_data_type==0)&&(count($array_others)==0)){ //ce je dolg ALI navaden izpis izvoza IN ni missing, ko se izrisuje drsnik
$tex .= $this->texBigSkip;
$tex .= $this->texBigSkip." ";
@@ -669,18 +673,9 @@ class SteviloLatex extends LatexSurveyElement //$tex .= $this->texNewLine;
}
}
-
-
-/* $tex .= $texNewLine;
- $tex .= $texNewLine; */
- /* $tex .= $this->texBigSkip;
- $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
-
- }
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time število:</b> '.$execution_time.' sec </br>'; */
return $tex;
}
|