summaryrefslogtreecommitdiffstats
path: root/admin/survey/export/latexclasses/Vprasanja
diff options
context:
space:
mode:
authorAnton Luka Šijanec <anton@sijanec.eu>2024-05-27 13:08:29 +0200
committerAnton Luka Šijanec <anton@sijanec.eu>2024-05-27 13:08:29 +0200
commit75160b12821f7f4299cce7f0b69c83c1502ae071 (patch)
tree27e25e4ccaef45f0c58b22831164050d1af1d4db /admin/survey/export/latexclasses/Vprasanja
parentprvi-commit (diff)
download1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.gz
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.bz2
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.lz
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.xz
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.zst
1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.zip
Diffstat (limited to 'admin/survey/export/latexclasses/Vprasanja')
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php55
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/DatumLatex.php27
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/GridMultipleLatex.php180
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/HeatmapLatex.php59
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/KalkulacijaLatex.php2
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/KvotaLatex.php4
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/LokacijaLatex.php4
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php895
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/NagovorLatex.php13
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php231
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/RazvrscanjeLatex.php132
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/SNImena.php4
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/SteviloLatex.php127
-rw-r--r--admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php41
14 files changed, 830 insertions, 944 deletions
diff --git a/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php b/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php
index 0e68338..83fcee1 100644
--- a/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/BesediloLatex.php
@@ -10,8 +10,8 @@
*****************************************/
-define("PIC_SIZE", "\includegraphics[width=10cm]"); //slika sirine 50mm
-define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
+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
class BesediloLatex extends LatexSurveyElement
{
@@ -19,6 +19,7 @@ class BesediloLatex extends LatexSurveyElement
protected $texBigSkip = '\bigskip';
protected $export_subtype;
protected $path2SignatureImages;
+ protected $path2HeatmapImages;
protected $texGapBeforeTable = '\vspace*{-\baselineskip}';
public function __construct()
@@ -41,6 +42,7 @@ class BesediloLatex extends LatexSurveyElement
}
public function export($spremenljivke=null, $export_format='', $questionText=null, $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $anketa=null, $export_subtype='', $preveriSpremenljivko=null, $export_data_type=null, $loop_id=null){
+ //$time_start = microtime(true);
global $site_path;
$this->path2HeatmapImages = $site_path.'main/survey/uploads/';
@@ -62,7 +64,7 @@ class BesediloLatex extends LatexSurveyElement
$tex = '';
$podatekVBazi = 0;
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
//nastavitve text box-a iz baze##########################
$steviloOken = $spremenljivke['text_kosov'];
@@ -212,7 +214,7 @@ class BesediloLatex extends LatexSurveyElement
//Ureditev dodajanja manjsega razmika med besedilom vprasanja in tabelo - konec
#ZACETEK TABELE
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
}
//echo "ni vodoravno ob vprašanju </br>";
@@ -220,22 +222,22 @@ class BesediloLatex extends LatexSurveyElement
}elseif($postavitev==0&&$polozajBesedila==3){ //
#ZACETEK TABELE
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//echo "je vodoravno ob vprašanju zgoraj</br>";
}elseif($postavitev==0&&$polozajBesedila==2){
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//echo "je vodoravno ob vprašanju spodaj</br>";
}elseif($postavitev==0&&$steviloOken>1){
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//echo "stevilo oken večje in ob vprašanju </br>";
}
}
- //echo "tex koda: ".$tex."</br>";
+
// iz baze preberemo vse moznosti - ko nimamo izpisa z odgovori respondenta
$sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable, other FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
-
+
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
# po potrebi se prevede besedilo, ki se pojavi pred textbox-om
@@ -264,7 +266,9 @@ class BesediloLatex extends LatexSurveyElement
//priprava besedila za izpis
$stringNaslov = $rowVrednost['naslov'];
- $stringNaslov = Common::getInstance()->dataPiping($stringNaslov, $usr_id, $loop_id);
+ if($userAnswer){ //ce je kaj v bazi oz. se izpisujejo odgovori respondenta
+ $stringNaslov = Common::getInstance()->dataPiping($stringNaslov, $usr_id, $loop_id);
+ }
//priprava besedila za izpis - konec
//ce ni other ali missing
@@ -281,11 +285,9 @@ class BesediloLatex extends LatexSurveyElement
$besedilo .= $textSignature;
//}elseif($spremenljivke['upload'] == 1){
}elseif($spremenljivke['upload']){
- //$besedilo .= $textUpload;
- $besedilo .= $this->encodeText($textUpload);
+ $besedilo .= LatexDocument::encodeText($textUpload);
}else{
- //$besedilo .= $userAnswer['text'];
- $besedilo .= $this->encodeText($userAnswer['text']);
+ $besedilo .= LatexDocument::encodeText(isset($userAnswer['text'])?$userAnswer['text']:'');
}
if($export_format=='pdf'){
@@ -310,7 +312,7 @@ class BesediloLatex extends LatexSurveyElement
}
array_push($textBoxes, $dataTextBox); //filanje polja s praznimi text box-i
- array_push($besedila, $this->encodeText($stringNaslov)); //filanje polja z besedili
+ array_push($besedila, LatexDocument::encodeText($stringNaslov)); //filanje polja z besedili
if($okvir == 0){
if($spremenljivke['tip'] == 21){ //ce je ta novo besedilo, ki je v uporabi
@@ -320,7 +322,7 @@ class BesediloLatex extends LatexSurveyElement
//izpis besedila
if($polozajBesedila!=0){ //ce je prisotno dodatno besedilo ob okvirju
- $tex .= $this->encodeText($stringNaslov)." ";
+ $tex .= LatexDocument::encodeText($stringNaslov)." ";
}
$tex .= ' '.$dataTextBox;
}elseif($spremenljivke['tip'] == 4){ //ce je ta staro besedilo, ki ni vec v uporabi vsaj 9 let (2020)
@@ -338,7 +340,7 @@ class BesediloLatex extends LatexSurveyElement
}
//izpis besedila
- $tex .= $this->encodeText($stringNaslov)." ";
+ $tex .= LatexDocument::encodeText($stringNaslov)." ";
//izpis text box-a dolocene sirine in visine z besedilom odgovora
$tex .= ' '.$dataTextBox;
@@ -353,10 +355,12 @@ class BesediloLatex extends LatexSurveyElement
'vrstni_red'=>$rowVrednost['vrstni_red'],
'value'=>$text[$rowVrednost['vrstni_red']],
); */
+ $vrstniRedTmp = isset($rowVrednost['vrstni_red'])?$rowVrednost['vrstni_red']:null;
+ echo $vrstniRedTmp;
$array_others[$rowVrednost['id']] = array(
- 'naslov'=>$this->encodeText($stringNaslov),
- 'vrstni_red'=>$rowVrednost['vrstni_red'],
- 'value'=>$text[$rowVrednost['vrstni_red']],
+ 'naslov'=>LatexDocument::encodeText($stringNaslov),
+ 'vrstni_red'=>$vrstniRedTmp,
+ //'value'=>$text[$vrstniRedTmp] - pokomentiral, ker ne vem, zakaj je tako, saj drugače PHP javlja warning
);
}
@@ -392,20 +396,20 @@ class BesediloLatex extends LatexSurveyElement
if($postavitev!=0){
if($steviloOken>1){ //ce je stevilo oken vec kot 1, zakljuci tabelo
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
#KONEC TABELE
}
}elseif($postavitev==0&&$polozajBesedila==3){
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
#KONEC TABELE
}elseif($postavitev==0&&$polozajBesedila==2){
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
#KONEC TABELE
}elseif($postavitev==0&&$steviloOken>1){
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
#KONEC TABELE
}
}
@@ -453,6 +457,9 @@ class BesediloLatex extends LatexSurveyElement
}
//echo "tex koda: ".$tex." in indeks $indeksZaWhile</br>";
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time besedilo 1:</b> '.$execution_time.' sec</br>'; */
return $tex;
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php b/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php
index 7110873..006863f 100644
--- a/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php
@@ -36,6 +36,7 @@ class DatumLatex extends LatexSurveyElement
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype='', $preveriSpremenljivko=null, $loop_id=null){
+ //$time_start = microtime(true);
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
@@ -65,19 +66,25 @@ class DatumLatex extends LatexSurveyElement
//$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");
//$sqlUserAnswerString = "SELECT text FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' AND vre_id='".$rowVrednost['id']."' ";
$sqlUserAnswerString = "SELECT text FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' ";
- //echo $sqlUserAnswerString;
+ //$sqlUserAnswerString = "SELECT text FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' AND loop_id = $loop_id";
+ if($loop_id){
+ $sqlUserAnswerString = $sqlUserAnswerString." AND loop_id = '$loop_id'";
+ }
+
+ //echo $sqlUserAnswerString."</br>";
+
$sqlUserAnswer = sisplet_query($sqlUserAnswerString);
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
//echo "userAnswer: ".$userAnswer['text']."</br>";
//ureditev polja s podatki trenutnega uporabnika - konec ##############################################
//ureditev besedila odgovora respondenta v doloceno barvo
- $besedilo = '\\textcolor{crta}{';
- $besedilo .= $userAnswer['text'];
+ $besedilo = '\\textcolor{crta}{';
+ $besedilo .= isset($userAnswer['text'])?$userAnswer['text']:null;
$besedilo .= '}';
//ureditev besedila odgovora respondenta v doloceno barvo - konec
- if($userAnswer['text']==''){ //ce ni izpisa odgovorov respondentov, priprava izpis s tabelo
+ if(isset($userAnswer['text'])?$userAnswer['text']:null==''){ //ce ni izpisa odgovorov respondentov, priprava izpis s tabelo
$answerTextBox = $this->LatexTextBox($export_format, $textboxHeight, $textboxWidth, $besedilo, $textboxAllignment, $noBorders);
//parametri tabele
@@ -91,12 +98,12 @@ class DatumLatex extends LatexSurveyElement
//IZRIS
#ZACETEK TABELE
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
$tex .= $answerTextBox; //izris znotraj tabele
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
#KONEC TABELE
$tex .= $this->texBigSkip;
}else{ //ce je izpis odgovorov respondentov
@@ -114,11 +121,11 @@ class DatumLatex 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']],
);
}
}
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0); //poberi simbol checkbox za other in missing moznosti odgovora
//priprava missing-ov - konec
// Izris polj drugo - ne vem...
@@ -133,7 +140,9 @@ class DatumLatex extends LatexSurveyElement
}
//IZRIS - KONEC
-
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time datum:</b> '.$execution_time.' sec'; */
return $tex;
}
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/GridMultipleLatex.php b/admin/survey/export/latexclasses/Vprasanja/GridMultipleLatex.php
index 3b67102..96dbff8 100644
--- a/admin/survey/export/latexclasses/Vprasanja/GridMultipleLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/GridMultipleLatex.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("RADIO_BTN_SIZE", 0.13);
+ 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('RADIO_BTN_SIZE')) define("RADIO_BTN_SIZE", 0.13);
class GridMultipleLatex extends LatexSurveyElement
{
@@ -29,6 +29,9 @@ class GridMultipleLatex extends LatexSurveyElement
private static $_instance;
protected $texBigSkip = '\bigskip ';
protected $loop_id = null; // id trenutnega loopa ce jih imamo
+ protected $usr_id = null;
+ protected $language;
+ protected $prevod;
public static function getInstance()
{
@@ -38,28 +41,40 @@ class GridMultipleLatex extends LatexSurveyElement
return new GridMultipleLatex();
}
- public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype='', $preveriSpremenljivko=null, $export_data_type='', $loop_id=null){
+ public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype='', $preveriSpremenljivko=null, $export_data_type='', $loop_id=null, $language=null){
+ //$time_start = microtime(true);
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
+ $this->usr_id = $usr_id;
+
+ $this->language = $language;
+
+ //preverjanje, ali je prevod
+ if(isset($_GET['language'])){
+ $this->language = isset($_GET['language'])?$_GET['language']:null;
+ $this->prevod = 1;
+ }else{
+ $this->prevod = 0;
+ }
+ //preverjanje, ali je prevod - konec
+
+
//echo "<b>tip izpisa: $export_data_type</b> </br>"; //$export_data_type: 1 - Razsirjen, 2 - Skrcen
$presirokaTabela = 0;
//preveri, ce je kaj v bazi
$questionText=0;
$userDataPresent=0;
$izpisOdgovorov = 0;
+ $userAnswer = null;
if($usr_id){ //ce je prisotne id uporabnika, je izpis odgovorov in je potrebno narediti naslednje stvari
- //$userAnswer = $this->GetUsersDataKombinirana($spremenljivke, $db_table, $usr_id, $questionText, $this->loop_id, $export_data_type);
$userAnswer = $this->GetUsersDataKombinirana($spremenljivke, $db_table, $usr_id, $presirokaTabela, $this->loop_id, $export_data_type);
foreach($userAnswer as $value){
if($value!=''){
$userDataPresent=1;
}
- //echo "Value: ".$value."</br>";
}
$izpisOdgovorov = 1;
}
- //echo "Usr_id: ".$usr_id.'</br>';
- //echo "Stevilo odgovorov: ".count($userAnswer).'</br>';
if($userDataPresent!=0||$export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){ //ce je kaj v bazi ali je prazen vprasalnik ali je potrebno pokazati tudi ne odgovorjena vprasanja
@@ -82,10 +97,10 @@ class GridMultipleLatex extends LatexSurveyElement
}
//poizvedba vseh potrebnih podatkov dodanih moznosti v kombinirani tabeli
- $sqlMultiple = sisplet_query("SELECT g.*, s.tip, s.enota, s.dostop FROM srv_grid g, srv_grid_multiple m, srv_spremenljivka s WHERE s.id=g.spr_id AND g.spr_id=m.spr_id AND m.spr_id IN (".implode($multipleSprId, ',').") ORDER BY m.vrstni_red, g.vrstni_red");
+ $sqlMultiple = sisplet_query("SELECT g.*, s.tip, s.enota, s.dostop FROM srv_grid g, srv_grid_multiple m, srv_spremenljivka s WHERE s.id=g.spr_id AND g.spr_id=m.spr_id AND m.spr_id IN (".implode(',', $multipleSprId).") ORDER BY m.vrstni_red, g.vrstni_red");
//echo "SELECT g.*, s.tip, s.enota, s.dostop FROM srv_grid g, srv_grid_multiple m, srv_spremenljivka s WHERE s.id=g.spr_id AND g.spr_id=m.spr_id AND m.spr_id IN (".implode($multipleSprId, ',').") ORDER BY m.vrstni_red, g.vrstni_red";
//poizvedba podnaslovov v kombinirani tabeli
- $sqlMultiplePodNaslovi = sisplet_query("SELECT naslov FROM srv_spremenljivka WHERE id IN (".implode($multipleSprId, ',').")");
+ $sqlMultiplePodNaslovi = sisplet_query("SELECT naslov FROM srv_spremenljivka WHERE id IN (".implode(',', $multipleSprId).")");
//novo za kombinirano tabelo - konec
$spremenljivkaParams = new enkaParameters($spremenljivke['params']);
@@ -114,14 +129,14 @@ class GridMultipleLatex extends LatexSurveyElement
if($usr_id){
$multipleVredIdDrugo = array(); //polje za shranjevanje vre_id, kjer je prisotna moznost Drugo:
//poizvedba vrednosti polj, kjer se pojavijo polja Drugo:
- $sqlMultipleVredIdZaDrugo = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id IN (".implode($multipleSprId, ',').") AND other = 1");
+ $sqlMultipleVredIdZaDrugo = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id IN (".implode(',', $multipleSprId).") AND other = 1");
while ($rowsqlMultipleVredIdZaDrugo = mysqli_fetch_array($sqlMultipleVredIdZaDrugo)) {
$multipleVredIdDrugo[] = $rowsqlMultipleVredIdZaDrugo['id'];
}
if(!empty($multipleVredIdDrugo)){
$multipleBesediloDrugo = array(); //polje za shranjevanje vnesenega besedila iz strani respondenta, kjer je prisotna moznost Drugo:
- $sqlStavekMultipleBesediloDrugo = "SELECT text FROM srv_data_text_active WHERE vre_id IN (".implode($multipleVredIdDrugo, ',').") AND usr_id=".$usr_id." ";
+ $sqlStavekMultipleBesediloDrugo = "SELECT text FROM srv_data_text_active WHERE vre_id IN (".implode(',', $multipleVredIdDrugo).") AND usr_id=".$usr_id." ";
$sqlMultipleBesediloDrugo = sisplet_query($sqlStavekMultipleBesediloDrugo);
while ($rowsqlMultipleBesediloDrugo = mysqli_fetch_array($sqlMultipleBesediloDrugo)) {
$multipleBesediloDrugo[] = $rowsqlMultipleBesediloDrugo['text'];
@@ -133,13 +148,27 @@ class GridMultipleLatex extends LatexSurveyElement
//ce je prisoten id uporabnika - ureditev belezenja vnesenega odgovora pod Drugo: - konec
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - navpicni odgovori
- while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
- $stringTitleRow = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
+ while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
+ $stringTitleRow = '';
+ /* $stringTitleRow = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
# po potrebi prevedemo naslov
$naslov = $this->srv_language_vrednost($rowVrednost['id']);
if ($naslov != '') {
//$rowVrednost['naslov'] = $naslov;
$stringTitleRow = $naslov;
+ } */
+
+ if($this->prevod){ //ce je prevod ankete
+ # po potrebi prevedemo naslov
+ $rowl = $this->srv_language_vrednost($rowVrednost['id']);
+ if ($rowl != '') {
+ $stringTitleRow = ((( $rowl['naslov'] ) ? $rowl['naslov'] : ( ( $rowl['naslov2'] ) ? $rowl['naslov2'] : $rowl['variable'] ) )); //prevod naslova v ustreznem jeziku;
+ }
+ if($stringTitleRow == ''){ //ce ni prevoda, prevzemi izvirno
+ $stringTitleRow = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
+ }
+ }else{
+ $stringTitleRow = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
}
$besediloDrugo = '';
@@ -148,13 +177,15 @@ class GridMultipleLatex extends LatexSurveyElement
if($rowVrednost['other'] && $usr_id){
//zabelezi besedilo, ki je trenuten uporabnik za trenuten odgovor zapisal pod Drugo:
$besediloDrugo = $multipleBesediloDrugo[$indeksBesediloDrugo];
- $this->encodeText($besediloDrugo);
+ LatexDocument::encodeText($besediloDrugo);
$besediloDrugo = ' \\textcolor{crta}{\footnotesize{'.$besediloDrugo.'}} ';
$indeksBesediloDrugo++; //povecaj indeks za izpis vnesenega besedila v Drugo:
}
//ce je drugo vnesen kot odgovor in je prisoten id uporabnika - konec
-
- array_push($navpicniOdgovori, $this->encodeText($stringTitleRow)." ".$besediloDrugo); //filanje polja z navpicnimi odgovori (po vrsticah)
+ if($usr_id){
+ $stringTitleRow = Common::getInstance()->dataPiping($stringTitleRow, $usr_id, $loop_id);
+ }
+ array_push($navpicniOdgovori, LatexDocument::encodeText($stringTitleRow, 0, 1)." ".$besediloDrugo); //filanje polja z navpicnimi odgovori (po vrsticah)
}
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - navpicni odgovori - konec
@@ -164,19 +195,19 @@ class GridMultipleLatex extends LatexSurveyElement
$steviloSkupinRoletSeznamov = 0; //belezi stevilo enot z roletami ali seznamov (pomembno za pravilen izris, za presiroko tabelo)
$steviloOdgovorovRoletSeznamov = 0; //belezi stevilo posameznih odgovorov, ki sestavljajo razlicne rolete ali sezname
$sprIdRoletSeznamov = 0;
- $sprIdRoletSeznamovTmp = 0;
+ $sprIdRoletSeznamovTmp = 0;
//pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti - vodoravni odgovori
while ($colVrednost = mysqli_fetch_assoc($sqlStolpciVrednosti)){
-
- #staro, izpis naslovov stolpcev tabele z isto velikostjo pisave, kot vse ostalo
- /* $stringTitleCol = $colVrednost['naslov'];
- array_push($vodoravniOdgovori, $this->encodeText($stringTitleCol, 0, 1) ); //filanje polja z vodoravnimi odgovori (po stolpcih) */
- #staro - konec
-
- $stringTitleCol = $this->encodeText($colVrednost['naslov'], 0, 1);
- $stringTitleCol = '\footnotesize{'.$stringTitleCol.'}'; //zmanjsanje pisave za naslove stolpcev tabele
- array_push($vodoravniOdgovori, $stringTitleCol); //filanje polja z vodoravnimi odgovori (po stolpcih)
+ $stringTitleCol = '';
+ $rowl = $this->srv_language_grid($colVrednost['variable'],$colVrednost['spr_id']);
+ if ($rowl !=null && strip_tags($rowl['naslov']) != '') $colVrednost['naslov'] = $rowl['naslov'];
+ $stringTitleCol = $colVrednost['naslov'];
+ if($usr_id){
+ $stringTitleCol = Common::getInstance()->dataPiping($stringTitleCol, $usr_id, $loop_id);
+ }
+ $stringTitleCol = '\footnotesize{'.LatexDocument::encodeText($stringTitleCol, 0, 1).'}'; //zmanjsanje pisave za naslove stolpcev tabele
+ array_push($vodoravniOdgovori, $stringTitleCol); //filanje polja z vodoravnimi odgovori (po stolpcih)
$rowMultiple = mysqli_fetch_array($sqlMultiple);
array_push($vodoravniOdgovoriTip, $rowMultiple['tip']); //filanje polja s tipi spremenljivk
@@ -187,38 +218,25 @@ class GridMultipleLatex extends LatexSurveyElement
if(($rowMultiple['enota'] == 2 || $rowMultiple['enota'] == 6)){
$sprIdRoletSeznamov = $rowMultiple['spr_id'];
}
-
- /* echo "enota ".$rowMultiple['enota']."</br>";
- echo "spr ".$rowMultiple['spr_id']."</br>"; */
- //if(($rowMultiple['enota'] == 2 || $rowMultiple['enota'] == 6)){ //ce je roleta ali seznam IN je izpis odgovorov
+
//if(($rowMultiple['enota'] == 2 || $rowMultiple['enota'] == 6)&&$izpisOdgovorov){ //ce je roleta ali seznam IN je izpis odgovorov
if((($rowMultiple['enota'] == 2 || $rowMultiple['enota'] == 6)&&$izpisOdgovorov) || ($izpisOdgovorov&&$rowMultiple['tip']==6&&$export_data_type==2)){ //(ce je roleta ALI seznam IN je izpis odgovorov) ALI (je izpis odgovorov IN je radio button)
if($sprIdRoletSeznamovTmp != $sprIdRoletSeznamov){
$steviloSkupinRoletSeznamov++;
}
$steviloOdgovorovRoletSeznamov++;
- //echo "spr: $sprIdRoletSeznamov </br>";
}
- $sprIdRoletSeznamovTmp = $sprIdRoletSeznamov;
+ $sprIdRoletSeznamovTmp = $sprIdRoletSeznamov;
}
//pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti - vodoravni odgovori - konec
$vodoravniOdgovoriVsi = $vodoravniOdgovori;
- /* echo "stevilo skupin rolet/seznamov ".($steviloSkupinRoletSeznamov)." </br>";
- echo "stevilo odgovorov v roletah ali seznamu ".($steviloOdgovorovRoletSeznamov)." </br>"; */
-
-/* echo "vodoravniOdgovoriSprId: ";
- print_r($vodoravniOdgovoriSprId);
- echo "</br>";
- echo "Enote: ";
- print_r($vodoravniOdgovoriEnota);
- echo "</br>"; */
//ureditev polja z nadnaslovi kombinirane tabele
while ($rowMultiplePodNaslovi = mysqli_fetch_array($sqlMultiplePodNaslovi)){
- array_push($podNaslovi, $this->encodeText($rowMultiplePodNaslovi['naslov']));
+ array_push($podNaslovi, LatexDocument::encodeText($rowMultiplePodNaslovi['naslov'], 0, 1));
}
//ureditev polja z nadnaslovi kombinirane tabele - konec
@@ -228,10 +246,8 @@ class GridMultipleLatex extends LatexSurveyElement
$steviloPodstolpcev = $numColSql - $steviloOdgovorovRoletSeznamov + $steviloSkupinRoletSeznamov;
$mejaZaVelikeTabele = 7;
$velikostTabele = $steviloPodstolpcev-1;
- //echo "<b>velikost tabele: </b>".($velikostTabele)." </br>";
+
if($velikostTabele > $mejaZaVelikeTabele){ //ce imamo veliko tabelo, jo je potrebno razbiti na vec tabel, ker drugace je presiroka
- //echo "tabela je prevelika, ima ".($velikostTabele)." stolpcev</br>";
-
$presirokaTabela = 1;
$steviloTabelCelih = intval($velikostTabele / $mejaZaVelikeTabele);
$steviloTabelMod = $velikostTabele % $mejaZaVelikeTabele;
@@ -240,11 +256,6 @@ class GridMultipleLatex extends LatexSurveyElement
$delnaTabela = 1;
}
$steviloTabel = $steviloTabelCelih + $delnaTabela;
-
- //echo "stevilo podtabel celih ".($steviloTabelCelih)." </br>";
- //echo "stevilo podtabel mod ".($steviloTabelMod)." </br>";
- //echo "stevilo podtabel za izpis: ".($steviloTabel)." </br>";
- //echo "stevilo podatkov za izpis: ".($steviloPodatkovZaIzpis)." </br>";
}else{
$presirokaTabela = 0;
@@ -273,11 +284,6 @@ class GridMultipleLatex extends LatexSurveyElement
$valueTmp = null;
foreach($vodoravniOdgovoriSprId as $value){ //parametri tabele ZA OSTALE STOLPCE+pridobitev stevila stolpcev+priprava polj in spremenljivk ###############
- //echo $vodoravniOdgovoriEnota[$indeksParameterTabular-1]."</br>";
- //echo "value: ".$value."</br>";
- //echo "valueTmp: ".$valueTmp."</br>";
- //echo "indeksParameterTabular: ".$indeksParameterTabular."</br>";
- //echo "Stevilo vodoravniOdgovoriSprId: ".count($vodoravniOdgovoriSprId)."</br>";
if($izpisOdgovorov == 0 || ($izpisOdgovorov == 1 && $vodoravniOdgovoriEnota[$indeksParameterTabular-1]==0 && $export_data_type == 1) || ($izpisOdgovorov == 1 && $vodoravniOdgovoriEnota[$indeksParameterTabular-1]==0 && $vodoravniOdgovoriTip[$indeksParameterTabular-1]!=6 && $export_data_type == 2)){ //ce je prazen vprasalnik ALI (je izpis odgovorov IN ni roleta/seznam IN je Razsirjen izvoz) ALI (je izpis odgovorov IN ni roleta/seznam IN ni radio button IN je skrcen izvoz)
if($indeksParameterTabular==1){ //ce je prvi podstolpec
@@ -345,8 +351,6 @@ class GridMultipleLatex extends LatexSurveyElement
$indeksVodoravniOdgovori++;
} //parametri tabele ZA OSTALE STOLPCE+pridobitev stevila stolpcev+priprava polj in spremenljivk - konec ##########################################
- //echo "Parametri tabel: ".$parameterTabular."</br>";
-
//brisanje odvecnih elementov polja in ponovna indeksacija polja
foreach($toDelete as $value){
unset($vodoravniOdgovoriPrva[$value]); //brisanje ustreznih elementov polja
@@ -371,20 +375,17 @@ class GridMultipleLatex extends LatexSurveyElement
}else{
$numColSqlPrva = $numColSql;
}
- //echo "stevilo stolpcev prva vrstica $numColSqlPrva </br>";
//dodatna priprava polj in spremenljivk, ce enota je razlicna od nula oz. izris ni klasicna tabela - konec #############################
//ureditev parametrov za tabelo, pridobitev stevila stolpcev za vsak tip dodanega vprasanja (podstolpec), priprava polj in spremenljivk, ce enota je razlicna od nula oz. izris ni klasicna tabela - konec ########
//IZRIS TABELE
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1); //zacetek tabele
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1); //zacetek tabele
#nadnaslovi nad prvo vrstico #########################################################
if($spremenljivke['grid_subtitle1']==1){ //ce so podnaslovi
for($n=0;$n<count($podNaslovi);$n++){
- //echo $podNaslovi[$n].'</br>';
- //$tex .= ' & \multicolumn{'.$steviloPodStolpcev[$n].'}{c}{'.$podNaslovi[$n].'}';
$tex .= ' & \multicolumn{'.$steviloPodStolpcev[$n].'}{C}{'.$podNaslovi[$n].'}';
}
}
@@ -398,20 +399,20 @@ class GridMultipleLatex extends LatexSurveyElement
$tex .= $texNewLine;
- //print_r($userAnswer);
-
#izris vrstic tabele
$fillablePdf = 0;
//echo "stevilo stolpcev tabele $numColSql </br>";
- $tex .= $this->LatexVrsticeMultigrid($numRowsSql, $export_format, $enota, $simbolTex, $navpicniOdgovori, 0, $fillablePdf, $numColSql, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, 0, 0, $vodoravniOdgovoriTip, $vodoravniOdgovoriEnota, $vodoravniOdgovoriSprId, $userAnswer, $export_subtype, $preveriSpremenljivko, $userDataPresent, $presirokaTabela, $export_data_type);
+ $tex .= $this->LatexVrsticeMultigrid($numRowsSql, $export_format, $enota, null, $navpicniOdgovori, 0, $fillablePdf, $numColSql, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, 0, 0, $vodoravniOdgovoriTip, $vodoravniOdgovoriEnota, $vodoravniOdgovoriSprId, $userAnswer, $export_subtype, $preveriSpremenljivko, $userDataPresent, $presirokaTabela, $export_data_type, $this->usr_id, $this->loop_id);
#izris vrstic tabele - konec
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular'); //zakljucek tabele
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular'); //zakljucek tabele
//IZRIS TABELE - KONEC
$tex .= $this->texBigSkip;
$tex .= $this->texBigSkip;
-
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time kombinirana tabela:</b> '.$execution_time.' sec'; */
return $tex;
}elseif($presirokaTabela == 1){ //ce je tabela presiroka #################################################
@@ -419,7 +420,6 @@ class GridMultipleLatex extends LatexSurveyElement
//za vsako spremenljivko oz. podtabelo
foreach($multipleSprId AS $sprId){
- //echo "$sprId</br>";
#pobiranje podatkov o odgovorih respondenta za vsako podtabelo posebej
if($usr_id){ //ce je prisotne id uporabnika, je izpis odgovorov in je potrebno narediti naslednje stvari
@@ -429,13 +429,10 @@ class GridMultipleLatex extends LatexSurveyElement
if($value!=''){
$userDataPresent=1;
}
- //echo "Value: ".$value."</br>";
}
$izpisOdgovorov = 1;
}
- //echo "podatek je: ".$userDataPresent."</br>";
- /* print_r($userAnswer);
- echo "</br>"; */
+
#pobiranje podatkov o odgovorih respondenta za vsako podtabelo posebej - konec
$vodoravniOdgovoriTip = array();
@@ -452,9 +449,12 @@ class GridMultipleLatex extends LatexSurveyElement
array_push($vodoravniOdgovoriTip, $rowMultiple['tip']); //filanje polja s tipi spremenljivk
array_push($vodoravniOdgovoriSprId, $rowMultiple['spr_id']); //filanje polja z id spremenljivk
array_push($vodoravniOdgovoriEnota, $rowMultiple['enota']); //filanje polja z enoto spremenljivk
- //print_r($vodoravniOdgovoriTip);
- $stringTitleCol = $this->encodeText($rowMultiple['naslov'], 0, 1);
- $stringTitleCol = '\footnotesize{'.$stringTitleCol.'}'; //zmanjsanje pisave za naslove stolpcev tabele
+
+ $stringTitleCol = $rowMultiple['naslov'];
+ if($usr_id){
+ $stringTitleCol = Common::getInstance()->dataPiping($stringTitleCol, $usr_id, $loop_id);
+ }
+ $stringTitleCol = '\footnotesize{'.LatexDocument::encodeText($stringTitleCol, 0, 1).'}'; //zmanjsanje pisave za naslove stolpcev tabele
//if(($vodoravniOdgovoriEnota[0] == 2 || $vodoravniOdgovoriEnota[0] == 6) && $izpisOdgovorov && $export_data_type == 1){ //(ce je roleta ALI seznam) IN je izpis odgovorov IN razsirjen izvoz
if(($vodoravniOdgovoriEnota[0] == 2 || $vodoravniOdgovoriEnota[0] == 6) && $izpisOdgovorov && $export_data_type == 1 || ($izpisOdgovorov && $export_data_type == 2 && $vodoravniOdgovoriTip[0] == 6 )){ //(ce je roleta ALI seznam) IN je izpis odgovorov IN razsirjen izvoz ALI (je izpis odgovorov IN skrcen izvoz IN radio button)
@@ -462,48 +462,25 @@ class GridMultipleLatex extends LatexSurveyElement
}else{
array_push($vodoravniOdgovori, $stringTitleCol); //filanje polja z vodoravnimi odgovori (po stolpcih)
}
- //array_push($vodoravniOdgovori, $stringTitleCol); //filanje polja z vodoravnimi odgovori (po stolpcih)
- //echo $rowMultiple['naslov']."</br>";
}
//poizvedba podnaslovov v podtabeli kombinirane tabele
$sqlMultiplePodNaslovi = sisplet_query("SELECT naslov FROM srv_spremenljivka WHERE id =".$sprId);
//ureditev polja z nadnaslovi kombinirane tabele
while ($rowMultiplePodNaslovi = mysqli_fetch_array($sqlMultiplePodNaslovi)){
- array_push($podNaslovi, $this->encodeText($rowMultiplePodNaslovi['naslov']));
+ array_push($podNaslovi,LatexDocument::encodeText($rowMultiplePodNaslovi['naslov'], 0, 1));
}
//ureditev polja z nadnaslovi kombinirane tabele - konec
$enota = $vodoravniOdgovoriEnota[0];
- /* print_r($vodoravniOdgovoriTip);
- echo "</br>";
- print_r($vodoravniOdgovoriSprId);
- echo "</br>";*/
- /* print_r($vodoravniOdgovoriEnota);
- echo "</br>"; */
- /* print_r($vodoravniOdgovori);
- echo "</br>"; */
//ureditev parametrov tabele
- /* echo "enota:".$vodoravniOdgovoriEnota[0]."</br>";
- echo "izpisOdgovorov:".$izpisOdgovorov."</br>";
- echo "tip:".$vodoravniOdgovoriTip[0]."</br>";
- echo "export_data_type:".$export_data_type."</br>"; */
- //if(($enota == 2 || $enota == 6) && $izpisOdgovorov && $export_data_type == 1){ //(ce je roleta ALI seznam) IN je izpis odgovorov IN razsirjen izvoz
if(($enota == 2 || $enota == 6) && $izpisOdgovorov && $export_data_type == 1 || ($izpisOdgovorov && $export_data_type == 2 && $vodoravniOdgovoriTip[0] == 6 )){ //(ce je roleta ALI seznam) IN je izpis odgovorov IN razsirjen izvoz ALI (je izpis odgovorov IN skrcen izvoz IN radio button)
$steviloStolpcev = 1 + 1;
}else{
$steviloStolpcev = count($vodoravniOdgovoriSprId) + 1;
}
- //echo "stevilo stolpcev: $steviloStolpcev</br>";
-
- /* if((($vodoravniOdgovoriEnota[0] == 2 || $vodoravniOdgovoriEnota[0] == 6)&&$izpisOdgovorov&&$export_data_type == 1) || ($izpisOdgovorov&&$export_data_type == 2&&$vodoravniOdgovoriTip[$indeksParameterTabular-1]==6)){ //(ce je roleta ali izberite iz seznama IN je izpis odgovorov IN razsirjen izvoz) ALI (je izpis odgovorov IN skrcen izvoz IN radio button)
-
- } */
-
-
- //echo "stevilo stolpcev: $steviloStolpcev</br>";
$parameterTabular = '';
$parameterTabular .= ($export_format == 'pdf' ? 'A' : 'l'); //leva poravnava stolpca fiksne sirine ZA PRVI STOLPEC (parameteri tabele)
@@ -511,7 +488,6 @@ class GridMultipleLatex extends LatexSurveyElement
for($i=1; $i<$steviloStolpcev;$i++){
$parameterTabular .= ($export_format == 'pdf' ? 'C' : 'c'); //sredinska poravnava stolpca
}
- //echo "parametri tabele: $parameterTabular </br>";
//ureditev parametrov tabele - konec
@@ -522,8 +498,6 @@ class GridMultipleLatex extends LatexSurveyElement
$steviloPodStolpcev = $steviloStolpcev - 1;
if($spremenljivke['grid_subtitle1']==1){ //ce so podnaslovi
for($n=0;$n<count($podNaslovi);$n++){
- //echo "podnaslov za sprem ".$vodoravniOdgovoriSprId[0]." je: ".$podNaslovi[$n]." število stolpcev pa $steviloPodStolpcev</br>";
- //$tex .= ' & \multicolumn{'.$steviloPodStolpcev.'}{c}{'.$podNaslovi[$n].'}';
$tex .= ' & \multicolumn{'.$steviloPodStolpcev.'}{C}{'.$podNaslovi[$n].'}';
}
}
@@ -540,7 +514,7 @@ class GridMultipleLatex extends LatexSurveyElement
#izris vrstic tabele
$fillablePdf = 0;
//echo "stevilo stolpcev tabele $steviloStolpcev </br>";
- $tex .= $this->LatexVrsticeMultigrid($numRowsSql, $export_format, $enota, $simbolTex, $navpicniOdgovori, 0, $fillablePdf, $steviloStolpcev, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, 0, 0, $vodoravniOdgovoriTip, $vodoravniOdgovoriEnota, $vodoravniOdgovoriSprId, $userAnswer, $export_subtype, $preveriSpremenljivko, $userDataPresent, $presirokaTabela, $export_data_type);
+ $tex .= $this->LatexVrsticeMultigrid($numRowsSql, $export_format, $enota, null, $navpicniOdgovori, 0, $fillablePdf, $steviloStolpcev, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, 0, 0, $vodoravniOdgovoriTip, $vodoravniOdgovoriEnota, $vodoravniOdgovoriSprId, $userAnswer, $export_subtype, $preveriSpremenljivko, $userDataPresent, $presirokaTabela, $export_data_type, $this->usr_id, $this->loop_id);
#izris vrstic tabele - konec
$tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular'); //zakljucek tabele
diff --git a/admin/survey/export/latexclasses/Vprasanja/HeatmapLatex.php b/admin/survey/export/latexclasses/Vprasanja/HeatmapLatex.php
index 94e86fb..f65b419 100644
--- a/admin/survey/export/latexclasses/Vprasanja/HeatmapLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/HeatmapLatex.php
@@ -9,9 +9,10 @@
* Datum: 09/2017
*****************************************/
//use enkaParameters;
-define("PIC_SIZE", "\includegraphics[width=10cm]"); //slika sirine 50mm
-define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
-define("RADIO_BTN_SIZE", 0.13);
+
+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('RADIO_BTN_SIZE')) define("RADIO_BTN_SIZE", 0.13);
class HeatmapLatex extends LatexSurveyElement
{
@@ -74,15 +75,19 @@ class HeatmapLatex extends LatexSurveyElement
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
$stringTitleRow = $rowVrednost['naslov']; //odgovori na levi strani
- array_push($navpicniOdgovori, $this->encodeText($stringTitleRow) ); //filanje polja z navpicnimi odgovori (po vrsticah)
+ if($usr_id){
+ $stringTitleRow = Common::getInstance()->dataPiping($stringTitleRow, $usr_id, $loop_id);
+ }
+ array_push($navpicniOdgovori, LatexDocument::encodeText($stringTitleRow) ); //filanje polja z navpicnimi odgovori (po vrsticah)
}
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - konec
//$tex .= $this->IzrisVsotaTabela($spremenljivke, $numRowsSql, $navpicniOdgovori, $texNewLine, $texNewLineAfterTable, $export_format, 0);
- $imageName = $this->getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
- //echo("iz heatmap ime slike: ".$imageName."</br>");
+ //html slike
+ //$imageName = ($spremenljivkaParams->get('hotspot_image') ? $spremenljivkaParams->get('hotspot_image') : "");
+ $imageName = LatexDocument::getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
$path2Images = $this->path2Images;
$imageNameTest = $path2Images.$imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
@@ -92,7 +97,7 @@ class HeatmapLatex extends LatexSurveyElement
$imageName = $path2Images.$imageName;
- if(filesize($imageNameTest) > 0){
+ if(filesize(file_exists($imageNameTest)) > 0){
$image = PIC_SIZE."{".$imageName."}"; //priprave slike predefinirane dimenzije
}else{
//$image = 'ni slike';
@@ -110,22 +115,29 @@ class HeatmapLatex extends LatexSurveyElement
if($whileIndeks == 0){ //ce so prisotna imena obmocij, izpisi besedilo "Obmocja na sliki"
$tex .= $lang['srv_export_hotspot_regions_names'].': '.$texNewLine; //izpis besedila "Obmocja na sliki"
}
- $tex .= $rowHotSpotRegions['region_name'].''.$texNewLine;
- if($rowHotSpotRegions['region_name']){
- array_push($obmocjaNaSliki, $rowHotSpotRegions['region_name']);
- //array_push($coordsObmocijNaSliki, $rowHotSpotRegions['region_coords']);
- $coordsObmocijNaSliki[$rowHotSpotRegions['region_name']]=$rowHotSpotRegions['region_coords'];
- $point[$rowHotSpotRegions['region_name']] = 0;
+
+ $regionName = $rowHotSpotRegions['region_name'];
+ if($usr_id){
+ $regionName = Common::getInstance()->dataPiping($regionName, $usr_id, $loop_id);
+ }
+ $regionName = LatexDocument::encodeText($regionName);
+ $tex .= $regionName.''.$texNewLine;
+ //echo "ime: $regionName </br>";
+
+ if($regionName){
+ array_push($obmocjaNaSliki, $regionName);
+ $coordsObmocijNaSliki[$regionName]=$rowHotSpotRegions['region_coords'];
+ $point[$regionName] = 0;
}
$whileIndeks++;
}
$tex .= $texNewLine;
- //ureditev missing-ov
- if(count($missingOdgovori)!=0){ //ce so missing-i
+ //ureditev missing-ov - pokomentiranje missing-ov ob preurejanju kode za PHP8 - Patrik
+/* if(count($missingOdgovori)!=0){ //ce so missing-i
$vodoravniOdgovori = $this->AddMissingsToAnswers($vodoravniOdgovori, $missingOdgovori);
- }
+ } */
//ureditev missing-ov - konec
@@ -152,6 +164,7 @@ class HeatmapLatex extends LatexSurveyElement
$textboxHeightOdgovori = 0; //visina okvirja z odgovorom
$noBordersOdgovori = 0;
$parameterTabular = 'l';
+ $textboxAllignment = null;
//za ureditev stevila tock v izbranih obmocjih
$dataPointValue = array();
$data = array();
@@ -221,7 +234,7 @@ class HeatmapLatex extends LatexSurveyElement
$point[$obmocjaNaSliki[$o]]++;
}
}
- //echo "stevilo tock znotraj obmocja: ".$point["Besedilo"]."</br>";
+ //echo "stevilo tock znotraj obmocja: ".$point["Besedilo"]."</br>";
}
#pridobitev podatkov o obmocjih in podatka o prisotnosti tocke v obmocju - konec
//echo $answer."</br>";
@@ -230,13 +243,13 @@ class HeatmapLatex extends LatexSurveyElement
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//izpis latex kode za prazen okvir oz. okvir z odgovori respondenta
$tex .= $this->LatexTextBox($export_format, $textboxHeightOdgovori, $textboxWidthOdgovori, $answer, $textboxAllignment, $noBordersOdgovori);
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
//$tex .= $texNewLine;
}
@@ -256,13 +269,13 @@ class HeatmapLatex extends LatexSurveyElement
}
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//izpis latex kode za prazen okvir oz. okvir z odgovori respondenta
$tex .= $this->LatexTextBox($export_format, $textboxHeightOdgovori, $textboxWidthOdgovori, $answerRegions, $textboxAllignment, $noBordersOdgovori);
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
//$tex .= $texNewLine;
}
@@ -298,8 +311,8 @@ class HeatmapLatex extends LatexSurveyElement
#funkcija, ki skrbi za pretvorbo stringa koordinat obmocja v polja
function convertPolyString($polypoints=null){
$poly = [];
- //$tmpX;
- //$tmpY;
+ $tmpX = null;
+ $tmpY = null;
$j = 0;
$poly = explode(",", $polypoints);
diff --git a/admin/survey/export/latexclasses/Vprasanja/KalkulacijaLatex.php b/admin/survey/export/latexclasses/Vprasanja/KalkulacijaLatex.php
index d025c58..00bf512 100644
--- a/admin/survey/export/latexclasses/Vprasanja/KalkulacijaLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/KalkulacijaLatex.php
@@ -9,7 +9,7 @@
* Datum: 05/2018
*****************************************/
- define("NAGOVOR_LINE_WIDTH", 0.5);
+ if (!defined("NAGOVOR_LINE_WIDTH")) define("NAGOVOR_LINE_WIDTH", 0.5);
class KalkulacijaLatex extends LatexSurveyElement
{
diff --git a/admin/survey/export/latexclasses/Vprasanja/KvotaLatex.php b/admin/survey/export/latexclasses/Vprasanja/KvotaLatex.php
index f20eef4..41fe2a4 100644
--- a/admin/survey/export/latexclasses/Vprasanja/KvotaLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/KvotaLatex.php
@@ -9,7 +9,7 @@
* Datum: 05/2018
*****************************************/
- define("NAGOVOR_LINE_WIDTH", 0.5);
+ if (!defined("NAGOVOR_LINE_WIDTH")) define("NAGOVOR_LINE_WIDTH", 0.5);
class KvotaLatex extends LatexSurveyElement
{
@@ -71,7 +71,7 @@ class KvotaLatex extends LatexSurveyElement
//ime spremenljivke
if($rowKvota['spr_id']>0){ //ce je spr_id vecji od 0
$rowVariableName = Cache::srv_spremenljivka($rowKvota['spr_id']); //pridobitev imena spremenljivke iz njenega id
- $tex .= $lang['srv_vprasanje_tip_25'].'('.$rowVariableName['variable'].$this->encodeText('_').$rowVariableVrednostVrstniRed['vrstni_red'].')';
+ $tex .= $lang['srv_vprasanje_tip_25'].'('.$rowVariableName['variable'].LatexDocument::encodeText('_').$rowVariableVrednostVrstniRed['vrstni_red'].')';
}else{ //drugace, ko je spr_id manjsi od 0, je negativne vrednosti, so zapisani statusi in tipi odgovorov
switch ( $rowKvota['spr_id'] ){
case -1:
diff --git a/admin/survey/export/latexclasses/Vprasanja/LokacijaLatex.php b/admin/survey/export/latexclasses/Vprasanja/LokacijaLatex.php
index 90a40c1..ba2405a 100644
--- a/admin/survey/export/latexclasses/Vprasanja/LokacijaLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/LokacijaLatex.php
@@ -111,13 +111,13 @@ class LokacijaLatex extends LatexSurveyElement
#priprava odgovora respondenta - konec #######################################################################################
//zacetek tabele
- $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tex .= $this->StartLatexTable($export_format, $parameterTabular, 'xltabular', 'tabular', 1, 1);
//izpis latex kode za prazen okvir oz. okvir z odgovori respondenta
$tex .= $this->LatexTextBox($export_format, $textboxHeightOdgovori, $textboxWidthOdgovori, $answer, $textboxAllignment, $noBordersOdgovori);
//zakljucek tabele
- $tex .= $this->EndLatexTable($export_format, 'tabularx', 'tabular');
+ $tex .= $this->EndLatexTable($export_format, 'xltabular', 'tabular');
//$tex .= $texNewLine;
}
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php b/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php
index 11f4be2..e7d8347 100644
--- a/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php
@@ -10,15 +10,16 @@
*****************************************/
-define("PIC_SIZE", "\includegraphics[width=10cm]"); //slika sirine 50mm
-define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
-define("RADIO_BTN_SIZE", 0.13);
-define("U_SHAPE_WIDTH_U", 4);
-define("U_SHAPE_WIDTH_OKVIR", 3.62);
-define("U_SHAPE_WIDTH_TEXT_U", 2.2);
-define("U_SHAPE_WIDTH_TEXT_OKVIR", 1.81);
-define("MAXSTEVILOSTOLPCEV", 21); //max Stevilo Stolpcev za prvo vrstico pod Drsnikom, zaradi tezav z izrisom, ce je teh vec kot toliko
-define("VAS_SIZE", 0.04); //VAS_SIZE
+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('RADIO_BTN_SIZE')) define("RADIO_BTN_SIZE", 0.13);
+if (!defined('U_SHAPE_WIDTH_U')) define("U_SHAPE_WIDTH_U", 4);
+if (!defined('U_SHAPE_WIDTH_OKVIR')) define("U_SHAPE_WIDTH_OKVIR", 3.62);
+if (!defined('U_SHAPE_WIDTH_TEXT_U')) define("U_SHAPE_WIDTH_TEXT_U", 2.2);
+if (!defined('U_SHAPE_WIDTH_TEXT_OKVIR')) define("U_SHAPE_WIDTH_TEXT_OKVIR", 1.81);
+if (!defined('MAXSTEVILOSTOLPCEV')) define("MAXSTEVILOSTOLPCEV", 21); //max Stevilo Stolpcev za prvo vrstico pod Drsnikom, zaradi tezav z izrisom, ce je teh vec kot toliko
+if (!defined('VAS_SIZE')) define("VAS_SIZE", 0.04); //VAS_SIZE
class MultiGridLatex extends LatexSurveyElement
{
@@ -40,11 +41,13 @@ class MultiGridLatex extends LatexSurveyElement
protected $textRVreId = array(); //belezi vre_id navpicnih odgovorov, ki so bili izbrani in morajo biti na desni strani povleci-spusti
protected $navpicniOdgovoriVreId = array(); //belezi vre_id navpicnih odgovorov
protected $loop_id = null; // id trenutnega loopa ce jih imamo
+ protected $usr_id = null;
protected $path2ImagesMulti;
-
+
protected $language;
-
+ protected $prevod;
+
public function __construct()
{
global $site_path;
@@ -68,7 +71,9 @@ class MultiGridLatex extends LatexSurveyElement
#funkcija za izvoz vprasalnika za posameznega respondenta
public function exportData($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype=''){
global $lang;
- //echo "exportData";
+
+
+
// iz baze preberemo vse moznosti - ko nimamo izpisa z odgovori respondenta
//$sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable, other, spr_id FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
$sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable, other, spr_id FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' AND hidden='0' ORDER BY vrstni_red");
@@ -97,7 +102,6 @@ class MultiGridLatex extends LatexSurveyElement
$texNewLineAfterTable = $texNewLine." ".$texNewLine." ".$texNewLine;
if($spremenljivke['enota']==10){ //ce je image hotspot
$indeksZaWhile = 1;
- //echo "Indeks je ena ce je hotspot </br>";
}
$indeksDvojnaTabela1 = 1;
$indeksDvojnaTabela2 = 1;
@@ -110,10 +114,10 @@ class MultiGridLatex extends LatexSurveyElement
while ($colVrednost = mysqli_fetch_assoc($sqlStolpciVrednosti)){
if($colVrednost['other'] != 0){
$stringMissingOdgovor = $colVrednost['naslov'];
- array_push($missingOdgovori, $this->encodeText($stringMissingOdgovor) ); //filanje polja z missing odgovori
+ array_push($missingOdgovori, LatexDocument::encodeText($stringMissingOdgovor, 0, 1) ); //filanje polja z missing odgovori
}else{
$stringTitleCol = $colVrednost['naslov'];
- array_push($vodoravniOdgovori, $this->encodeText($stringTitleCol) ); //filanje polja z vodoravnimi odgovori (po stolpcih)
+ array_push($vodoravniOdgovori, LatexDocument::encodeText($stringTitleCol, 0, 1) ); //filanje polja z vodoravnimi odgovori (po stolpcih)
}
}
//pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti - konec
@@ -135,7 +139,7 @@ class MultiGridLatex extends LatexSurveyElement
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
$indeksZaWhile = 1;
//navpicni odgovori
- $stringCell_title = $this->encodeText(( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) );
+ $stringCell_title = LatexDocument::encodeText(( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ), 0, 1 );
// še dodamo textbox če je polje other
$_txt = '';
@@ -143,18 +147,10 @@ class MultiGridLatex extends LatexSurveyElement
//$sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id='".$usr_id."' AND loop_id $loop_id");
$sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id);
$row4 = mysqli_fetch_assoc($sqlOtherText);
- $_txt = ' '.$row4['text'];
- //if($_txt!=' '){
- //$stringCell_title .= $_txt.':';
- //}
+ if(isset($row4)){
+ $_txt = ' '.$row4['text'];
+ }
}
- //echo "zacetek funkcije </br>";
- //if($spremenljivke['enota']!=10){ //ce ni image hotspot
-/* if($spremenljivke['enota']!=10&&$indeksZaWhile==1){ //ce ni image hotspot
- $indeksZaWhile = 1;
- echo "Indeks je ena ce ni hotspot </br>";
- } */
- //echo "odgovor: ".$stringCell_title." </br>";
$IndeksZaMissing=1;
@@ -166,21 +162,15 @@ class MultiGridLatex extends LatexSurveyElement
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
if((count($missingOdgovori))&&($spremenljivke['tip']==19||$spremenljivke['tip']==20)){ //ce so missing-i
- //echo "missing</br>";
$sqlUserAnswerMissing = $this->GetUsersDataGrid($spremenljivkeData, $db_table, $rowVrednost, $rowVsehVrednosti, $usr_id,0);
$userAnswerMissing = mysqli_fetch_assoc($sqlUserAnswerMissing);
- //echo "userAnswer Missing: ".$userAnswerMissing['grd_id'].'</br>';
}
- //echo "rowVsehVrednosti['id']: ".$rowVsehVrednosti['id'].'</br>';
- //echo "userAnswer: ".$userAnswer['text'].'</br>';
- //echo "userAnswer: ".$userAnswer['grd_id'].'</br>';
- //echo "rowVrednost['spr_id']: ".$rowVrednost['spr_id'].'</br>';
- if($rowVsehVrednosti['id'] == $userAnswer['grd_id']){ //ce je podatek
+ if($rowVsehVrednosti['id'] == isset($userAnswer['grd_id'])){ //ce je podatek
if($indeksDvojnaTabela1==1&&$spremenljivke['enota']==3&&in_array($spremenljivke['tip'], array(6, 16))){ //samo prvic izpisi nadnaslov 1, ce je dvojna tabela
//naslov prvega dela grida za dvojno tabelo
- $tex1 .= $this->encodeText($spremenljivke['grid_subtitle1']).$texNewLine;
+ $tex1 .= LatexDocument::encodeText($spremenljivke['grid_subtitle1'], 0, 1).$texNewLine;
}
if($spremenljivke['tip']==6||$spremenljivke['tip']==16){
if(($vNovoVrstico==1&&$spremenljivke['tip']==16)||$spremenljivke['tip']==6){
@@ -192,32 +182,24 @@ class MultiGridLatex extends LatexSurveyElement
if($spremenljivke['tip']==16&&$indeksZaWhile!=1){
$tex1 .= ', ';
}
- $tex1 .= ' '.$this->encodeText($rowVsehVrednosti['naslov']);
+ $tex1 .= ' '.LatexDocument::encodeText($rowVsehVrednosti['naslov'], 0, 1);
//$tex1 .= ' \\textcolor{crta}{'.$this->encodeText($rowVsehVrednosti['naslov']).'}';
}
- //echo "Sprememba indeksa </br>";
$indeksZaWhile++;
- $podatek = 1;
- //echo "Zgornji: ".$indeksZaWhile."</br>";
- //echo "Zgornji: ".$indeksZaWhile." za ".$this->encodeText($rowVsehVrednosti['naslov'])."</br>";
- //echo "tex: ".$tex1."</br>";
+ $podatek = 1;
}else{
$podatek = 0;
}
-
- //echo $this->encodeText($this->userAnswer['text']).'</br>';
if($spremenljivke['tip']==19||$spremenljivke['tip']==20){ //ce je grid stevilk ali besedil
- //echo "Indeks missing: ".$IndeksZaMissing."</br>";
if(($IndeksZaMissing > ($numColSql-count($missingOdgovori)))&&(count($missingOdgovori))){
- //echo "userAnswer Missing je prisoten in njegov grd_id je: ".$userAnswerMissing['grd_id'].'</br>';
- $okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, 6, $spremenljivke['grids'], count($missingOdgovori), $userAnswerMissing['grd_id']);
+ $okvirZOdgovori = $this->getAnswerSymbol(null, $export_format, $fillablePdf, 6, $spremenljivke['grids'], count($missingOdgovori), $userAnswerMissing['grd_id']);
}else{
- $okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),$this->encodeText($userAnswer['text']));
+ $user_answer_var = isset($userAnswer['text'])?$userAnswer['text']:'';
+ $okvirZOdgovori = $this->getAnswerSymbol(null, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori), $user_answer_var);
}
//$okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),$this->encodeText($userAnswer['text']));
- //echo "okvirZOdgovori: ".$okvirZOdgovori."</br>";
array_push($odgovoriRespondent, $okvirZOdgovori);
}
@@ -238,11 +220,7 @@ class MultiGridLatex extends LatexSurveyElement
$tex2 = '';
$tex .= $tex1.$tex2; //zdruzitev obeh delov latex kode
- //echo "tex: ".$tex." za ".$spremenljivke['variable']."</br>";
if($spremenljivke['tip']==19||$spremenljivke['tip']==20){ //ce je grid stevilk ali besedil
- //echo "stevilo odgovorov: ".count($odgovoriRespondent)."</br>";
- //echo "stevilo odgovorov missing: ".count($userAnswerMissing)."</br>";
- //echo "stevilo odgovorov : ".count($userAnswer)."</br>";
return $odgovoriRespondent;
}else{
return $tex;
@@ -252,18 +230,23 @@ class MultiGridLatex extends LatexSurveyElement
#funkcija za izvoz vprasalnika za posameznega respondenta - konec
- //public function export($spremenljivke, $export_format, $questionText, $fillablePdf, $texNewLine, $export_subtype){
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype='', $preveriSpremenljivko=null, $skipEmptySub=null, $export_data_type='', $skipEmpty=null, $loop_id=null, $language=null){
- //echo $export_data_type."</br>";
+ $time_start = microtime(true);
+ $this->exportDataType = $export_data_type;
global $lang;
$this->language = $language;
-
+ //preverjanje, ali je prevod
+ $this->prevod = $this->language?1:0;
+ //preverjanje, ali je prevod - konec
+
$this->preveriSpremenljivko = $preveriSpremenljivko;
- $this->skipEmpty =$skipEmpty;
+ $this->skipEmpty = $skipEmpty;
$this->skipEmptySub = $skipEmptySub;
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
+ $this->usr_id = $usr_id;
+
// iz baze preberemo vse moznosti - ko nimamo izpisa z odgovori respondenta
//$sqlVrednosti = sisplet_query("SELECT id, naslov, naslov2, variable, other, spr_id FROM srv_vrednost WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
@@ -276,9 +259,9 @@ class MultiGridLatex extends LatexSurveyElement
$tex = '';
- if($export_subtype!='q_empty'&&$export_data_type!=1){ //ce ni prazen vprasalnik in izpis ni Dolg, dodaj prazno vrstico
+ //if($export_subtype!='q_empty'&&$export_data_type!=1){ //ce ni prazen vprasalnik in izpis ni Dolg, dodaj prazno vrstico
//$tex .= '\\\\';
- }
+ //}
$navpicniOdgovori = array();
$navpicniOdgovori = [];
@@ -289,188 +272,128 @@ class MultiGridLatex extends LatexSurveyElement
$missingOdgovori = array();
$missingOdgovori = [];
$userAnswerData = array();
- //$textRVreId = array();
-
+
$indeksOdgovorovTextR = 0;
$texNewLineAfterTable = $texNewLine." ".$texNewLine." ".$texNewLine;
$indeksZaWhile = 1;
$indeksOdgovorov = 0;
- //echo "Funkcija export </br>";
-
$nacinVnosa = $spremenljivke['ranking_k']; //nacin vnosa 0-Stevilo, 1-Drsnik
+ //$sqlVsehVrednsti = sisplet_query("SELECT id, naslov FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY 'vrstni_red'");
+
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
- //$prop['full'] = ( isset($userAnswer[$rowVrednost['id']]) );
-
- //$stringTitleRow = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
-
- #ce je respondent odgovarjal v drugem jeziku ########################
- $rowl = $this->srv_language_vrednost($rowVrednost['id']);
- if (strip_tags($rowl['naslov']) != '') $rowVrednost['naslov'] = $rowl['naslov'];
- if (strip_tags($rowl['naslov2']) != '') $rowVrednost['naslov2'] = $rowl['naslov2'];
- #ce je respondent odgovarjal v drugem jeziku - konec ################
-
- $stringTitleRow = $rowVrednost['naslov']; //odgovori na levi strani (za tabela diferencial)
- $stringTitleRow2 = $rowVrednost['naslov2']; //odgovori na desni strani (za tabela diferencial)
-
- array_push($navpicniOdgovori, $this->encodeText($stringTitleRow, $rowVrednost['id']) ); //filanje polja z navpicnimi odgovori (po vrsticah)
- array_push($navpicniOdgovori2, $this->encodeText($stringTitleRow2, $rowVrednost['id']) ); //filanje polja z navpicnimi odgovori2 (po vrsticah)
if($spremenljivke['enota']==9){ //ce je povleci-spusti
array_push($this->navpicniOdgovoriVreId, $rowVrednost['id'] ); //filanje polja z vre_id navpicnih odgovorov (po vrsticah), potrebno za povleci-spusti
- //array_push($this->navpicniOdgovoriVreId, $rowVrednost['spr_id'] ); //filanje polja z vre_id navpicnih odgovorov (po vrsticah), potrebno za povleci-spusti
}
$indeksZaWhile++;
- //echo "rowVrednost['id']: ".$rowVrednost['id'].'</br>';
$indeksZaWhileVsehVrednosti = 1;
$indeksEnaMoznostProtiDrugi = 0; //belezi stevilo odgovorov v eni vrstici za enota=4
- $sqlVsehVrednsti = sisplet_query("SELECT id, naslov FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY 'vrstni_red'");
- //echo "začne drugi while </br>";
+ $sqlVsehVrednsti = sisplet_query("SELECT id, naslov FROM srv_grid WHERE spr_id='".$spremenljivke['id']."' ORDER BY 'vrstni_red'");
while ($rowVsehVrednosti = mysqli_fetch_assoc($sqlVsehVrednsti)){
- //$indeksZaWhile = $this->GetUsersDataGrid($spremenljivke, $this->db_table, $rowVrednost, $rowVsehVrednosti, $this->usr_id, 1);
- //$sqlUserAnswer = $this->GetUsersDataGrid($spremenljivke, $db_table, $rowVrednost, $rowVsehVrednosti, $usr_id, 0);
$sqlUserAnswer = $this->GetUsersDataGrid($spremenljivke, $db_table, $rowVrednost, $rowVsehVrednosti, $usr_id, 0, $this->loop_id);
-
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
- //echo "userAnswer: ".$userAnswer['grd_id'].'</br>';
- //echo "userAnswerVreId: ".$userAnswer['vre_id'].'</br>';
- //echo "text: ".$userAnswer['text'].'</br>';
-
-/* if($spremenljivke['enota']==4&&$userAnswer['grd_id']){
- $userAnswerData[$indeksOdgovorov] = $userAnswer['grd_id'];
- echo "userAnswerData: ".$userAnswerData[$indeksOdgovorov].'</br>';
- //echo 'je 4 </br>';
- $indeksOdgovorov++; */
if($spremenljivke['enota']==4){ //ce je ena moznost proti drugi
- //echo 'je 4 '.$indeksOdgovorov.'</br>';
if($userAnswer['grd_id']){ //ce je podatek, ga zabelezi
$userAnswerData[$indeksOdgovorov] = $userAnswer['grd_id'];
- //echo "userAnswerData s podatkom: ".$userAnswerData[$indeksOdgovorov].'</br>';
- //echo 'je 4 '.$indeksOdgovorov.'</br>';
$indeksOdgovorov++;
}else{ //drugace
if($indeksEnaMoznostProtiDrugi>=1){
$userAnswerData[$indeksOdgovorov] = $userAnswer['grd_id'];
- //echo "rabim prazno polje </br>";
- //echo "userAnswerData brez podatka: ".$userAnswerData[$indeksOdgovorov].'</br>';
- //echo 'je 4 '.$indeksOdgovorov.'</br>';
$indeksOdgovorov++;
}
- //echo "indeks se spremeni </br>";
$indeksEnaMoznostProtiDrugi++;
}
- //echo "indeksEnaMoznostProtiDrugi: ".$indeksEnaMoznostProtiDrugi.'</br>';
- //echo "userAnswerData: ".$userAnswerData[$indeksOdgovorov].'</br>';
- }elseif($spremenljivke['enota']!=4){
- $userAnswerData[$indeksOdgovorov] = $userAnswer['grd_id'];
- $userAnswerDataText[$indeksOdgovorov] = $userAnswer['text'];
+ }elseif($spremenljivke['enota']!=4){
+ $userAnswerData[$indeksOdgovorov] = isset($userAnswer['grd_id']) ? $userAnswer['grd_id'] : null;
+ $userAnswerDataText[$indeksOdgovorov] = isset($userAnswer['text']) ? $userAnswer['text'] : '';
if($spremenljivke['enota']==9){ //povleci spusti
- $this->textRVreId[$indeksOdgovorov] = $userAnswer['vre_id'];
+ $this->textRVreId[$indeksOdgovorov] = isset($userAnswer['vre_id']) ? $userAnswer['vre_id'] : null;
if(isset($userAnswer['vre_id'])){
//$sqlTextRString = 'SELECT naslov FROM srv_vrednost WHERE id='.$userAnswer['vre_id'].' ';
- $sqlTextRString = 'SELECT naslov FROM srv_vrednost WHERE id='.$userAnswer['vre_id'].' AND hidden="0" ';
- //echo $sqlTextRString."</br>";
+ $sqlTextRString = 'SELECT naslov FROM srv_vrednost WHERE id='.(isset($userAnswer['vre_id']) ? $userAnswer['vre_id'] : null).' AND hidden="0" ';
$sqlTextR = sisplet_query($sqlTextRString);
$rowTextR = mysqli_fetch_assoc($sqlTextR);
- //echo $rowTextR['naslov']."</br>";
- //echo $indeksOdgovorovTextR.'</br>';
-
- //$this->textRArray[$indeksOdgovorovTextR] = $rowTextR['naslov'];
-
- //$this->textRArrayIndex[$userAnswer['grd_id']] = array($this->textRArray[$indeksOdgovorovTextR]);
- //echo "this->textRArray indeks ".$userAnswer['grd_id']." ".$this->textRArrayIndex[$userAnswer['grd_id']][$indeksOdgovorovTextR].'</br>';
$this->textRArray[$indeksOdgovorovTextR][$userAnswer['grd_id']]=$rowTextR['naslov'];
- //echo "this->textRArray: ".$this->textRArray[$indeksOdgovorovTextR][$userAnswer['grd_id']].'</br>';
- //echo "this->textRArray indeks ".$indeksOdgovorov." ".$textRVreId[$indeksOdgovorov].'</br>';
$indeksOdgovorovTextR++;
}
}
$indeksOdgovorov++;
- }
- //echo "rowVrednost['spr_id']: ".$rowVrednost['spr_id'].'</br>';
- //echo "rowVrednost['id']: ".$rowVrednost['id'].'</br>';
- //echo "rowVsehVrednosti['id']: ".$rowVsehVrednosti['id'].'</br>';
- if($rowVsehVrednosti['id'] == $userAnswer['grd_id']){
+ }
+ if( ($userAnswer!=null && ($rowVsehVrednosti['id'] == $userAnswer['grd_id'])) || $rowVrednost['other'] ){
$indeksZaWhileVsehVrednosti++;
}
if($indeksZaWhileVsehVrednosti!=1){
$userDataPresent = 1;
+ }else{
+ $userDataPresent = 0;
}
- //echo "userAnswerData: ".$userAnswerData[$indeksOdgovorov].'</br>';
- //echo "enota: ".$spremenljivke['enota'].'</br>';
- //echo "indeksOdgovorov: ".$indeksOdgovorov.'</br>';
- //$indeksOdgovorov++;
}
+
+ #ce je respondent odgovarjal v drugem jeziku ########################
+ $rowl = $this->srv_language_vrednost($rowVrednost['id']);
+ if ($rowl!=null && strip_tags($rowl['naslov']) != '' && !$userDataPresent) $rowVrednost['naslov'] = $rowl['naslov'];
+ if ($rowl!=null && strip_tags($rowl['naslov2']) != '' && !$userDataPresent) $rowVrednost['naslov2'] = $rowl['naslov2'];
+ #ce je respondent odgovarjal v drugem jeziku - konec ################
+
+ if($usr_id){
+ $stringTitleRow = Common::getInstance()->dataPiping($rowVrednost['naslov'], $usr_id, $loop_id); //odgovori na levi strani (za tabela diferencial)
+ $stringTitleRow2 = Common::getInstance()->dataPiping($rowVrednost['naslov2'], $usr_id, $loop_id); //odgovori na desni strani (za tabela diferencial)
+ }else{
+ $stringTitleRow = $rowVrednost['naslov'];
+ $stringTitleRow2 = $rowVrednost['naslov2'];
+ }
+
+ array_push($navpicniOdgovori, LatexDocument::encodeText($stringTitleRow, $rowVrednost['id'], 1) ); //filanje polja z navpicnimi odgovori (po vrsticah)
+ array_push($navpicniOdgovori2, LatexDocument::encodeText($stringTitleRow2, $rowVrednost['id'], 1) ); //filanje polja z navpicnimi odgovori2 (po vrsticah)
+
}
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - konec
-
- /* echo "userDataPresent: ".$userDataPresent."</br>";
- echo "preveriSpremenljivko: ".$preveriSpremenljivko."</br>"; */
-
+
$this->userDataPresent = $userDataPresent;
- if($userDataPresent!=0||$export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){ //ce je kaj v bazi ali je prazen vprasalnik ali je potrebno pokazati tudi ne odgovorjena vprasanja
- //echo count($userAnswerData)." za ".$spremenljivke['id']."</br>";
+ //if($userDataPresent!=0||$export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){ //ce je kaj v bazi ali je prazen vprasalnik ali je potrebno pokazati tudi ne odgovorjena vprasanja
//pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti
- while ($colVrednost = mysqli_fetch_assoc($sqlStolpciVrednosti)){
+ while ($colVrednost = mysqli_fetch_assoc($sqlStolpciVrednosti)){
+ #ce je respondent odgovarjal v drugem jeziku ########################
+ $rowl = $this->srv_language_grid($colVrednost['id'],$spremenljivke['id']);
+ if ($rowl!=null && strip_tags($rowl['naslov']) != '' && !$userDataPresent) $colVrednost['naslov'] = $rowl['naslov'];
+ #ce je respondent odgovarjal v drugem jeziku - konec ################
if($colVrednost['other'] != 0){
$stringMissingOdgovor = $colVrednost['naslov'];
- array_push($missingOdgovori, $this->encodeText($stringMissingOdgovor) ); //filanje polja z missing odgovori
- }else{
- #ce je respondent odgovarjal v drugem jeziku ########################
- $rowl = $this->srv_language_grid($colVrednost['id'],$spremenljivke['id']);
- if (strip_tags($rowl['naslov']) != '') $colVrednost['naslov'] = $rowl['naslov'];
- #ce je respondent odgovarjal v drugem jeziku - konec ################
-
+ array_push($missingOdgovori, LatexDocument::encodeText($stringMissingOdgovor, 0, 1) ); //filanje polja z missing odgovori
+ }else{
$stringTitleCol = $colVrednost['naslov'];
$stringTitleCol = str_replace('<br />','',$stringTitleCol); //odstranitev odvecnih </br> iz naslova stolpcev
- array_push($vodoravniOdgovori, $this->encodeText($stringTitleCol) ); //filanje polja z vodoravnimi odgovori (po stolpcih)
+ if($usr_id){
+ $stringTitleCol = Common::getInstance()->dataPiping($stringTitleCol, $usr_id, $loop_id);
+ }
+ array_push($vodoravniOdgovori, LatexDocument::encodeText($stringTitleCol, 0, 1) ); //filanje polja z vodoravnimi odgovori (po stolpcih)
}
}
- //pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti - konec
+ //pregled vseh odgovorov po stolpcih po $sqlStolpciVrednosti - konec
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){ //ce je dolg izvoz
- //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov
- if($spremenljivke['tip']==6){ //grid radio
- //if($spremenljivke['enota']!=11){ //ce ni VAS
- if($spremenljivke['enota']!=11 && $spremenljivke['enota']!=12){ //ce ni VAS in ni slikovni tip
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0);
- //$tex .= '{\ChoiceMenu[radio,radiosymbol=\ding{108},name=myGroupOfRadiobuttons]{}{='.$stringTitle.'}}'.$stringTitle.' '.$this->texNewLine;
- //echo "simbol radio grid: ".$symbol."</br>";
- }else{ //drugace, ce je VAS
- //$symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0, $spremenljivke['enota']);
- //echo "simbol VAS: ".$symbol."</br>";
- //echo "simbol radio grid: ".$spremenljivke['enota']."</br>";
- }
- $internalCellHeight = '1 cm'; //visina praznega okvirja @povleci-spusti
- }else if($spremenljivke['tip']==16){ //grid checkbox
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0);
- $internalCellHeight = '3 cm'; //visina praznega okvirja @povleci-spusti
- }else if($spremenljivke['tip']==19||$spremenljivke['tip']==20){//multi text ali multinumber
+ //na novo
+ $fillablePdf = 0;
+ if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){ //ce je dolg izvoz ALI ( je izvoz praznega vprasalnika ali vprasalnika s komentarji)
+ $internalCellHeight = '3 cm';
+ if($spremenljivke['tip'] == 19 || $spremenljivke['tip'] == 20){ // ce je multitext ali multinumber
+ //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov
if($export_subtype=='q_empty'||$export_subtype=='q_comment'){ //ce je prazen vprasalnik ali vprasalnik s komentarji
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori), 0);
- //$internalCellHeight = '3 cm'; //visina praznega okvirja @povleci-spusti
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori), 0);
}else{ //ce je vprasalnik s podatki
$symbol = $this->exportData($spremenljivke, $export_format, $questionText, $fillablePdf, $texNewLine, $usr_id, $db_table, $export_subtype);
}
- }
- $this->internalCellHeight = $internalCellHeight;
- //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov - konec
- }
-
- $fillablePdf = 0;
- if((($spremenljivke['enota']==0)&&($spremenljivke['tip']==6||$spremenljivke['tip']==16))||($spremenljivke['tip']==19||$spremenljivke['tip']==20)){ //klasicna tabela ali multitext ali multinumber
-
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- if($spremenljivke['tip']==20){ //ce je tip vprasanja stevilo
+ //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov - konec
+
+ if($spremenljivke['tip'] == 20){ //ce je tip vprasanja stevilo
if(($nacinVnosa == 0)){ //ce je nacin vnosa Stevilo
$tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerDataText, $export_subtype);
}else if($nacinVnosa == 1 && $export_format=='pdf'){ //ce so drsniki in je pdf
@@ -478,170 +401,104 @@ class MultiGridLatex extends LatexSurveyElement
}else if($nacinVnosa == 1 && $export_format=='rtf'){ //ce so drsniki in je rtf
$tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerDataText, $export_subtype);
}
- }else{
+ }else{ //drugace (ce je multitext)
$tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
}
-
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Skrcen izvoz
- //$tex .= "Navaden ali Kratek izvoz ".$texNewLine;
- //echo "export_data_type $export_data_type </br>";
-
- $navpicniOdgovori2 = 0;
- //if($spremenljivke['tip']==20){ //ce je tip vprasanja stevilo
- if($spremenljivke['tip']==20 || $spremenljivke['tip']==19){ //ce je tip vprasanja multi stevilo ali multi besedilo
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerDataText, $export_subtype);
- }else{ //ce je grid en in vec odgovorov
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- //$tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerDataText, $export_subtype);
+ }elseif($spremenljivke['tip'] == 6 || $spremenljivke['tip'] == 16){ //klasicna tabela
+ //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov
+ if($spremenljivke['tip'] == 6){ //grid radio
+ if($spremenljivke['enota'] != 11 && $spremenljivke['enota'] != 12){ //ce ni VAS in ni slikovni tip
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0);
+ }elseif($spremenljivke['enota'] == 11){ // ce je VAS
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0, $spremenljivke['enota'], 1, '', $spremenljivke['id']);
+ //$symbol = [];
+ //$symbol = array("\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."vas1}", "\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."vas3}", "\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."vas4}", "\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."vas5}", "\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."vas7}");
+ }
+ $internalCellHeight = '1 cm'; //visina praznega okvirja @povleci-spusti
+ }else if($spremenljivke['tip'] == 16){ //grid checkbox
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0);
+ $internalCellHeight = '3 cm'; //visina praznega okvirja @povleci-spusti
}
- }
- }elseif($spremenljivke['enota']==1){ //tabela diferencial
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==2 || $spremenljivke['enota']==6){ //roleta ali izberite s seznama
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==4){ //ena moznost proti drugi
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- //$tex .= "Navaden ali Kratek izvoz ".$texNewLine;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==5){ //maxdiff
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- //$tex .= "Navaden ali Kratek izvoz ".$texNewLine;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==8){ //tabela da/ne
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- //$tex .= "Navaden ali Kratek izvoz ".$texNewLine;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
-
- }
- }elseif($spremenljivke['enota']==10){ //image hotspot
- //if($export_subtype=='q_empty'){ //ce je prazen vprasalnik
- //if($export_subtype=='q_empty'||$export_subtype=='q_comment'){ //ce je prazen vprasalnik
- if($export_data_type==1||$export_subtype=='q_empty'||$export_subtype=='q_comment'){ //ce je prazen vprasalnik
- $imageName = $this->getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
- $imageNameTest = $this->path2ImagesMulti.$imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
- //echo("za image hot spot grid: ".$imageNameTest."</br>");
- if(filesize($imageNameTest) > 0){
- $image = PIC_SIZE."{".$this->path2ImagesMulti."".$imageName."}"; //priprave slike predefinirane dimenzije
+ //pridobitev ustreznega simbola (ali podatkov) za izris odgovorov - konec
+
+ $enote_brez_navp_odgov_2 = array(0, 2, 6, 5, 8, 3, 11, 12); //grid en in vec odgovorov, roleta, izberite s seznama, maxdiff, tabela da/ne, dvojna tabela, VAS, slikovni tip
+ if( in_array($spremenljivke['enota'], $enote_brez_navp_odgov_2) ){
+ $navpicniOdgovori2 = 0;
+ }
+ if($spremenljivke['enota']==10){ //image hotspot
+ $imageName = LatexDocument::getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
+ $imageNameTest = $this->path2ImagesMulti.$imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
+ if(filesize($imageNameTest) > 0){
+ $image = PIC_SIZE."{".$this->path2ImagesMulti."".$imageName."}"; //priprave slike predefinirane dimenzije
+ }else{
+ $image = $lang['srv_pc_unavailable'];
+ }
+
+ $tex .= $texNewLine; //prazna vrstica po vprasanju
+ $tex .= $image."".$texNewLine; //izris slike
+
+ //iz baze poberi imena obmocij
+ $sqlHotSpotRegions = sisplet_query("SELECT region_name FROM srv_hotspot_regions WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
+
+ //izris imen obmocij po $sqlHotSpotRegions
+ $tex .= $lang['srv_export_hotspot_regions_names'].': '.$texNewLine;
+ while ($rowHotSpotRegions = mysqli_fetch_assoc($sqlHotSpotRegions))
+ {
+ $tex .= $rowHotSpotRegions['region_name'].''.$texNewLine;
+ }
+
+ //ureditev missing-ov
+ if(count($missingOdgovori)!=0){ //ce so missing-i
+ $vodoravniOdgovori = $this->AddMissingsToAnswers($vodoravniOdgovori, $missingOdgovori);
+ }
+ //ureditev missing-ov - konec
+
+ //izris moznih odgovorov
+ $tex .= $lang['srv_drag_drop_answers'].': '.$texNewLine;
+ for($i=0; $i<$numColSql; $i++){
+ $tex .= $vodoravniOdgovori[$i].$texNewLine;
+ }
+ if(($export_subtype=='q_data'||$export_subtype=='q_data_all')){ //ce je izpis respodenta
+ $tex .= $this->texNewLine;
+ $tex .= $lang['srv_respondent_answer'].": ".$this->texNewLine;
+ $navpicniOdgovori2 = 0;
+ $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
+ }else{
+ //prostor po izpisu, ce ni odgovorov respondenta
+ $tex .= '\vspace{0.5 cm}';
+ $tex .= $texNewLine;
+ }
+ }elseif($spremenljivke['enota'] == 9){ //povleci spusti
+ $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
}else{
- //$image = 'ni slike';
- $image = $lang['srv_pc_unavailable'];
- }
-
- $tex .= $texNewLine; //prazna vrstica po vprasanju
- $tex .= $image."".$texNewLine; //izris slike
-
- //iz baze poberi imena obmocij
- $sqlHotSpotRegions = sisplet_query("SELECT region_name FROM srv_hotspot_regions WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
-
- //izris imen obmocij po $sqlHotSpotRegions
- $tex .= $lang['srv_export_hotspot_regions_names'].': '.$texNewLine;
- while ($rowHotSpotRegions = mysqli_fetch_assoc($sqlHotSpotRegions))
- {
- $tex .= $rowHotSpotRegions['region_name'].''.$texNewLine;
+ $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
}
-
- //$tex .= $texNewLine;
-
- //ureditev missing-ov
- if(count($missingOdgovori)!=0){ //ce so missing-i
- $vodoravniOdgovori = $this->AddMissingsToAnswers($vodoravniOdgovori, $missingOdgovori);
- }
- //ureditev missing-ov - konec
-
-
- //izris moznih odgovorov
- $tex .= $lang['srv_drag_drop_answers'].': '.$texNewLine;
- for($i=0; $i<$numColSql; $i++){
- $tex .= $vodoravniOdgovori[$i].$texNewLine;
- }
- }/* else{ //ce je vprasalnik s podatki
- $tex .= $this->exportData($spremenljivke, $export_format, $questionText, $fillablePdf, $texNewLine, $usr_id, $db_table, $export_subtype);
- } */
- if(($export_data_type==1||$export_data_type==0||$export_data_type==2)&&($export_subtype=='q_data'||$export_subtype=='q_data_all')){ //ce je Dolg, Navaden ali Kratek izvoz
- if($export_data_type==1){ //ce je Dolg izvoz
- $tex .= $this->texNewLine;
- $tex .= $lang['srv_respondent_answer'].": ".$this->texNewLine;
- }
-
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
-
- //prostor po izpisu tabele
- //$tex .= $texNewLine;
- //$tex .= $texNewLine;
-
- }elseif($spremenljivke['enota']==3){ //dvojna tabela
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
}
- }elseif($spremenljivke['enota']==9){ //povleci spusti
-
- //if($export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){
- //if($export_data_type==1||$export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){
- if($export_data_type==1||$export_subtype=='q_empty'||$export_subtype=='q_comment'||($preveriSpremenljivko&&$export_data_type==1)){
- $this->exportDataType = $export_data_type;
-
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==11){ //VAS
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Navaden ali Kratek izvoz
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
- }
- }elseif($spremenljivke['enota']==12){ //slikovni tip
- if($export_data_type==1||($export_subtype=='q_empty'||$export_subtype=='q_comment')){//ce je dolg izvoz ali(prazen vprasalnik ali vpr. s komentarji)
- //izris tabel ustrezne postavitve
- $tex .= $this->IzrisTabeleMultiGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $symbol, $texNewLine, $texNewLineAfterTable, $export_format, 0, $missingOdgovori, $userAnswerData, $export_subtype);
- }elseif($export_data_type==0||$export_data_type==2){ //ce je Skrcen izvoz
- $navpicniOdgovori2 = 0;
- $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
+ $this->internalCellHeight = $internalCellHeight;
+ }elseif($export_data_type==0||$export_data_type==2){ //ce je Skrcen izvoz
+ if($spremenljivke['tip'] == 20 || $spremenljivke['tip'] == 19){ //ce je tip vprasanja multi stevilo ali multi besedilo
+ $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, 0, $export_format, $fillablePdf, $missingOdgovori, $userAnswerDataText, $export_subtype);
+ }elseif($spremenljivke['tip'] == 6 || $spremenljivke['tip'] == 16){ //klasicna tabela
+ $enote_brez_navp_odgov_2 = array(0, 3, 9, 10, 11, 12); //grid en in vec odgovorov, dvojna tabela, povleci-spusti, image hotspot, VAS, slikovni tip
+ if( in_array($spremenljivke['enota'], $enote_brez_navp_odgov_2) ){
+ $navpicniOdgovori2 = 0;
+ }
+ $tex .= $this->IzpisOdgovorovGrid($spremenljivke, $numColSql, $numRowsSql, $vodoravniOdgovori, $navpicniOdgovori, $navpicniOdgovori2, $export_format, $fillablePdf, $missingOdgovori, $userAnswerData, $export_subtype);
}
}
-
+ //na novo - konec
+
+
//$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 '</br><b>Total Execution Time tabele</b> '.$execution_time.' sec za vprašanje '.strip_tags($spremenljivke['naslov']).'</br>';
return $tex;
- }
+ //}
+
}
#konec export funkcije
@@ -651,8 +508,6 @@ class MultiGridLatex extends LatexSurveyElement
global $lang;
$skipRow = false;
$izpis = '';
-
-
#missingi##################
if(count($missingOdgovori)!=0){ //ce so missingi, jih je potrebno dodati polju z odgovori po stolpcih ($vodoravniOdgovori)
for($m=0;$m<count($missingOdgovori);$m++){
@@ -660,17 +515,6 @@ class MultiGridLatex extends LatexSurveyElement
}
}
#missingi - konec###########
-
- // TODO: Zanke, ki ne izpisujejo ničesar
- /* foreach($vodoravniOdgovori AS $key => $vodoravniOdgovor){ //za vsak odgovor v vrstici
- echo $vodoravniOdgovor."</br>";
- //echo $key."</br>";
- } */
- //
- /* foreach($data AS $key => $datum){ //za vsak odgovor v vrstici
- echo "Podatek: ".$datum."</br>";
- //echo $key."</br>";
- } */
$z = $j = $i = 0;
@@ -721,7 +565,6 @@ class MultiGridLatex extends LatexSurveyElement
}
foreach($navpicniOdgovori AS $key => $navpicniOdgovor){ //za vsak odgovor v vrstici
- //echo $navpicniOdgovor.": ";
#Ce imamo nastavljeno preskakovanje podvprasanj preverimo ce je kaksen odgovor v vrstici ###############################
if($this->skipEmptySub == 1){
$skipRow = true;
@@ -729,7 +572,6 @@ class MultiGridLatex extends LatexSurveyElement
if(isset($data[$z])){ //ce je podatek
$skipRow = false;
}
- //echo "surov podatek: ".$data[$z]."</br>";
}
}
#Ce imamo nastavljeno preskakovanje podvprasanj preverimo ce je kaksen odgovor v vrstici - konec #######################
@@ -758,8 +600,8 @@ class MultiGridLatex extends LatexSurveyElement
if($spremenljivke['enota']==4){ //ce je ena proti drugi
$steviloStolpcev = 1;
}
+ $indeksOdgovor2 = 0;
foreach($navpicniOdgovori AS $key => $navpicniOdgovor){ //za vsak odgovor v vrstici
- //echo $navpicniOdgovor.": ";
#Ce imamo nastavljeno preskakovanje podvprasanj preverimo ce je kaksen odgovor v vrstici ###############################
if($this->skipEmptySub == 1){
$skipRow = true;
@@ -767,25 +609,24 @@ class MultiGridLatex extends LatexSurveyElement
if(isset($data[$z])){ //ce je podatek
$skipRow = false;
}
- //echo "surov podatek: ".$data[$z]."</br>";
}
}
#Ce imamo nastavljeno preskakovanje podvprasanj preverimo ce je kaksen odgovor v vrstici - konec #######################
-
$steviloSlikovnihIkon = 0; //belezi stevilo slikovnih ikon
if(!$skipRow){
- //$izpis .= ' \hspace*{0.25\textwidth} '; //da je indent do 25 % sirine strani
if($spremenljivke['enota']!=4){
- $izpis .= $navpicniOdgovor.": ";
+ if($spremenljivke['enota']==1){ //ce je diferencial
+ $izpis .= $navpicniOdgovor."/".$navpicniOdgovori2[$indeksOdgovor2].": ";
+ }else{
+ $izpis .= $navpicniOdgovor.": ";
+ }
}
$odgovorPrisoten = 0; //zastavica za ureditev izpisa vejice, ko je vec odgovorov v eni vrstici
for($j=$j;$j<($steviloStolpcev*($key+1));$j++){
- //echo $j.' ';
- //echo "surov podatek: ".$data[$j]."</br>";
if($spremenljivke['enota']==4){ //ce je ena proti drugi
if($data[$j]==2){
$odgovorEnaProtiDrugi = '\\textcolor{crta}{'.$navpicniOdgovori2[$key].'}';
@@ -793,74 +634,21 @@ class MultiGridLatex extends LatexSurveyElement
$odgovorEnaProtiDrugi = '\\textcolor{crta}{'.$navpicniOdgovor.'}';
}
$izpis .= $odgovorEnaProtiDrugi;
- }/* elseif($spremenljivke['enota']==11){ //ce je VAS
- //echo "surov podatek: ".$data[$j]."</br>";
- //echo "stevilo stolpcev VAS: ".$steviloStolpcev."</br>";
- //$izpis .= "smily ";
- if($data[$j]){
- //$symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, 0, $spremenljivke['enota'], $data[$j]);
- //$VASNumber = $data[$j];
- ##########
- switch ($steviloStolpcev) {
- case 1:
- $VAS = "";
- break;
- case 2:
- $arrayVAS = ['vas3checked', 'vas5checked'];
- break;
- case 3:
- $arrayVAS = ['vas3checked', 'vas4checked', 'vas5checked'];
- break;
- case 4:
- $arrayVAS = ['vas2checked', 'vas3checked', 'vas5checked', 'vas6checked'];
- break;
- case 5:
- $arrayVAS = [ 'vas2checked', 'vas3checked', 'vas4checked', 'vas5checked', 'vas6checked'];
- break;
- case 6:
- $arrayVAS = ['vas1checked', 'vas2checked', 'vas3checked', 'vas5checked', 'vas6checked', 'vas7checked'];
- break;
- case 7:
- $arrayVAS = ['vas1checked', 'vas2checked', 'vas3checked', 'vas4checked', 'vas5checked', 'vas6checked', 'vas7checked'];
- break;
- }
-
- ##########
- if($steviloStolpcev > 1){
- $VAS = $arrayVAS[($data[$j]-1)];
- $symbol = "\\includegraphics[scale=".VAS_SIZE."]{".$this->path2Images."".$VAS."}";
- }
-
- $izpis .= $symbol;
- // echo "symbol za VAS odgovor: ".$symbol."</br>";
- }
- } elseif($spremenljivke['enota']==12){ //ce je slikovni tip
- if($data[$j]){ //ce je podatek
- $steviloSlikovnihIkon = $data[$j];
- //echo "stevilo slikovnih ikon: ".$steviloSlikovnihIkon."</br>";
- //echo "_______________________</br>";
- }
- }*/else{
+ }else{
if($i==$steviloStolpcev){
$i=0;
}
- /* echo "tip: ".$spremenljivke['tip']."</br>";
- echo "enota: ".$spremenljivke['enota']."</br>"; */
if(isset($data[$j])){ //ce je podatek
- //echo $vodoravniOdgovori[$i].", ";
- //echo $data[$j].", ";
if($odgovorPrisoten==0){
$odgovorPrisoten = 1;
}else{
- //}elseif($odgovorPrisoten==1){
$izpis .= ", ";
}
- //if($spremenljivke['tip']==20){ //ce je tip vprasanja stevilo
if($spremenljivke['tip']==20||$spremenljivke['enota']==11||$spremenljivke['enota']==12){ //ce je tip vprasanja stevilo ALI VAS ALI slikovni tip
$izpis .= '\\textcolor{crta}{'.$data[$j].'}';
}else{
if($spremenljivke['tip']==19){ //ce je tip vprasanja besedilo
- $izpis .= '\\textcolor{crta}{'.$data[$j].'}';
+ $izpis .= '\\textcolor{crta}{'.LatexDocument::encodeText($data[$j]).'}';
}else{
$izpis .= '\\textcolor{crta}{'.$vodoravniOdgovori[$i].'}';
}
@@ -875,20 +663,18 @@ class MultiGridLatex extends LatexSurveyElement
}
if($spremenljivke['enota']==12){ //ce je slikovni tip, izpisi ustrezno stevilo simbololov
$prviOdgovorSlikovniTip = 1;
- //echo "izpis kode: ".$izpis."</br>";
for($p=0; $p<$steviloSlikovnihIkon; $p++){
$izpis .= ICON_SIZE."{".$this->path2Images."".$this->getCustomRadioSymbol($spremenljivke['id'], $prviOdgovorSlikovniTip)."}";
}
$izpis .= $this->texNewLine;
}
+ $indeksOdgovor2++;
}
} //konec, ce ni dvojna tabela
+ $izpis .= '\vspace{0.5 cm}';
$izpis .= $this->texNewLine;
- /* if($spremenljivke['enota']==3){
- echo $izpis;
- } */
return $izpis;
}
#funkcija, ki skrbi za izpis odgovor za grid vprasanja - konec ########################################################################
@@ -896,19 +682,32 @@ class MultiGridLatex extends LatexSurveyElement
#funkcija, ki skrbi za izris Grida radio buttonov ali checkboxov za klasicno postavitev tabele ################################
function IzrisTabeleMultiGrid($spremenljivke=null, $steviloStolpcev=null, $steviloVrstic=null, $vodoravniOdgovori=null, $navpicniOdgovori=null, $navpicniOdgovori2=null, $simbolTex=null, $texNewLine='', $texNewLineAfterTable=null, $typeOfDocument=null, $fillablePdf=null, $missingOdgovori=null, $data=null, $export_subtype=''){
global $lang;
-
$spremenljivkaParams = new enkaParameters($spremenljivke['params']);
$isCheckBox = 0;
$enota = $spremenljivke['enota'];
+
+ //ce je prevod, naj pobere prevedene razlicice podnaslovov
+ $rowl1 = $this->srv_language_grid(1,$spremenljivke['id']);
+ if ($rowl1) {
+ if (strip_tags($rowl1['podnaslov']) != ''){
+ $spremenljivke['grid_subtitle1'] = $rowl1['podnaslov'];
+ }
+ }
+
+ $rowl2 = $this->srv_language_grid(2,$spremenljivke['id']);
+ if ($rowl2) {
+ if (strip_tags($rowl2['podnaslov']) != '') $spremenljivke['grid_subtitle2'] = $rowl2['podnaslov'];
+ }
+ //ce je prevod, naj pobere prevedene razlicice podnaslovov - konec
+
$podnaslov1 = $spremenljivke['grid_subtitle1']; //podnaslova @dvojna tabela
$podnaslov2 = $spremenljivke['grid_subtitle2'];
+
$trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0);
$customColumnLabelOption = ($spremenljivkaParams->get('custom_column_label_option') ? $spremenljivkaParams->get('custom_column_label_option') : 1); //1 - "vse" labele, 2 - "le koncne" labele, 3 - "koncne in vmesna" labele
-
- //$radioButtonTex = ($export_format=='pdf'?"{\Large $\ocircle$}" : "\\includegraphics[scale=".RADIO_BTN_SIZE."]{radio}");
-
//ce je izbrana oblika traku, poberi potrebne parametre spremenljivke ##################
+ $trakStartingNumber = null;
if($trak == 1){
//stevilo s katerim se zacenja trak
$trakStartingNumber = ($spremenljivkaParams->get('diferencial_trak_starting_num') ? $spremenljivkaParams->get('diferencial_trak_starting_num') : 0);
@@ -926,101 +725,8 @@ class MultiGridLatex extends LatexSurveyElement
}
//ce je izbrana oblika traku, poberi potrebne parametre spremenljivke - konec ##########
- //echo "Grids: ".$spremenljivke['grids']." ";
- //echo "Stevilo stolpcev: ".$steviloStolpcev." ";
-
- //ureditev stevila stolpcev (za parametre tabele in nadaljnji izris) glede na izbrano postavitev #################################################
-
- //if(($enota == 0||$enota == 3)||$spremenljivke['tip']==19||$spremenljivke['tip']==20){ //klasika ali dvojna tabela ali je multitext ali multinumber
- //if(($enota == 0||$enota == 3 || $enota == 11)||$spremenljivke['tip']==19||$spremenljivke['tip']==20){ //klasika ali dvojna tabela ali je multitext ali multinumber ali VAS
- if(($enota == 0||$enota == 3 || $enota == 11 || $enota == 12)||$spremenljivke['tip']==19||$spremenljivke['tip']==20){ //klasika ali dvojna tabela ali je multitext ali multinumber ali VAS ali slikovni tip
- //if($trak == 0 || $enota == 3 || ($trak == 1 && $spremenljivke['tip'] == 16)){
- if(($trak == 0 || $enota == 3 || ($trak == 1 && $spremenljivke['tip'] == 16))||($spremenljivke['tip']==19||$spremenljivke['tip']==20)){
- $steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 1; //ker je prvi stolpec prazen, je potrebno dodati + 1
- }elseif($trak == 1 && $enota == 0 && $spremenljivke['tip'] == 6){
- $steviloStolpcevParameterTabular = $steviloStolpcev + 1;
- }
- }elseif($enota == 1){ //diferencial
- if($trak == 0){ //ce ni na traku
- //$steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
- if(count($missingOdgovori)!=0){ //ce so missingi
- $steviloStolpcevParameterTabular = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
- $steviloStolpcev = $steviloStolpcev + 2 - count($missingOdgovori);
- }else{
- $steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
- }
- }else{ //ce je na traku
- $steviloStolpcevParameterTabular = $steviloStolpcev + 2;
- $steviloStolpcev = $steviloStolpcev + 2 + count($missingOdgovori);
- }
- }elseif($enota == 2 || $enota == 6){ //roleta ali izberite s seznama
- $steviloStolpcevParameterTabular = 2; //pri roleti sta potrebna le dva stolpca
- if(count($missingOdgovori)!=0){ //ce so missingi
- $steviloStolpcev = $spremenljivke['grids'] + count($missingOdgovori) + 1; //+1, ker se pri izrisu indeks zacne z 1
- }
- }elseif($enota == 4){ //ena moznost proti drugi
- $steviloStolpcevParameterTabular = 5;
- if(count($missingOdgovori)!=0){
- $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
- $steviloStolpcev = $steviloStolpcev-count($missingOdgovori);
- }
- }elseif($enota == 5){ //maxdiff
- $steviloStolpcevParameterTabular = 3;
- if(count($missingOdgovori)!=0){
- $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
- $steviloStolpcev = $steviloStolpcev-count($missingOdgovori);
- }
- }elseif($enota == 8){ //tabela da/ne
- $steviloStolpcevParameterTabular = $steviloStolpcev = 3;
- if(count($missingOdgovori)!=0){
- $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
- $steviloStolpcev = $steviloStolpcev+count($missingOdgovori);
- }
- }
- //echo $steviloStolpcev.'</br>';
- //ureditev stevila stolpcev (za parametre tabele in nadaljnji izris) glede na izbrano postavitev - konec #################################################
-
- //ureditev parametrov za tabelo #################################################################################################
- $parameterTabular = '';
- for($i = 0; $i < $steviloStolpcevParameterTabular; $i++){
- //ce je prvi stolpec in ni "ena moznost proti drugi" ALI je zadnji stolpec (pred missing-i) in je "diferencial" ali "ena moznost proti drugi" z missing-i
- if( ($i == 0 && $enota != 4) || ($i == $spremenljivke['grids']+1 && $enota == 1) || (($i == $spremenljivke['grids']+2 && $enota == 4)&&(count($missingOdgovori)!=0)) ) {
- //$parameterTabular .= ($typeOfDocument == 'pdf' ? 'X' : 'l'); //leva poravnava stolpca
- //if($enota == 0 || $enota == 1 || $enota == 3){ //ce je "klasicna tabela" ali diferencial ali dvojna tabela
- //if($enota == 0 || $enota == 1 || $enota == 3 || $enota == 11){ //ce je "klasicna tabela" ali diferencial ali dvojna tabela ali VAS
- if($enota == 0 || $enota == 1 || $enota == 3 || $enota == 11 || $enota == 12){ //ce je "klasicna tabela" ali diferencial ali dvojna tabela ali VAS ali slikovni tip
- if($enota == 1){ //ce je diferencial
- if($i == 0){ //ce je prvi stolpec
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'A' : 'l'); //leva poravnava stolpca fiksne sirine
- }elseif($i == $spremenljivke['grids']+1){ //ce je zadnji stolpec
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'R' : 'r'); //desna poravnava stolpca fiksne sirine
- }
- }else{
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'A' : 'l'); //leva poravnava stolpca fiksne sirine
- }
- }else{
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'X' : 'l'); //leva poravnava stolpca prilagojena sirini
- }
- }elseif($i == $spremenljivke['grids']+2 && $enota == 4){ //ce je zadnji stolpec in je "ena moznost proti drugi" brez missing-ov
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'r' : 'r'); //desna poravnava
- }
- elseif($i == 0 && $enota == 4){ //ce je prvi stolpec in "ena moznost proti drugi"
- //$parameterTabular .= ($typeOfDocument == 'pdf' ? 'r' : 'r'); //desna poravnava stolpca
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'l' : 'l'); //leva poravnava prvega stolpca
- }elseif($i == (intval($steviloStolpcev/2)) && $enota == 3){ //ce smo na sredini stolpcev in je dvojna tabela
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'C|' : 'c|'); //sredinska poravnava stolpca
- }elseif($i == ($steviloStolpcev) && $enota == 5){ //ce je zadnji stolpec in je maxdiff
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'R' : 'r'); //desna za pdf in sredinska poravnava stolpca za rtf
- }else{
- $parameterTabular .= ($typeOfDocument == 'pdf' ? 'C' : 'c'); //sredinska poravnava stolpca
- }
- }
- //ureditev parametrov za tabelo - konec ##########################################################################################
- //echo 'Param: '.$parameterTabular.' enota param: '.$enota.'</br>';
-
//izpis tabela
$tabela = '';
- //echo $enota;
#IZPIS ZA POVLECI SPUSTI
if($enota == 9){ //ce je povleci spusti
@@ -1036,9 +742,9 @@ class MultiGridLatex extends LatexSurveyElement
#pred zacetkom tabel za povleci spusti#######################################################################
//prva vrstica pred tabelo z odgovori
if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= '\keepXColumns\begin{tabularx}{0.45\textwidth}{C} '; //izris s tabelo
+ $tabela .= '\keepXColumns\begin{xltabular}{0.45\textwidth}{C} '; //izris s tabelo
$tabela .= $lang['srv_ranking_available_categories'].': '.$texNewLine;
- $tabela .= '\rule{0.4\textwidth}{0.7 pt} \end{tabularx}';
+ $tabela .= '\rule{0.4\textwidth}{0.7 pt} \end{xltabular}';
}else{ //ce je rtf
$tabela .= '\begin{tabular}{l} '; //izris z enostolpicno tabelo
$tabela .= $lang['srv_ranking_available_categories'].': '.$texNewLine; //Razpolozljive kategorije
@@ -1055,7 +761,7 @@ class MultiGridLatex extends LatexSurveyElement
//zacetek tabele
if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'tabularx', 'tabular*', 0.45, 0.2);
+ $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'xltabular', 'tabular*', 0.45, 0.2);
}
//argumenti za leve okvirje
@@ -1065,7 +771,6 @@ class MultiGridLatex extends LatexSurveyElement
//izris notranjosti leve tabele
- //if($this->exportDataType){ //ce je dolg izpis izvoza odgovorov respondenta/respondentov
if($this->exportDataType&&$spremenljivke['tip']==6){ //ce je dolg izpis izvoza odgovorov respondenta/respondentov in je tabela en odgovor
//najdi razlike med poljema, kjer se belezijo vre_id odgovorov iz leve in desni strani @ povleci-spusti
$navpicniOdgovori = array();
@@ -1079,7 +784,7 @@ class MultiGridLatex extends LatexSurveyElement
$sqlTextL = sisplet_query($sqlTextLString);
$rowTextL = mysqli_fetch_assoc($sqlTextL);
- array_push($navpicniOdgovori, $this->encodeText($rowTextL['naslov']));
+ array_push($navpicniOdgovori, LatexDocument::encodeText($rowTextL['naslov'], 0, 1));
}
}
}
@@ -1113,7 +818,7 @@ class MultiGridLatex extends LatexSurveyElement
//zakljucek tabele
if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= $this->EndLatexTable($typeOfDocument, 'tabularx', 'tabular*');
+ $tabela .= $this->EndLatexTable($typeOfDocument, 'xltabular', 'tabular*');
}
#tabela s kategorijami odgovorov iz levega okvirja - konec ##################################################################
@@ -1123,12 +828,11 @@ class MultiGridLatex extends LatexSurveyElement
#pred zacetkom "desne" tabele za povleci spusti#######################################################################
//prva vrstica pred tabelo z odgovori
if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= '\keepXColumns\begin{tabularx}{0.45\textwidth}{C} '; //izris s tabelo
+ $tabela .= '\keepXColumns\begin{xltabular}{0.45\textwidth}{C} '; //izris s tabelo
$tabela .= $lang['srv_drag_drop_answers'].': '.$texNewLine;
- $tabela .= '\rule{0.4\textwidth}{0.7 pt} \end{tabularx}';
+ $tabela .= '\rule{0.4\textwidth}{0.7 pt} \end{xltabular}';
}else{ //ce je rtf
$tabela .= '\begin{tabular}{l} '; //izris z enostolpicno tabelo
- //$tabela .= $lang['srv_ranking_available_categories'].': '.$texNewLine; //Razpolozljive kategorije
$tabela .= $lang['srv_drag_drop_answers'].': '.$texNewLine; //Razpolozljive kategorije
$tabela .= '\hline \end{tabular} ';
}
@@ -1163,13 +867,7 @@ class MultiGridLatex extends LatexSurveyElement
$texSmallSkip = '';
$textDV = $vodoravniOdgovori[$i]; //besedilo odgovora v okvirju
//izpis latex kode za okvir z odgovorom
- //$textRIzpis .= ' '.$textDV.' '.$this->texNewLine.' \hline';
-
- //$textRIzpis .= ' '.$textDV;
$textNaslovOkvir .= ' '.$textDV;
-
- //$tabela .= $texNewLine;
- //$tabela .= '\indent ';
}else{ //drugace, ce je oblika skatle (prazen okvir na vrhu+tekst spodaj)
$texSmallSkip = $this->texSmallSkip;
}
@@ -1183,14 +881,15 @@ class MultiGridLatex extends LatexSurveyElement
$jeOdgovor = 1;
if(!$izpisano){
foreach($this->textRArray AS $indeksTextRArray => $textR){
- if($this->textRArray[$indeksTextRArray][$datum]){
- $textR = $this->encodeText($textR[$datum]);
- $textR = $tableCentering.' '.$textR;
- //$textRIzpis .= '\fbox{\parbox{0.2\textwidth}{'.$textR.'}} '.$texSmallSkip.' '.$this->texNewLine; //zacetna varianta
- $textIzpis .= ' \vspace{0.5\baselineskip} ';
- $textIzpis .= '\fbox{\parbox{0.2\textwidth}{'.$textR.'}} '.$texSmallSkip.' '.$this->texNewLine;
- //$textRIzpis .= ' \hline \fbox{\parbox{0.2\textwidth}{'.$textR.'}} '.$texSmallSkip.' '.$this->texNewLine;
- $izpisano = 1;
+ if(array_key_exists($datum, $this->textRArray) && array_key_exists($indeksTextRArray, $this->textRArray)){
+ if(isset($this->textRArray[$indeksTextRArray][$datum])){
+ //$textR = Common::getInstance()->dataPiping($textR[$datum], $this->usr_id, $this->loop_id);
+ $textR = LatexDocument::encodeText($textR[$datum]);
+ $textR = $tableCentering.' '.$textR;
+ $textIzpis .= ' \vspace{0.5\baselineskip} ';
+ $textIzpis .= '\fbox{\parbox{0.2\textwidth}{'.$textR.'}} '.$texSmallSkip.' '.$this->texNewLine;
+ $izpisano = 1;
+ }
}
}
}else{
@@ -1227,9 +926,8 @@ class MultiGridLatex extends LatexSurveyElement
//izpis latex kode za okvir (brez obrobe oz. fbox) z odgovorom
//$tabela .= ' \indent \parbox{0.2\textwidth}{ '.$tableCentering.' '.$vodoravniOdgovori[$i].' } '.$texNewLine;
$tabela .= ' \parbox{0.2\textwidth}{ '.$tableCentering.' '.$vodoravniOdgovori[$i].' } '.$texNewLine;
- $tabela .= '\end{tabularx}'; //konec tabele, ki se je zacela pri izpisu skatle
+ $tabela .= '\end{xltabular}'; //konec tabele, ki se je zacela pri izpisu skatle
}
- //echo "TABELA TEX: ".$tabela."</br>";
}elseif($typeOfDocument == 'rtf'){
if($i != 0){ //ce ni prvi, dodaj prostor
$tabela .= ' '.$this->texBigSkip;
@@ -1244,7 +942,7 @@ class MultiGridLatex extends LatexSurveyElement
if(!$izpisano){
foreach($this->textRArray AS $indeksTextRArray => $textR){
if($this->textRArray[$indeksTextRArray][$datum]){
- $textR = $this->encodeText($textR[$datum]);
+ $textR = LatexDocument::encodeText($textR[$datum]);
$textR = $tableCentering.' '.$textR;
$textRIzpis .= '\fbox{\parbox{0.2\textwidth}{'.$textR.'}} '.$this->texNewLine;
$izpisano = 1;
@@ -1287,16 +985,98 @@ class MultiGridLatex extends LatexSurveyElement
}
#IZPIS ZA POVLECI SPUSTI - KONEC
-
- if($enota != 9){ //ce ni povleci spusti
+ if($enota != 9){ //ce ni povleci spusti
+ //ureditev stevila stolpcev (za parametre tabele in nadaljnji izris) glede na izbrano postavitev #################################################
+
+ if(($enota == 0||$enota == 3 || $enota == 11 || $enota == 12)||$spremenljivke['tip']==19||$spremenljivke['tip']==20){ //klasika ali dvojna tabela ali je multitext ali multinumber ali VAS ali slikovni tip
+ if(($trak == 0 || $enota == 3 || ($trak == 1 && $spremenljivke['tip'] == 16))||($spremenljivke['tip']==19||$spremenljivke['tip']==20)){
+ $steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 1; //ker je prvi stolpec prazen, je potrebno dodati + 1
+ if(count($missingOdgovori)!=0){ //ce so missingi
+ $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular + 1;
+ }
+ }elseif($trak == 1 && $enota == 0 && $spremenljivke['tip'] == 6){
+ $steviloStolpcevParameterTabular = $steviloStolpcev + 1;
+ }
+ }elseif($enota == 1){ //diferencial
+ if($trak == 0){ //ce ni na traku
+ //$steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
+ if(count($missingOdgovori)!=0){ //ce so missingi
+ $steviloStolpcevParameterTabular = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
+ $steviloStolpcev = $steviloStolpcev + 2 - count($missingOdgovori);
+ }else{
+ $steviloStolpcevParameterTabular = $steviloStolpcev = $steviloStolpcev + 2; //ker sta prvi in zadnji stolpec prazna, je potrebno dodati + 2
+ }
+ }else{ //ce je na traku
+ $steviloStolpcevParameterTabular = $steviloStolpcev + 2;
+ $steviloStolpcev = $steviloStolpcev + 2 + count($missingOdgovori);
+ }
+ }elseif($enota == 2 || $enota == 6){ //roleta ali izberite s seznama
+ $steviloStolpcevParameterTabular = 2; //pri roleti sta potrebna le dva stolpca
+ if(count($missingOdgovori)!=0){ //ce so missingi
+ $steviloStolpcev = $spremenljivke['grids'] + count($missingOdgovori) + 1; //+1, ker se pri izrisu indeks zacne z 1
+ }
+ }elseif($enota == 4){ //ena moznost proti drugi
+ $steviloStolpcevParameterTabular = 5;
+ if(count($missingOdgovori)!=0){
+ $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
+ $steviloStolpcev = $steviloStolpcev-count($missingOdgovori);
+ }
+ }elseif($enota == 5){ //maxdiff
+ $steviloStolpcevParameterTabular = 3;
+ if(count($missingOdgovori)!=0){
+ $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
+ $steviloStolpcev = $steviloStolpcev-count($missingOdgovori);
+ }
+ }elseif($enota == 8){ //tabela da/ne
+ $steviloStolpcevParameterTabular = $steviloStolpcev = 3;
+ if(count($missingOdgovori)!=0){
+ $steviloStolpcevParameterTabular = $steviloStolpcevParameterTabular+count($missingOdgovori);
+ $steviloStolpcev = $steviloStolpcev+count($missingOdgovori);
+ }
+ }
+ //ureditev stevila stolpcev (za parametre tabele in nadaljnji izris) glede na izbrano postavitev - konec #################################################
+
+ //ureditev parametrov za tabelo #################################################################################################
+ $parameterTabular = '';
+ for($i = 0; $i < $steviloStolpcevParameterTabular; $i++){
+ //ce je prvi stolpec in ni "ena moznost proti drugi" ALI je zadnji stolpec (pred missing-i) in je "diferencial" ali "ena moznost proti drugi" z missing-i
+ if( ($i == 0 && $enota != 4) || ($i == $spremenljivke['grids']+1 && $enota == 1) || (($i == $spremenljivke['grids']+2 && $enota == 4)&&(count($missingOdgovori)!=0)) ) {
+ if($enota == 0 || $enota == 1 || $enota == 3 || $enota == 11 || $enota == 12){ //ce je "klasicna tabela" ali diferencial ali dvojna tabela ali VAS ali slikovni tip
+ if($enota == 1){ //ce je diferencial
+ if($i == 0){ //ce je prvi stolpec
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'A' : 'l'); //leva poravnava stolpca fiksne sirine
+ }elseif($i == $spremenljivke['grids']+1){ //ce je zadnji stolpec
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'R' : 'r'); //desna poravnava stolpca fiksne sirine
+ }
+ }else{
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'A' : 'l'); //leva poravnava stolpca fiksne sirine
+ }
+ }else{
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'X' : 'l'); //leva poravnava stolpca prilagojena sirini
+ }
+ }elseif($i == $spremenljivke['grids']+2 && $enota == 4){ //ce je zadnji stolpec in je "ena moznost proti drugi" brez missing-ov
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'r' : 'r'); //desna poravnava
+ }
+ elseif($i == 0 && $enota == 4){ //ce je prvi stolpec in "ena moznost proti drugi"
+ //$parameterTabular .= ($typeOfDocument == 'pdf' ? 'r' : 'r'); //desna poravnava stolpca
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'l' : 'l'); //leva poravnava prvega stolpca
+ }elseif($i == (intval($steviloStolpcev/2)) && $enota == 3){ //ce smo na sredini stolpcev in je dvojna tabela
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'C|' : 'c|'); //sredinska poravnava stolpca
+ }elseif($i == ($steviloStolpcev) && $enota == 5){ //ce je zadnji stolpec in je maxdiff
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'R' : 'r'); //desna za pdf in sredinska poravnava stolpca za rtf
+ }else{
+ $parameterTabular .= ($typeOfDocument == 'pdf' ? 'C' : 'c'); //sredinska poravnava stolpca
+ }
+ }
+ //ureditev parametrov za tabelo - konec ##########################################################################################
#ZACETEK MAIN TABELE #########################################################################
- $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabular, 'tabularx', 'tabular', 1, 1);
+ $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabular, 'xltabular', 'tabular', 1, 1);
#nad prvo vrstico, ampak se vedno v tabeli - naslovi trakov, podnaslovi dvojne tabele ################################################
if( ($enota == 3) && ($podnaslov1 || $podnaslov2) ){ //ce je dvojna tabela in sta prisotna podnaslova
$tabela .= ' & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov1.'} & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov2.'} '.$texNewLine;
- //$tabela .= ' & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov1.'} & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov2.'} ';
+ //$tabela .= ' & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov1.'} & \multicolumn{'.intval($steviloStolpcev/2).'}{c}{'.$podnaslov2.'} ';
}elseif($trak == 1 && $spremenljivke['tip'] == 6 && ($enota == 0 || $enota == 1)){ //ce imamo obliko traku, uredi nadnaslove traka
if($spremenljivke['grids']%$trakNumOfTitles == 0){ //ce je stevilo stolpcev deljivo s trenutnim izbranim stevilom nadnaslovov
for($i=0; $i<$trakNumOfTitles; $i++){
@@ -1351,7 +1131,6 @@ class MultiGridLatex extends LatexSurveyElement
if($enota == 1){ //ce je diferencial tabela
$tabela .= ' & ';
}
- //echo $tabela;
//missingi
if(count($missingOdgovori)!=0 && ($enota==0||$enota==1)){ //ce so missingi in (je klasicna tabela ali diferencial)
@@ -1363,7 +1142,6 @@ class MultiGridLatex extends LatexSurveyElement
}
#nad prvo vrstico, ampak se vedno v tabeli - konec#######################################################
- //echo $steviloStolpcev."</br>";
//ureditev missing-ov za tabela da/ne, klasicna ali dvojna tabela #############################
if($enota==8){ //ce je tabela da/ne
@@ -1381,21 +1159,17 @@ class MultiGridLatex extends LatexSurveyElement
}
}
}
-/* for($m=0;$m<count($vodoravniOdgovori);$m++){
- echo $vodoravniOdgovori[$m].'</br>';
- } */
+
}
//ureditev missing-ov za tabela da/ne, klasicna ali dvojna tabela - konec #####################
+
#prva vrstica tabele ####################################################################################
$tabela .= $this->LatexPrvaVrsticaMultiGrid($steviloStolpcev, $enota, $trak, $customColumnLabelOption, $spremenljivke, $vodoravniOdgovori, $missingOdgovori);
#prva vrstica tabele - konec ##################################################################################
-
- if($enota!=2 && $enota!=6){ //ce ni roleta in izberite s seznama in ena moznost proti drugi
+ if(($enota!=2 && $enota!=6)||($enota==2&&$spremenljivke['tip']==19)){ //ce ni roleta in izberite s seznama in ena moznost proti drugi
$tabela .= $texNewLine; //skok v drugo vrstico, kjer se zacnejo navpicni odgovori
}
-
- //echo "koda za tabelo: ".$tabela."</br>";
//preureditev stevila stolpcev za pravilen izris####################################
if($enota == 1){ //ce je diferencial tabela
@@ -1412,11 +1186,7 @@ class MultiGridLatex extends LatexSurveyElement
if(($enota == 0) && count($missingOdgovori)!=0){ //ce je klasicna tabela in so missingi
//$steviloStolpcev = $steviloStolpcev + count($missingOdgovori);
- }
-
- //echo $steviloStolpcev.'</br>';
- //echo $spremenljivke['grids'].'</br>';
-
+ }
//preureditev stevila stolpcev za pravilen izris - konec ############################
//ureditev missing-ov za roleta in izberite iz seznama ##############################
@@ -1426,23 +1196,18 @@ class MultiGridLatex extends LatexSurveyElement
}
}
//ureditev missing-ov za roleta in izberite iz seznama - konec ######################
-
- #izris vrstic tabele
- $trakStartingNumberTmp = null;
- //$tabela .= $this->LatexVrsticeMultigrid($steviloVrstic, $typeOfDocument, $enota, $simbolTex, $navpicniOdgovori, $trakStartingNumberTmp, $fillablePdf, $steviloStolpcev, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, $navpicniOdgovori2, $missingOdgovori, 0, 0, 0, $data, $export_subtype);
- $tabela .= $this->LatexVrsticeMultigrid($steviloVrstic, $typeOfDocument, $enota, $simbolTex, $navpicniOdgovori, $trakStartingNumberTmp, $fillablePdf, $steviloStolpcev, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, $navpicniOdgovori2, $missingOdgovori, 0, 0, 0, $data, $export_subtype, $this->preveriSpremenljivko, $this->userDataPresent);
+ #izris vrstic tabele
+ $tabela .= $this->LatexVrsticeMultigrid($steviloVrstic, $typeOfDocument, $enota, $simbolTex, $navpicniOdgovori, $trakStartingNumber, $fillablePdf, $steviloStolpcev, $spremenljivke, $trak, $vodoravniOdgovori, $texNewLine, $navpicniOdgovori2, $missingOdgovori, 0, 0, 0, $data, $export_subtype, $this->preveriSpremenljivko, $this->userDataPresent, null, $this->exportDataType, null, null, $this->skipEmpty, $this->skipEmptySub);
#izris vrstic tabele - konec
-/* if($enota==12||$enota==11){
- echo "tabela tex: ".$tabela."</br>";
- } */
- $tabela .= $this->EndLatexTable($typeOfDocument, 'tabularx', 'tabular'); //zakljucek tabele
+ $tabela .= $this->EndLatexTable($typeOfDocument, 'xltabular', 'tabular'); //zakljucek tabele
//$tabela .= $texNewLineAfterTable;
#KONEC MAIN TABELE #########################################################################
}
//prostor po izpisu tabele
- $tabela .= $this->texBigSkip;
- $tabela .= $this->texBigSkip;
+ //$tabela .= $this->texBigSkip;
+ //$tabela .= $this->texBigSkip;
+ $tabela .= '\vspace{1 cm}';
//izpis tabela - konec
@@ -1552,10 +1317,9 @@ class MultiGridLatex extends LatexSurveyElement
}
}
//ureditev parametrov za tabelo - konec
- //echo "parameterTabularLabelePrvaPod: ".$parameterTabularLabelePrvaPod."</br>";
//zacetek tabele
- $tex .= ($export_format == 'pdf' ? '{ \begin{tabularx}{1\textwidth}{'.$parameterTabularLabelePrvaPod.'}' : '\begin{tabular}{'.$parameterTabularLabelePrvaPod.'}');
+ $tex .= ($export_format == 'pdf' ? '{ \begin{xltabular}{1\textwidth}{'.$parameterTabularLabelePrvaPod.'}' : '\begin{tabular}{'.$parameterTabularLabelePrvaPod.'}');
//prva vrstica, ce so opisne labele
#IZRIS OPISNIH LABEL NAD DRSNIKOM #################################################
@@ -1571,13 +1335,13 @@ class MultiGridLatex extends LatexSurveyElement
$tex .= ' & ';
//labela na levi strani
- $tex .= $this->encodeText($MinLabel);
+ $tex .= LatexDocument::encodeText($MinLabel, 0, 1);
//vmesni prazni stolpci
$steviloPraznihStolpcev = $steviloStolpcevPrvaVrstica - 2 + 1;
for($p=0; $p<$steviloPraznihStolpcev; $p++){
if($p==$steviloPraznihStolpcev-2){ //ce je pred-zadnji stolpec
- $tex .= '\multicolumn{2}{c}{'.$this->encodeText($MaxLabel).'}'; //labela na desni v zadnji dveh desnih stolpcih
+ $tex .= '\multicolumn{2}{c}{'.LatexDocument::encodeText($MaxLabel, 0, 1).'}'; //labela na desni v zadnji dveh desnih stolpcih
}elseif($p==$steviloPraznihStolpcev-1){ //ce je zadnji stolpec
}else{ //drugace
@@ -1587,7 +1351,6 @@ class MultiGridLatex extends LatexSurveyElement
}
//labela na desni strani
- //$tex .= $this->encodeText($MaxLabel);
//v novo vrstico po izrisu opisnih label
$tex .= $this->texNewLine;
@@ -1607,7 +1370,6 @@ class MultiGridLatex extends LatexSurveyElement
#IZRIS MOZNIH ODGOVOROV - KONEC
$tex .= ' & ';
- //echo $userAnswer[$key]."</br>";
if($export_format == 'pdf'){ //ce je pdf, pokazi drsnike tudi graficno
#IZRIS DRSNIKA {dolzina}{pozicija bunkice}####################################
$steviloStolpcevZaSlider = $steviloStolpcevPrvaVrstica - 1;
@@ -1694,8 +1456,7 @@ class MultiGridLatex extends LatexSurveyElement
}
//konec tabele
- $tex .= ($export_format == 'pdf' ? "\\end{tabularx} }" : "\\end{tabular} \\noindent");
- //echo $tex;
+ $tex .= ($export_format == 'pdf' ? "\\end{xltabular} }" : "\\end{tabular} \\noindent");
################# izpis s samo eno tabelo, saj zaradi ltablex, to ni vec mozno - konec
#Konec tabele za izris odgovora in drsnika - konec #################################################################################
@@ -1758,9 +1519,9 @@ class MultiGridLatex extends LatexSurveyElement
#############################################################################################################
//se ena tabela, da naredimo dovolj prostora na koncu vprasanja
- $tex .= ($export_format == 'pdf' ? '\begin{tabularx}{0.9\textwidth}{X}' : '');
+ $tex .= ($export_format == 'pdf' ? '\begin{xltabular}{0.9\textwidth}{X}' : '');
$tex .= $this->texNewLine;
- $tex .= ($export_format == 'pdf' ? '\end{tabularx}' : '');
+ $tex .= ($export_format == 'pdf' ? '\end{xltabular}' : '');
return $tex;
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/NagovorLatex.php b/admin/survey/export/latexclasses/Vprasanja/NagovorLatex.php
index 23ffe0e..be21419 100644
--- a/admin/survey/export/latexclasses/Vprasanja/NagovorLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/NagovorLatex.php
@@ -9,12 +9,14 @@
* Datum: 09/2017
*****************************************/
- define("NAGOVOR_LINE_WIDTH", 0.5);
+ if (!defined("NAGOVOR_LINE_WIDTH")) define("NAGOVOR_LINE_WIDTH", 0.5);
class NagovorLatex extends LatexSurveyElement
{
var $internalCellHeight;
protected $texBigSkip = '\bigskip';
+ protected $db_table = '';
+ protected $usr_id = null;
public function __construct()
{
@@ -42,12 +44,8 @@ class NagovorLatex extends LatexSurveyElement
$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);
- //echo "userDataPresent za spremenljivko".$spremenljivke['id']." je: ".$userDataPresent."</br>";
-
- //if($userDataPresent||$export_subtype=='q_empty'){ //ce je kaj v bazi ali je prazen vprasalnik
- if($userDataPresent||$export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){ //ce je kaj v bazi ali je prazen vprasalnik ali je potrebno pokazati tudi ne odgovorjena vprasanja
+ $tex = '';
+ if($export_subtype=='q_empty'||$export_subtype=='q_comment'||$preveriSpremenljivko){ //ce je kaj v bazi ali je prazen vprasalnik ali je potrebno pokazati tudi ne odgovorjena vprasanja
global $lang;
$spremenljivkaParams = new enkaParameters($spremenljivke['params']);
@@ -66,7 +64,6 @@ class NagovorLatex extends LatexSurveyElement
}else{ //ce je rtf
}
-
return $tex;
}
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php b/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php
index 51b5ddb..df4228f 100644
--- a/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/RadioCheckboxSelectLatex.php
@@ -11,8 +11,8 @@
//namespace Export\Latexclasses\Vprasanja;
-define("PIC_SIZE", "\includegraphics[width=10cm]"); //slika sirine 50mm
-define("ICON_SIZE", "\includegraphics[width=0.5cm]"); //za ikone @ slikovni tip
+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
class RadioCheckboxSelectLatex extends LatexSurveyElement
{
@@ -40,6 +40,7 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
}
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $preveriSpremenljivko=null, $export_data_type=null, $export_subtype=null, $loop_id=null, $language=null){
+ //$time_start = microtime(true);
global $lang, $site_path;
$this->language = $language;
@@ -47,7 +48,7 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
//preverjanje, ali je prevod
if(isset($_GET['language'])){
- $this->language = $_GET['language'];
+ $this->language = isset($_GET['language'])?$_GET['language']:null;
$this->prevod = 1;
}else{
$this->prevod = 0;
@@ -73,6 +74,7 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
$indeksOdgovorov = 0;
$oznakaVprasanja = $this->UrediOznakoVprasanja($spremenljivke['id']); //uredi oznako vprasanja, ker ne sme biti stevilska
$prviOdgovorSlikovniTip = 0;
+ $vizualnaSkalaNumber = null;
if ($usr_id){
$userDataPresent = $this->GetUsersData($db_table, $spremenljivke['id'], $spremenljivke['tip'], $usr_id, $this->loop_id); //zgenerira podatke z odgovori respondenta v $this->userAnswer, zabelezi, ce so podatki prisotni
@@ -91,24 +93,24 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
#ce je respondent odgovarjal v drugem jeziku ########################
$rowl = $this->srv_language_vrednost($rowVrednost['id']);
- if (strip_tags($rowl['naslov']) != '') $rowVrednost['naslov'] = $rowl['naslov'];
- if (strip_tags($rowl['naslov2']) != '') $rowVrednost['naslov2'] = $rowl['naslov2'];
+ if ($rowl!=null && strip_tags($rowl['naslov']) != '') $rowVrednost['naslov'] = $rowl['naslov'];
+ if ($rowl!=null && strip_tags($rowl['naslov2']) != '') $rowVrednost['naslov2'] = $rowl['naslov2'];
#ce je respondent odgovarjal v drugem jeziku - konec ################
- $stringTitle = ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] );
- $stringTitle = Common::getInstance()->dataPiping($stringTitle, $usr_id, $loop_id);
- $stringTitle = '\\textcolor{crta}{'.$this->encodeText($stringTitle).'}';
-
- //echo $stringTitle."za indeks: ".$indeksZaWhile."</br>";
- //stetje stevila vrstic
- //$stetje_vrstic = $this->pdf->getNumLines($stringTitle, 180*$expand_width);
- // še dodamo textbox če je polj other
+ $stringTitle = ( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] );
+ if($usr_id){
+ $stringTitle = Common::getInstance()->dataPiping($stringTitle, $usr_id, $loop_id);
+ }
+ $stringTitle = '\\textcolor{crta}{'.LatexDocument::encodeText($stringTitle, 0, 0, $indeksZaWhile).'}'; //encodeText($text='', $vre_id=0, $no_br = 0, $img_id=0, $variable_name = '')
+
+ // še dodamo textbox če je polje other
$_txt = '';
if ( $rowVrednost['other'] == 1 && $usr_id ){
//$sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$this->db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id='".$this->getUserId()."' AND loop_id $loop_id");
- $sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id);
- $row4 = mysqli_fetch_assoc($sqlOtherText);
- $_txt = ' \\textcolor{crta}{'.$row4['text'].'}';
+ $sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : ""));
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $_txt = ' \\textcolor{crta}{'.LatexDocument::encodeText($row4['text']).'}';
}
//$tex .= ' '.$stringTitle.$_txt.',';
if($indeksZaWhile==1){
@@ -150,7 +152,7 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
#za ureditev preloma odgovorov, ce so odgovori ob vprasanju - najprej je potrebno zabeleziti dolzino besedila vprasanja
if($spremenljivke['orientation']==0 && $export_format == 'pdf'){ //vodoravno ob vprasanju, ce je pdf
- $tex .= '\settowidth{\questionLength}{'.$this->encodeText($questionText).'}'; //v definirano dolzino shranimo trenutno dolzino teksta vprasanja
+ $tex .= '\settowidth{\questionLength}{'.LatexDocument::encodeText($questionText).'}'; //v definirano dolzino shranimo trenutno dolzino teksta vprasanja
$tex .= '\addtolength{\questionTotalLength}{\questionLength}'; //celotni dolzini dodamo dolzino vprasanja
//ce je opomba prisotna, daj spremenljivko na 2
@@ -163,40 +165,35 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
#za ureditev preloma odgovorov, ce so odgovori ob vprasanju - konec
if($spremenljivke['orientation']==7){ //navpicno - tekst levo
- //$tex .= '\begin{tabular}{l l}'.$texNewLine;
if($export_format == 'pdf'){
- $tex .= '\begin{tabularx}{.5\textwidth}{l l}';
+ $tex .= '\begin{xltabular}{.5\textwidth}{l l}';
}else{
$tex .= '\begin{tabular}{l l}'.$texNewLine; //za omogociti izris odgovorov v tabeli
}
}elseif($spremenljivke['orientation']==8){ //ce je "povleci-spusti"
- $tex .= '\setlength{\parindent}{0.1\textwidth} ';
+ $tex .= '\setlength{\parindent}{0.04\textwidth} ';
//prva vrstica pred tabelo z odgovori
if($export_format == 'pdf'){ //ce je pdf
$tex .= '\begin{tabular}{l c l} '; //izris z vecstolpicno tabelo
- //$tex .= '\begin{tabularx}{.5\textwidth}{l c l} '; //izris z vecstolpicno tabelo
$tex .= $lang['srv_ranking_available_categories'].': & \hspace{0.1\textwidth} & '.$lang['srv_drag_drop_answers'].': '.$texNewLine;
- $tex .= '\rule{0.4\textwidth}{0.4 pt} & & \rule{0.4\textwidth}{0.4 pt} \end{tabular} '.$texBigSkip;
+ $tex .= '\rule{0.4\textwidth}{0.4 pt} & & \rule{0.4\textwidth}{0.4 pt} \end{tabular} ';
$tex .= $texNewLine;
}else{ //ce je rtf
$tex .= '\begin{tabular}{l} '; //izris z enostolpicno tabelo
$tex .= $lang['srv_ranking_available_categories'].': '.$texNewLine; //Rapolozljive kategorije
- //$tex .= '\hline \end{tabular} '.$texBigSkip;
$tex .= '\hline \end{tabular} ';
}
//prva vrstica pred tabelo z odgovori - konec
if($export_format == 'pdf'){ //ce je pdf
//$tex .= '\begin{tabular}{c c c} '; //izris s tabelo
- $tex .= '\begin{tabularx}{.5\textwidth}{c c c} '; //izris s tabelo
+ $tex .= '\begin{xltabular}{.5\textwidth}{c c c} '; //izris s tabelo
}
}elseif($spremenljivke['orientation']==10){ //image hot-spot
- $imageName = $this->getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
+ $imageName = LatexDocument::getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
$imageNameTest = $this->path2ImagesRadio.$imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
- //error_log("za image hot spot ne grid: ".$imageNameTest);
- //echo("za image hot spot ne grid: ".$imageNameTest."</br>");
if(filesize($imageNameTest) > 0){
$image = PIC_SIZE."{".$this->path2ImagesRadio."".$imageName."}"; //priprave slike predefinirane dimenzije
}else{
@@ -220,14 +217,15 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
$tex .= $texNewLine.$lang['srv_export_hotspot_chosen_regions_names'].': '.$texNewLine; //besedilo "Izbrana obmocja na sliki"
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
if( isset($this->userAnswer[$rowVrednost['id']]) ){ //ce je podatek prisoten
- $stringTitle = ($this->encodeText(( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
- // še dodamo textbox če je polj other
+ $stringTitle = (LatexDocument::encodeText(( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ), 0, 0, 0, '', 1 ));
+ // še dodamo textbox če je polje other
$_txt = '';
if ( $rowVrednost['other'] == 1 && $usr_id ){
//$sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$this->db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id='".$this->getUserId()."' AND loop_id $loop_id");
- $sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id);
+ $sqlOtherText = sisplet_query("SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : ""));
$row4 = mysqli_fetch_assoc($sqlOtherText);
- $_txt = ' '.$row4['text'];
+ $_txt = ' '.LatexDocument::encodeText($row4['text']);
}
$tex .= $stringTitle.$_txt.$texNewLine;
}
@@ -236,30 +234,26 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
}elseif($spremenljivke['orientation']==9 || $spremenljivke['orientation']==11){ //ce je "slikovni tip" ali VAS
if($spremenljivke['orientation']==11){ //ce je VAS
$spremenljivkaParams = new enkaParameters($spremenljivke['params']);
- $vizualnaSkalaNumber = $spremenljivkaParams->get('vizualnaSkalaNumber');
+ $vizualnaSkalaNumber = ($spremenljivkaParams->get('vizualnaSkalaNumber') ? $spremenljivkaParams->get('vizualnaSkalaNumber') : '5');
$numRowsSql = $vizualnaSkalaNumber;
}
- //echo "stevilo zadev: ".$numRowsSql."</br>";
if($spremenljivke['orientation']==9){
$mejaVAS = 20;
}elseif($spremenljivke['orientation']==11){
$mejaVAS = 8;
$numRowsSql = mysqli_num_rows($sqlVrednosti);
}
- //if($numRowsSql<20){ //ce je manj kot x slikovnih tipov, izpisemo s tabelo, drugace simbol in zraven število
if($numRowsSql<$mejaVAS){ //ce je manj kot x slikovnih tipov, izpisemo s tabelo, drugace simbol in zraven število
$tableParamsSlikovniTip = '';
for($i=0; $i<$numRowsSql;$i++){
$tableParamsSlikovniTip .= ' c ';
}
- $tex .= '\begin{tabular}{'.$tableParamsSlikovniTip.'} '; //izris s tabelo
+ $tex .= '\\\\ \begin{tabular}{'.$tableParamsSlikovniTip.'} '; //izris s tabelo
}
- //echo "parametri tabele: ".$tableParamsSlikovniTip."</br>";
}
if($spremenljivke['orientation']!=10){ //ce ni image hot-spot
-
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
$prop['full'] = ( isset($userAnswer[$rowVrednost['id']]) );
@@ -267,57 +261,132 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
if($this->prevod){ //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
+ if($stringTitle == ''){ //ce ni prevoda, prevzemi izvirno
+ $stringTitle = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
+ }
}else{
$stringTitle = ((( $rowVrednost['naslov'] ) ? $rowVrednost['naslov'] : ( ( $rowVrednost['naslov2'] ) ? $rowVrednost['naslov2'] : $rowVrednost['variable'] ) ));
}
- $stringTitle = Common::getInstance()->dataPiping($stringTitle, $usr_id, $loop_id);
-
- //echo "naslov: $stringTitle</br>";
- //echo "jezik: ".$this->language."</br>";
- 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;
- $internalCellHeight = '0.3 cm'; //visina praznega okvirja @povleci-spusti
- }else if ( $spremenljivke['tip'] == 2 ){
- $symbol = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, $this->userAnswer[$rowVrednost['id']]);
- $internalCellHeight = '3 cm'; //visina praznega okvirja @povleci-spusti
+ if($usr_id){
+ $stringTitle = Common::getInstance()->dataPiping($stringTitle, $usr_id, $loop_id);
+ }
+
+ $userAnswerTmp = isset($this->userAnswer[$rowVrednost['id']])?$this->userAnswer[$rowVrednost['id']]:null;
+
+ if ( $spremenljivke['tip'] == 1 || $spremenljivke['tip'] == 3 ){
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, $userAnswerTmp, $spremenljivke['orientation'], $indeksZaWhile, $vizualnaSkalaNumber);
+ $internalCellHeight = 1; //visina praznega okvirja @povleci-spusti
+
+ }else if ( $spremenljivke['tip'] == 2 ){
+ $symbol = $this->getAnswerSymbol($export_subtype, $export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], 0, $userAnswerTmp);
+ $internalCellHeight = 3; //visina praznega okvirja @povleci-spusti
}
- if($spremenljivke['orientation']==1&&$spremenljivke['tip'] != 3){ //navpicno
- $tex .= $symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' '.$texNewLine;
- //$test = $symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' '.$texNewLine;
- //echo "tukaj! $test </br>";
- }elseif($spremenljivke['orientation']==7){ //navpicno - tekst levo
- $text = $this->encodeText($stringTitle, $rowVrednost['id']).' & '.$symbol.' '.$texNewLine;
+ if($spremenljivke['orientation'] == 1 && $spremenljivke['tip'] != 3){ //navpicno
+ $tex .= $symbol.' '.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' ';
+ if($rowVrednost['other'] == 1){ //ce je odgovor Drugo:, izpisi se tabelo za drugo
+ $tex .= '\begin{tabular}{c} '; //izris s tabelo brez obrob
+ if(isset($this->userAnswer[$rowVrednost['id']])){
+ $sqlOtheText1 = "SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : "");
+ $sqlOtherText = sisplet_query($sqlOtheText1);
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ '.LatexDocument::encodeText($row4['text']).' }} ';
+ }else{
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}} }} ';
+ }
+ $tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
+ }
+ $tex .= $texNewLine;
+ }elseif($spremenljivke['orientation'] == 7){ //navpicno - tekst levo
+
+ $text = LatexDocument::encodeText($stringTitle,$rowVrednost['id'], 0, 0, '', 1).' & '.$symbol.' '.$texNewLine;
$textLength = strlen($text);
if($textLength > MAX_STRING_LENGTH){
$tex .= '\vspace{2 mm}';
- $tex .= '\parbox{'.LINE_BREAK_AT.'}{'.$this->encodeText($stringTitle, $rowVrednost['id']).'} & '.$symbol.' '.$texNewLine; //tekst odgovora razbij pri LINE_BREAK_AT (5 cm) in zraven dodaj ustrezni simbol
+ $tex .= '\parbox{'.LINE_BREAK_AT.'}{'.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).'} & '.$symbol.' '.$texNewLine; //tekst odgovora razbij pri LINE_BREAK_AT (5 cm) in zraven dodaj ustrezni simbol
}else{
- $tex .= $text;
- }
+ $tex .= LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' & ';
+ if($rowVrednost['other'] == 1){ //ce je odgovor Drugo:, izpisi se tabelo za drugo
+ $tex .= '\begin{tabular}{c} '; //izris s tabelo brez obrob
+ if(isset($this->userAnswer[$rowVrednost['id']])){
+ $sqlOtheText1 = "SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : "");
+ $sqlOtherText = sisplet_query($sqlOtheText1);
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ '.LatexDocument::encodeText($row4['text']).' }} ';
+ }else{
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}} }} ';
+ }
+ $tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
+ }
+ $tex .= $symbol.' '.$texNewLine;
+ }
}elseif($spremenljivke['orientation']==0){ //vodoravno ob vprasanju
- $tex .= ' '.$symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' ';
+ $tex .= ' '.$symbol.' '.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' ';
+ if($rowVrednost['other'] == 1){ //ce je odgovor Drugo:, izpisi se tabelo za drugo
+ $tex .= '\begin{tabular}{c} '; //izris s tabelo brez obrob
+ if(isset($this->userAnswer[$rowVrednost['id']])){
+ $sqlOtheText1 = "SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : "");
+ $sqlOtherText = sisplet_query($sqlOtheText1);
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ '.LatexDocument::encodeText($row4['text']).' }} ';
+ }else{
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}} }} ';
+ }
+ $tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
+ }
}elseif($spremenljivke['orientation']==2){ //vodoravno pod vprasanjem
- $tex .= ' '.$symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' ';
- }elseif(($spremenljivke['tip'] == 3&&$spremenljivke['orientation']==1)||$spremenljivke['orientation']==6){ //roleta ali izberite s seznama
- if($export_data_type==1&&isset($this->userAnswer[$rowVrednost['id']])){ //ce je dolg izvoz in je podatek za odgovor
- $tex .= ' \textbf{'.$this->encodeText($stringTitle, $rowVrednost['id']).'} '.$texNewLine;
+ $tex .= ' '.$symbol.' '.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' ';
+ if($rowVrednost['other'] == 1){ //ce je odgovor Drugo:, izpisi se tabelo za drugo
+ $tex .= '\begin{tabular}{c} '; //izris s tabelo brez obrob
+ if(isset($this->userAnswer[$rowVrednost['id']])){
+ $sqlOtheText1 = "SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : "");
+ $sqlOtherText = sisplet_query($sqlOtheText1);
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ '.LatexDocument::encodeText($row4['text']).' }} ';
+ }else{
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}} }} ';
+ }
+ $tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
+ }
+ }elseif(($spremenljivke['tip'] == 3 && $spremenljivke['orientation'] == 1) || $spremenljivke['orientation'] == 6){ //roleta ali izberite s seznama
+ if($export_data_type == 1 && isset($this->userAnswer[$rowVrednost['id']])){ //ce je dolg izvoz in je podatek za odgovor
+ $tex .= ' \textbf{'.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' }';
}else{
- $tex .= $this->encodeText($stringTitle, $rowVrednost['id']).' '.$texNewLine;
- }
+ $tex .= LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' ';
+ }
+ if($rowVrednost['other'] == 1){ //ce je odgovor Drugo:, izpisi se tabelo za drugo
+ $tex .= '\begin{tabular}{c} '; //izris s tabelo brez obrob
+ if(isset($this->userAnswer[$rowVrednost['id']])){
+ $sqlOtheText1 = "SELECT * FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND vre_id='".$rowVrednost['id']."' AND usr_id=".$usr_id .
+ ($loop_id !== null ? " AND loop_id='$loop_id'" : "");
+ $sqlOtherText = sisplet_query($sqlOtheText1);
+ $row4 = mysqli_fetch_assoc($sqlOtherText);
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ '.LatexDocument::encodeText($row4['text']).' }} ';
+ }else{
+ $tex .= '\fbox{\parbox{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}} }} ';
+ }
+ $tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
+ if($export_data_type==1&&isset($this->userAnswer[$rowVrednost['id']])){ //ce je dolg izvoz in je podatek za odgovor
+ $tex .= '}';
+ }
+
+ }
+ $tex .= $texNewLine;
}elseif($spremenljivke['orientation']==8){ //povleci-spusti
-
if(isset($this->userAnswer[$rowVrednost['id']])){
- $textR = $this->encodeText($stringTitle, $rowVrednost['id']);
+ $textR = LatexDocument::encodeText($stringTitle, $rowVrednost['id']);
$textRArray[$indeksZaWhile] = $textR; //rabimo kasneje, za izpis rtf desne strani vprasanja, ce izpisujemo odgovore respondenta
$textL = '';
}else{
- $textL = $this->encodeText($stringTitle, $rowVrednost['id']);
+ $textL = LatexDocument::encodeText($stringTitle, $rowVrednost['id']);
$textR = '';
}
-
+
if($export_format == 'pdf'){ //ce je pdf
if($textL){
@@ -327,7 +396,8 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
}
if($indeksZaWhile == 1&&($export_subtype=='q_empty')){
- $tex .= '& \hspace{1.2 cm} \multirow{'.$numRowsSql.'}{*}{\fbox{\parbox[t]['.$internalCellHeight.']{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}}} } } '; //v prvi vrstici izrisi prazen okvir, ki se razpotegne skozi vse vrstice
+ $visinaOkvirja = $internalCellHeight; //$visinaOkvirja = $internalCellHeight*$numRowsSql;
+ $tex .= '& \hspace{1.2 cm} \multirow{'.$numRowsSql.'}{*}{\fbox{\parbox[t]['.$visinaOkvirja.' cm]{0.2\textwidth}{ \hphantom{\hspace{0.2\textwidth}}} } } '; //v prvi vrstici izrisi prazen okvir, ki se razpotegne skozi vse vrstice
}elseif($export_subtype=='q_empty'){
$tex .= '& '; //izrisi potrebno praznino za multirow okvir iz prve vrstice
}else{
@@ -373,22 +443,21 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
$prviOdgovorSlikovniTip = 1;
}
- }elseif($spremenljivke['orientation']==11){ //ce je VAS
- //$tex .= ' '.$symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' ';
+ }elseif($spremenljivke['orientation'] == 11){ //ce je VAS
if($indeksZaWhile == 1){
- if($numRowsSql<=7){ //ce je manj kot 7 slikovnih tipov, izpisemo s tabelo, drugace simbol in zraven število
- $tex .= ' '.$symbol;
+ if($numRowsSql<=7){ //ce je manj kot 7 VAS, izpisemo s tabelo, drugace simbol in zraven število
+ $tex .= ' '.$symbol[$indeksZaWhile-1];
}
}else{
- if($numRowsSql<=7){ //ce je manj kot 7 slikovnih tipov, izpisemo s tabelo, drugace simbol in zraven število
- $tex .= ' & '.$symbol;
+ if($numRowsSql<=7){ //ce je manj kot 7 VAS, izpisemo s tabelo, drugace simbol in zraven število
+ $tex .= ' & '.$symbol[$indeksZaWhile-1];
}
}
if($numRowsSql>7){
$tex .= ' ('.$indeksZaWhile.') ';
}
}else{ //ce ni urejenega izrisa naj bo default oz. navpicno
- $tex .= $symbol.' '.$this->encodeText($stringTitle, $rowVrednost['id']).' '.$texNewLine;
+ $tex .= $symbol.' '.LatexDocument::encodeText($stringTitle, $rowVrednost['id'], 0, 0, '', 1).' '.$texNewLine;
}
$oznakaOdgovora++;
@@ -407,7 +476,7 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
$tex .= ' & ('.$i.')';
}
}
- $tex .= ' \end{tabular}'; //zakljuci izris odgovorov v tabeli za "slikovni tip"
+ $tex .= ' \end{tabular}'.$texBigSkip; //zakljuci izris odgovorov v tabeli za "slikovni tip"
}
//$tex .= $texNewLine;
$tex .= $texNewLine;
@@ -415,10 +484,10 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
if($export_format == 'pdf'|| $spremenljivke['orientation']==7){ //ce je pdf
//if($spremenljivke['orientation']==7 && $export_format == 'pdf'){
if($export_format == 'pdf'){
- $tex .= '\end{tabularx}'; //za zakljuciti izrisa odgovorov v tabeli//tabularx
+ $tex .= '\end{xltabular}'; //za zakljuciti izrisa odgovorov v tabeli//tabularx
$tex .= $this->texBigSkip;
$tex .= $this->texBigSkip;
- $tex .= ' \noindent ';
+ //$tex .= ' \noindent ';
}else{
$tex .= ' \end{tabular}'; //za zakljuciti izris odgovorov v tabeli
$tex .= $texNewLine;
@@ -483,6 +552,10 @@ class RadioCheckboxSelectLatex extends LatexSurveyElement
//$tex .= '\\end{absolutelynopagebreak}'; //zakljucimo environment, da med vprasanji ne bo prelomov strani
}
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time radio:</b> '.floatval($execution_time).' sec</br>'; */
+
return $tex;
}
} \ No newline at end of file
diff --git a/admin/survey/export/latexclasses/Vprasanja/RazvrscanjeLatex.php b/admin/survey/export/latexclasses/Vprasanja/RazvrscanjeLatex.php
index c93ceb0..96c1557 100644
--- a/admin/survey/export/latexclasses/Vprasanja/RazvrscanjeLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/RazvrscanjeLatex.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("RADIO_BTN_SIZE", 0.13);
+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('RADIO_BTN_SIZE')) define("RADIO_BTN_SIZE", 0.13);
class RazvrscanjeLatex extends LatexSurveyElement
{
@@ -27,6 +27,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
private static $_instance;
protected $texBigSkip = ' \bigskip ';
protected $loop_id = null; // id trenutnega loopa ce jih imamo
+ protected $path2ImagesRadio = null;
public static function getInstance()
{
@@ -38,8 +39,11 @@ class RazvrscanjeLatex extends LatexSurveyElement
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype='', $preveriSpremenljivko=null, $export_data_type=null, $loop_id=null){
+ //$time_start = microtime(true);
+ global $lang, $site_path;
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
+ $this->path2ImagesRadio = $site_path.'uploadi/editor/';
//preveri, ce je kaj v bazi
//$userDataPresent = $this->GetUsersData($db_table, $spremenljivke['id'], $spremenljivke['tip'], $usr_id);
@@ -80,7 +84,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
if($userDataPresent){ //ce so prisotni podatki respondenta
//preverjanje podatkov trenutnega uporabnika ######################################################
//$sqlUserAnswer = sisplet_query("SELECT vrstni_red FROM srv_data_rating WHERE spr_id=".$spremenljivke['id']." AND usr_id='".$this->getUserId()."' AND vre_id='".$rowVrednost['id']."' AND loop_id $loop_id");
- $sqlUserAnswer = sisplet_query("SELECT vrstni_red FROM srv_data_rating WHERE spr_id=".$spremenljivke['id']." AND usr_id='".$usr_id."' AND vre_id='".$rowVrednost['id']."' ");
+ $sqlUserAnswer = sisplet_query("SELECT vrstni_red FROM srv_data_rating WHERE spr_id=".$spremenljivke['id']." AND usr_id='".$usr_id."' AND vre_id='".$rowVrednost['id']."' ".($loop_id !== null ? " AND loop_id='$loop_id'" : ""));
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
@@ -95,7 +99,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
}
if($jeOdgovor==0||$tipRazvrscanja==1){ //ce ni odgovor respondenta, bo naslov na levi strani; ali je Ostevilcevanje
- array_push($navpicniOdgovori, $this->encodeText($stringTitleRow, $rowVrednost['id']) ); //filanje polja z navpicnimi odgovori (po vrsticah)
+ array_push($navpicniOdgovori, LatexDocument::encodeText($stringTitleRow, $rowVrednost['id']) ); //filanje polja z navpicnimi odgovori (po vrsticah)
}
}
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - konec
@@ -103,18 +107,18 @@ class RazvrscanjeLatex extends LatexSurveyElement
if($userDataPresent&&$tipRazvrscanja!=1){ //ce so prisotni podatki respondenta in ni Ostevilcevanje
#ureditev polja s podatki trenutnega uporabnika ######################################################
//$sqlOdgovoriRespondentaString = "SELECT v.naslov, v.id from srv_vrednost v, srv_data_rating r WHERE r.spr_id=v.spr_id AND r.usr_id=".$usr_id." AND r.vre_id=v.id AND r.spr_id=".$spremenljivke['id']." ORDER BY r.vrstni_red";
- $sqlOdgovoriRespondentaString = "SELECT v.naslov, v.id from srv_vrednost v, srv_data_rating r WHERE r.spr_id=v.spr_id AND r.usr_id=".$usr_id." AND r.vre_id=v.id AND r.spr_id=".$spremenljivke['id']." AND hidden='0' ORDER BY r.vrstni_red";
+ $sqlOdgovoriRespondentaString = "SELECT v.naslov, v.id from srv_vrednost v, srv_data_rating r WHERE ".($loop_id !== null ? " r.loop_id='$loop_id' AND " : "")."r.spr_id=v.spr_id AND r.usr_id=".$usr_id." AND r.vre_id=v.id AND r.spr_id=".$spremenljivke['id']." AND hidden='0' ORDER BY r.vrstni_red";
//echo $sqlOdgovoriRespondentaString."</br>";
$sqlOdgovoriRespondenta = sisplet_query($sqlOdgovoriRespondentaString);
//pregled vseh odgovorov respondenta razvrsceni kot morajo biti
while ($rowOdgovoriRespondenta = mysqli_fetch_assoc($sqlOdgovoriRespondenta)){
- $odgovorRespondenta = $this->encodeText($rowOdgovoriRespondenta['naslov'], $rowOdgovoriRespondenta['id']);
+ $odgovorRespondenta = LatexDocument::encodeText($rowOdgovoriRespondenta['naslov'], $rowOdgovoriRespondenta['id']);
array_push($odgovoriRespondenta, $odgovorRespondenta); //filanje polja z odgovori respondenta
}
+
//pregled vseh odgovorov respondenta razvrsceni kot morajo biti
#ureditev polja s podatki trenutnega uporabnika - konec ##############################################
}
-
//izris tabel dolocenega razvrscanja
if($export_data_type==2){ //ce je kratek izpis izvoza
$tex .= $this->IzrisRazvrscanjaKratko($spremenljivke, $steviloDesnihOkvirjev, $numRowsSql, $navpicniOdgovori, $texNewLine, $texNewLineAfterTable, $export_format, 0, $tipRazvrscanja, $odgovoriRespondenta, $export_subtype);
@@ -123,6 +127,8 @@ class RazvrscanjeLatex extends LatexSurveyElement
$tex .= $this->IzrisRazvrscanjaTabele($spremenljivke, $steviloDesnihOkvirjev, $numRowsSql, $navpicniOdgovori, $texNewLine, $texNewLineAfterTable, $export_format, 0, $tipRazvrscanja, $odgovoriRespondenta, $export_subtype);
}elseif($tipRazvrscanja==1){ //ce je Ostevilcevanje
$tex .= $this->IzrisRazvrscanja($spremenljivke, $numRowsSql, $navpicniOdgovori, $odgovoriRespondenta, $texNewLine, $export_format, 0);
+ }elseif($tipRazvrscanja==3){ //ce je Image hotspot
+ $tex .= $this->IzrisRazvrscanjaImageHotSpot($spremenljivke, $export_data_type, $odgovoriRespondenta, $texNewLine);
}
}
//izris tabel dolocenega razvrscanja - konec
@@ -135,8 +141,11 @@ class RazvrscanjeLatex extends LatexSurveyElement
}else{
$tex .= $this->texBigSkip;
}
- }
-
+ }
+ //echo "latex koda: $tex";
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time razvrščanje:</b> '.$execution_time.' sec'; */
return $tex;
}
}
@@ -154,9 +163,9 @@ class RazvrscanjeLatex extends LatexSurveyElement
$tabela .= '\setlength{\parindent}{0.1\textwidth} ';
//prva vrstica pred tabelo z odgovori
if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= '\begin{tabularx}{\textwidth}{l c l} '; //izris s tabelo tabularx
+ $tabela .= '\begin{xltabular}{\textwidth}{l c l} '; //izris s tabelo xltabular
$tabela .= $lang['srv_ranking_available_categories'].': & \hspace{0.1\textwidth} & '.$lang['srv_ranking_ranked_categories1'].': '.$texNewLine;
- $tabela .= '\rule{0.4\textwidth}{0.7 pt} & & \rule{0.4\textwidth}{0.4 pt} \end{tabularx} ';
+ $tabela .= '\rule{0.4\textwidth}{0.7 pt} & & \rule{0.4\textwidth}{0.4 pt} \end{xltabular} ';
}else{ //ce je rtf
$tabela .= '\begin{tabular}{l c l} '; //izris s tabelo
$tabela .= $lang['srv_ranking_available_categories'].': & & '.$lang['srv_ranking_ranked_categories1'].': '.$texNewLine;
@@ -180,7 +189,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
#################################################
//zacetek tabele
- $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'tabularx', 'tabular', 1, 0.2);
+ $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'xltabular', 'tabular', 1, 0.2);
//argumenti za leve okvirje
$textboxWidthL = 0.25;
@@ -201,17 +210,12 @@ class RazvrscanjeLatex extends LatexSurveyElement
$textboxHeightL = 0;
}
- //echo "textboxHeightL: ".$textboxHeightL."</br>";
-/* echo "odgovori respondenta: ".count($odgovoriRespondenta)."</br>";
- echo "navpični odgovori: ".count($navpicniOdgovori)."</br>";
- echo "stevilo Odgovorov: ".$steviloOdgovorov."</br>";
- echo "stevilo desnih okvirjev: ".$steviloDesnihOkvirjev."</br>"; */
//izris notranjosti tabele
for ($i = 1; $i <= $steviloOdgovorov; $i++){
-
- $textL = $tableCentering.' '.$navpicniOdgovori[$i-1]; //odgovor znotraj okvirja
-
+ if(array_key_exists($i-1, $navpicniOdgovori)){
+ $textL = $tableCentering.' '.$navpicniOdgovori[$i-1]; //odgovor znotraj okvirja
+ }
if($tipRazvrscanja==2){ //ce je postavitev Premikanje
$tabela .= $indeksZaStevilaL.'. '; //pred okvirjem s kategorijo odgovora dodaj stevilko s piko
@@ -222,7 +226,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
//izpis latex kode za okvir z odgovorom
if($tipRazvrscanja==0||($tipRazvrscanja==2&&count($odgovoriRespondenta)==0)){ //ce je Prestavljanje ali Premikanje in ni podatkov respondenta
- if($navpicniOdgovori[$i-1]!=''){ //ce so prisotni odgovori
+ if(array_key_exists($i-1, $navpicniOdgovori)&&($navpicniOdgovori[$i-1]!='')){ //ce so prisotni odgovori
$textVOkvirju = $textL;
}
}elseif($tipRazvrscanja==2&&count($odgovoriRespondenta)!=0){ //ce je postavitev Premikanje in imamo odgovore respondenta
@@ -232,7 +236,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
//echo "text V Okvirju: ".$textVOkvirju."</br>";
//izpis latex kode za okvir z odgovorom
- if($tipRazvrscanja==0&&$navpicniOdgovori[$i-1]!=''){
+ if($tipRazvrscanja==0&&(array_key_exists($i-1, $navpicniOdgovori)&&$navpicniOdgovori[$i-1]!='')){
if($typeOfDocument == 'pdf'){ //ce je pdf
$tabela .= $this->LatexTextBox($typeOfDocument, $textboxHeightL, $textboxWidthL, $textVOkvirju, $textboxAllignmentL, 0);
}else{
@@ -245,13 +249,6 @@ class RazvrscanjeLatex extends LatexSurveyElement
$tabela .= $textVOkvirju;
}
}
-/* if(($tipRazvrscanja==0&&$navpicniOdgovori[$i-1]!='')||($tipRazvrscanja==2||$tipRazvrscanja==1)){
- if($typeOfDocument == 'pdf'){ //ce je pdf
- $tabela .= $this->LatexTextBox($typeOfDocument, $textboxHeightL, $textboxWidthL, $textVOkvirju, $textboxAllignmentL, 0);
- }else{
- $tabela .= $textVOkvirju;
- }
- } */
if($typeOfDocument == 'pdf'){
$tabela .= ' \bigskip ';
@@ -271,7 +268,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
$textboxAllignmentDE = 'c'; //allignment desnega okvirja, ki je empty
if($indeksZaStevilaD <= $steviloDesnihOkvirjev){ //ce se ni preseglo zeleno stevilo desnih okvirjev
$tabela .= $indeksZaStevilaD.'. ';
- $odgovorZaIzpis = $odgovoriRespondenta[$i-1];
+ $odgovorZaIzpis = isset($odgovoriRespondenta[$i-1])?$odgovoriRespondenta[$i-1]:null;
if($typeOfDocument == 'pdf'){
//echo "odgovori respondenta na desni: ".$odgovoriRespondenta[$i-1]."</br>";
if($odgovorZaIzpis){ //ce je odgovor respondenta
@@ -307,7 +304,7 @@ class RazvrscanjeLatex extends LatexSurveyElement
}
//zakljucek tabele
- $tabela .= $this->EndLatexTable($typeOfDocument, 'tabularx', 'tabular');
+ $tabela .= $this->EndLatexTable($typeOfDocument, 'xltabular', 'tabular');
#################################################
if($tipRazvrscanja==2){ //ce je postavitev Premikanje
@@ -320,8 +317,6 @@ class RazvrscanjeLatex extends LatexSurveyElement
return $tabela;
}
#funkcija, ki skrbi za izris ustreznih tabel za razvrscanje (postavitev: Prestavljanje in Premikanje) - konec ################################
-
-
#funkcija, ki skrbi za izris ustreznih tabel za razvrscanje (postavitev: Prestavljanje in Premikanje) ################################
@@ -331,18 +326,22 @@ class RazvrscanjeLatex extends LatexSurveyElement
$textboxWidth = 0.1;
$textboxHeight = '0.2cm';
$textboxAllignment = 'c'; //dummy spremenljivka
+ $odgovorRespondenta = null;
if($typeOfDocument == 'rtf'){ //ce je rtf, zacetek tabele, kjer sta dva stolpca (prazen okvir + okvir z odgovorom)
//$tex .= '\begin{tabular}{l l} '; //izris z enostolpicno tabelo
$tex .= '\begin{tabular}{c l} '; //izris z enostolpicno tabelo
}
-
for ($i = 1; $i <= $steviloVrstic; $i++){
$tex .= ' \noindent '; //da ni premika besedila v desno
//izpis latex kode za prazen okvir oz. okvirjem z ustreznim stevilskim odgovorom
//$tex .= $this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, $odgovoriRespondenta[$i-1], $textboxAllignment, 0);
- $tex .= $this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, '\\textcolor{crta}{'.$odgovoriRespondenta[$i-1].'}', $textboxAllignment, 0);
+ if(array_key_exists($i-1, $odgovoriRespondenta)){
+ $odgovorRespondenta = $odgovoriRespondenta[$i-1];
+ }
+ //$tex .= $this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, '\\textcolor{crta}{'.$odgovoriRespondenta[$i-1].'}', $textboxAllignment, 0);
+ $tex .= $this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, '\\textcolor{crta}{'.$odgovorRespondenta.'}', $textboxAllignment, 0);
if($typeOfDocument == 'rtf'){ //ce je rtf
$tex .= ' & '; //meja med stolpcema tabele 1. prazen okvir (okvir s stevilskim odgovorom), 2. navpicni odgovor
@@ -369,18 +368,19 @@ class RazvrscanjeLatex extends LatexSurveyElement
$indeksZaStevila=1;
$steviloOdgovorov=count($navpicniOdgovori);
$steviloOdgovorov=count($odgovoriRespondenta);
-
$tex = '';
-
+
//izpis stevil in odgovorov
for ($i = 1; $i <= $steviloOdgovorov; $i++){
- if($tipRazvrscanja==0||$tipRazvrscanja==2){ //ce je Prestavljanje ali Premikanje
+ $navpicniOdgovor = null;
+ if(array_key_exists(($i-1), $navpicniOdgovori)){
+ $navpicniOdgovor = $navpicniOdgovori[$i-1];
+ }
+ if($tipRazvrscanja==0||$tipRazvrscanja==2||$tipRazvrscanja==3){ //ce je Prestavljanje ali Premikanje ali image hotspot
$tex .= $indeksZaStevila.'. '; //stevilka pred odgovorom
- //$tex .= $odgovoriRespondenta[$i-1]; //odgovor
$tex .= '\\textcolor{crta}{'.$odgovoriRespondenta[$i-1].'}'; //odgovor
- }elseif($tipRazvrscanja==1){ //ce je Ostevilcevanje
- $tex .= $navpicniOdgovori[$i-1].': ';
- //$tex .= $odgovoriRespondenta[$i-1]; //odgovor
+ }elseif($tipRazvrscanja==1){ //ce je Ostevilcevanje
+ $tex .=$navpicniOdgovor.': ';
$tex .= '\\textcolor{crta}{'.$odgovoriRespondenta[$i-1].'}'; //odgovor
}
$tex .= '; ';
@@ -393,5 +393,51 @@ class RazvrscanjeLatex extends LatexSurveyElement
return $tex;
}
#funkcija, ki skrbi za izris razvrscanje za kratek izpis izvoza - konec ################################
+
+ #funkcija, ki skrbi za izris razvrscanje za kratek izpis izvoza ################################
+ function IzrisRazvrscanjaImageHotSpot($spremenljivke=null, $export_data_type=null, $odgovoriRespondenta=null, $texNewLine=''){
+ global $lang;
+ $indeksZaStevila=1;
+
+ $steviloOdgovorov=count($odgovoriRespondenta);
+ $tex = '';
+ $imageName = LatexDocument::getImageName('hotspot', $spremenljivke['id'], 'hotspot_image=');
+ $imageNameTest = $this->path2ImagesRadio.$imageName.'.png'; //za preveriti, ali obstaja slikovna datoteka na strezniku
+
+ //echo("za image hot spot ne grid: ".$imageNameTest."</br>");
+ if(filesize($imageNameTest) > 0){
+ $image = PIC_SIZE."{".$this->path2ImagesRadio."".$imageName."}"; //priprave slike predefinirane dimenzije
+ }else{
+ $image = $lang['srv_pc_unavailable'];
+ }
+
+ $tex .= $image."".$texNewLine; //izris slike
+
+ //iz baze poberi imena obmocij
+ $sqlHotSpotRegions = sisplet_query("SELECT region_name FROM srv_hotspot_regions WHERE spr_id='".$spremenljivke['id']."' ORDER BY vrstni_red");
+
+ //izris imen obmocij po $sqlHotSpotRegions
+ $tex .= $lang['srv_export_hotspot_regions_names'].': '.$texNewLine; //besedilo "Obmocja na sliki"
+ while ($rowHotSpotRegions = mysqli_fetch_assoc($sqlHotSpotRegions))
+ {
+ $tex .= $rowHotSpotRegions['region_name'].''.$texNewLine;
+ }
+
+ if(count($odgovoriRespondenta)){
+ $tex .= $lang['srv_ranking_ranked_categories1'].": ".$texNewLine;
+ //izpis odgovorov
+ for ($i = 1; $i <= $steviloOdgovorov; $i++){
+ $tex .= '\\textcolor{crta}{'.$odgovoriRespondenta[$i-1].'}'; //odgovor
+ $tex .= ' \\\\ ';
+ $indeksZaStevila++;
+ }
+ }
+
+ $tex .= ' \\\\ ';
+ $tex .= ' \\\\ ';
+
+ return $tex;
+ }
+ #funkcija, ki skrbi za izris razvrscanje za kratek izpis izvoza - konec ################################
} \ No newline at end of file
diff --git a/admin/survey/export/latexclasses/Vprasanja/SNImena.php b/admin/survey/export/latexclasses/Vprasanja/SNImena.php
index e7d7ef1..bf7ae8c 100644
--- a/admin/survey/export/latexclasses/Vprasanja/SNImena.php
+++ b/admin/survey/export/latexclasses/Vprasanja/SNImena.php
@@ -9,7 +9,7 @@
* Datum: 05/2018
*****************************************/
- define("NAGOVOR_LINE_WIDTH", 0.5);
+ if (!defined("NAGOVOR_LINE_WIDTH")) define("NAGOVOR_LINE_WIDTH", 0.5);
class SNImenaLatex extends LatexSurveyElement
{
@@ -60,7 +60,7 @@ class SNImenaLatex extends LatexSurveyElement
$sqlUserAnswerString = "SELECT text FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' AND loop_id $loop_id ";
$sqlUserAnswer = sisplet_query($sqlUserAnswerString);
while($userAnswer = mysqli_fetch_array($sqlUserAnswer)){
- array_push($textVOkvirju, $this->encodeText($userAnswer['text']));
+ array_push($textVOkvirju, LatexDocument::encodeText($userAnswer['text']));
}
$steviloOkvirjev=count($textVOkvirju);
}
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|&nbsp;/",' ',$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;
}
diff --git a/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php b/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php
index 3cd5a14..88e3aa7 100644
--- a/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php
+++ b/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.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("RADIO_BTN_SIZE", 0.13);
+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('RADIO_BTN_SIZE')) define("RADIO_BTN_SIZE", 0.13);
class VsotaLatex extends LatexSurveyElement
{
@@ -27,6 +27,7 @@ class VsotaLatex extends LatexSurveyElement
private static $_instance;
protected $texBigSkip = ' \bigskip ';
protected $loop_id = null; // id trenutnega loopa ce jih imamo
+ protected $usr_id = null;
public static function getInstance()
{
@@ -38,9 +39,10 @@ class VsotaLatex extends LatexSurveyElement
public function export($spremenljivke=null, $export_format='', $questionText='', $fillablePdf=null, $texNewLine='', $usr_id=null, $db_table=null, $export_subtype=null, $preveriSpremenljivko=null, $loop_id=null){
+ //$time_start = microtime(true);
// Ce je spremenljivka v loopu
$this->loop_id = $loop_id;
-
+ $this->usr_id = $usr_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);
@@ -72,17 +74,21 @@ class VsotaLatex extends LatexSurveyElement
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti
while ($rowVrednost = mysqli_fetch_assoc($sqlVrednosti)){
$stringTitleRow = $rowVrednost['naslov']; //odgovori na levi strani
- array_push($navpicniOdgovori, $this->encodeText($stringTitleRow) ); //filanje polja z navpicnimi odgovori (po vrsticah)
+ if($usr_id){
+ $stringTitleRow = Common::getInstance()->dataPiping($stringTitleRow, $usr_id, $loop_id);
+ }
+ $stringTitleRow = LatexDocument::encodeText($stringTitleRow);
+ array_push($navpicniOdgovori, $stringTitleRow ); //filanje polja z navpicnimi odgovori (po vrsticah)
//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 FROM srv_data_text".$db_table." WHERE spr_id='".$spremenljivke['id']."' AND usr_id='".$usr_id."' AND vre_id='".$rowVrednost['id']."' ");
+ $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']."' ".($loop_id !== null ? " AND loop_id='$loop_id'" : ""));
$userAnswer = mysqli_fetch_assoc($sqlUserAnswer);
- //echo "userAnswer: ".$userAnswer['text']." za vre_id: ".$rowVrednost['id']."</br>";
- array_push($odgovoriRespondenta, '\\textcolor{crta}{'.$userAnswer['text'].'}' ); //filanje polja z odgovori respondenta
+ $texUserAnswer = isset($userAnswer['text'])?$userAnswer['text']:null;
+ array_push($odgovoriRespondenta, '\\textcolor{crta}{'.$texUserAnswer.'}' ); //filanje polja z odgovori respondenta
//ureditev polja s podatki trenutnega uporabnika - konec ##############################################
- $vsota += $userAnswer['text']; //izracun sprotne vsote
+ $vsota += isset($userAnswer['text'])?$userAnswer['text']:null; //izracun sprotne vsote
}
//pregled vseh moznih vrednosti (kategorij) po $sqlVrednosti - konec
@@ -105,7 +111,9 @@ class VsotaLatex extends LatexSurveyElement
}else{ //ce je rtf
}
-
+ /* $time_end = microtime(true);
+ $execution_time = ($time_end - $time_start);
+ echo '<b>Total Execution Time vsota:</b> '.$execution_time.' sec </br>'; */
return $tex;
}
}
@@ -119,14 +127,18 @@ class VsotaLatex extends LatexSurveyElement
$parameterTabularL = 'rl'; //parametri za tabelo
- $textVsota = $this->encodeText($spremenljivke['vsota']);
+ $textVsota = $spremenljivke['vsota'];
+ if($this->usr_id){
+ $textVsota = Common::getInstance()->dataPiping($textVsota, $this->usr_id, $this->loop_id);
+ }
+ $textVsota = LatexDocument::encodeText($textVsota);
if($textVsota==''){
$textVsota = $lang['srv_vsota_text'];
}
//zacetek tabele
- $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'tabularx', 'tabular*', 0.45, 0.2);
+ $tabela .= $this->StartLatexTable($typeOfDocument, $parameterTabularL, 'xltabular', 'tabular*', 0.45, 0.2);
//argumenti za leve okvirje
$textboxWidthL = 0.2;
@@ -153,11 +165,10 @@ class VsotaLatex extends LatexSurveyElement
}
//besedilo in okvir pod crto, kjer je prikazana koncna vsota
- $tabela .= $textVsota.' & '.$this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, $odgovoriRespondenta[$i-1], $textboxAllignment, $noBorders);
- //$tabela .= $lang['srv_vsota_text'].' & '.$this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, $odgovoriRespondenta[$i-1], $textboxAllignment, $noBorders);
+ $tabela .= $textVsota.' & '.$this->LatexTextBox($typeOfDocument, $textboxHeight, $textboxWidth, isset($odgovoriRespondenta[$i-1])?$odgovoriRespondenta[$i-1]:null, $textboxAllignment, $noBorders);
//zakljucek tabele
- $tabela .= $this->EndLatexTable($typeOfDocument, 'tabularx', 'tabular*');
+ $tabela .= $this->EndLatexTable($typeOfDocument, 'xltabular', 'tabular*');
//izpis kode tabela - konec