get('gridWidth') > 0) ? $spremenljivkaParams->get('gridWidth') : 30); //$css = ' style = "width: '.$gridWidth.'%;" '; //************************ za izris traku $diferencial_trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0); //za checkbox trak $trak_num_of_titles = ($spremenljivkaParams->get('trak_num_of_titles') ? $spremenljivkaParams->get('trak_num_of_titles') : 0); //belezi stevilo nadnaslovov if($diferencial_trak == 1 && ($row['enota'] == 1 || $row['enota'] == 0)){ //ce je trak vklopljen @ diferencial ali klasicna tabela SurveySetting::getInstance()->Init(get('anketa')); $mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); $trak_class = 'trak_class'; $trak_class_input = 'trak_class_input'; $question = 'question_trak'; if ($row['enota'] == 1){ //ce je diferencial $gridWidth = 15; //za sirino celic skrajno levo pa desno od traku } if($trak_num_of_titles != 0){ $display_trak_num_of_titles = 'style="display:none;"'; $trak_nadnaslov_table_td_width = 100 / $trak_num_of_titles; //spremenljivka za razporeditev sirine nadnaslovov @ traku } $display_trak_num_of_titles = ''; /* ?> get('trak_nadnaslov_'.$i.'') ? $spremenljivkaParams->get('trak_nadnaslov_'.$i.'') : $lang['srv_new_text']); } //********************** za izris traku - konec // izracuni za sirino celic $size = $row['grids']; # polovimo vrednosti gridov, prevedmo naslove in hkrati preverimo ali imamo missinge $srv_grids = array(); $mv_count = 0; # koliko je stolpcev z manjkajočimi vrednostmi # če polje other != 0 je grid kot missing $sql_grid = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' ORDER BY vrstni_red"); while ($row_grid = mysqli_fetch_assoc($sql_grid)) { # priredimo naslov če prevajamo anketo $naslov = Language::srv_language_grid($row['id'], $row_grid['id']); if ($naslov != '') { $row_grid['naslov'] = $naslov; } $srv_grids[$row_grid['id']] = $row_grid; # če je označena kot manjkajoča jo prištejemo k manjkajočim if ($row_grid['other'] != 0) { $mv_count++; } } # če imamo mankajoče potem dodamo še en prazen stolpec za razmak if ($mv_count > 0) { $size += 1 + $mv_count; } if ($row['enota'] == 1) { $size += 2; } $size += 1; # če imamo nastavljno sirino prvega grida ostalih ne nastavljamo if ($gridWidth == 30) { $cellsize = round(80 / $size); } else { $cellsize = 'auto'; } $spacesize = round(80 / $size / 4); $bg = 1; echo '' . "\n"; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; for ($i = 1; $i <= $row['grids']; $i++) echo ''; echo ''; if ($mv_count > 0) { echo ''; echo ''; echo ''; echo ''; for ($i = 1; $i <= $mv_count; $i++) echo ''; echo ''; } if ($row['enota'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } if (!$row['dynamic_mg'] == 3) { echo ''; echo ''; echo ''; } echo ''; //vrstica z nadnaslovi echo ''; echo ' '; echo ' '; for ($j = 1; $j <= $row['grids']; $j++) { if($j == 1){ $nadnaslov_floating = 'left'; } else if($j == $row['grids']){ $nadnaslov_floating = 'right'; } else{ $nadnaslov_floating = 'none'; } echo ''; } echo ''; //vrstica z nadnaslovi - konec echo ' ' . "\n"; echo ' ' . "\n"; echo ' ' . "\n"; # Izpišemo TOP vrstico z labelami if (count($srv_grids) > 0) { $first_missing_value = true; foreach ($srv_grids AS $i => $srv_grid) { if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ' ' . "\n"; $first_missing_value = false; } // Datapiping $srv_grid['naslov'] = Helper::dataPiping($srv_grid['naslov']); //ce ni traku if($diferencial_trak != 1){ # izpišemo labelo grida echo ' ' . "\n"; } //ce je trak elseif($diferencial_trak == 1){ # izpišemo ustrezno labelo grida if($srv_grid['other'] == 0){ //ce je labela za kategorijo odgovora, naj bo prazno echo ' ' . "\n"; } //drugace, ce je labela za missing, izpisi labelo else { echo ' ' . "\n"; } } } } if (!$row['dynamic_mg'] == 3) { echo ' ' . "\n"; } echo ' ' . "\n"; echo ''; echo ''; $bg++; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); # cache tabele srv_data_grid, da se ne dela vsakic posebej nov query (preberemo enkrat vse odgovore userja) $srv_data_grid = array(); $sql_grid = sisplet_query("SELECT * FROM srv_data_grid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id"); while ($row_grid = mysqli_fetch_array($sql_grid)) { $srv_data_grid[$row_grid['vre_id']] = $row_grid; } # loop skozi srv_vrednost, da izpišemo vrstice z vrednostmi $gridRow = 1; $hide = false; $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); $countVar = mysqli_num_rows($sql1); // Stevilo vseh vrednosti echo ''; // Indikator da v js vemo ali smo ravnokar naloudali stran ali pa smo samo premaknili vrstico (potrebno zaradi prikazovanja glede na ife v dolocenih primerih) echo ''; while ($row1 = mysqli_fetch_array($sql1)) { # po potrebi prevedemo naslov $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') { $row1['naslov'] = $naslov; } # po potrebi prevedemo naslov2 za diferencial if ($row['enota'] == 1) { $naslov2 = Language::getInstance()->srv_language_vrednost($row1['id'], true); if ($naslov2 != '') { $row1['naslov2'] = $naslov2; } } # preverimo izbrano vrednost $grid_id = $srv_data_grid[$row1['id']]['grd_id']; # ugotovimo ali je na katerem gridu predhodno izbran missing $is_missing = false; if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { if ($srv_grid['other'] != 0 && $srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } } } // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); $ifDisplay = ($row1['if_id'] > 0 ? ' if_hide' : ''); // Ce lahko prikazemo vrstico (se ni nobena izrisana in ni skrita z ifom) -> naslednjih ne izrisujemo vec if ($hide == false && $row1['hidden'] == 0 && $row1['if_id'] == 0) { $gridRowDisplay = ''; $hide = true; } else $gridRowDisplay = ' style="display:none;"'; $colspan = 0; echo ' ' . "\n"; echo ' ' . "\n"; echo '' . "\n"; $colspan += 2; if (count($srv_grids) > 0) { $first_missing_value = true; foreach ($srv_grids AS $i => $srv_grid) { if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ' ' . "\n"; $first_missing_value = false; $colspan++; } $value = $srv_grids[$i]['id']; # izpišemo radio grida if ($srv_grid['other'] != 0) { # imamo missing vrednost echo '' . "\n"; } else { if($diferencial_trak == 1 && ($row['enota'] == 1 || $row['enota'] == 0) ){ //ce je trak if ($gridRow < $countVar){ echo '' . "\n"; }else{ # ni missing vrednost echo '' . "\n"; } } $colspan++; } } # dodamo še enoto if ($row['enota'] == 1) { echo ' ' . "\n"; echo ' ' . "\n"; $colspan += 2; } // puscice levo/desno if ($row['dynamic_mg'] == 3) { //echo ' '; //echo ' '."\n"; // paginacija } elseif ($row['dynamic_mg'] == 5 || (get('mobile') == 1 && $mobile_tables > 0)) { echo ''; // puscice za naprej/nazaj } else { echo ' ' . "\n"; } echo ' ' . "\n"; $bg++; $gridRow++; } echo '
lang_id!=null ?' default="1"':'').'>' . $trak_nadnaslov[$j] . '
' . $srv_grid['naslov'] . '' . $srv_grid['naslov'] . '
'; echo $row1['naslov']; if ($row1['other'] == 1) { $sql3 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$spremenljivka' AND vre_id='$row1[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id"); $row3 = mysqli_fetch_array($sql3); $otherWidth = ($spremenljivkaParams->get('otherWidth') ? $spremenljivkaParams->get('otherWidth') : -1); $otherHeight = ($spremenljivkaParams->get('otherHeight') ? $spremenljivkaParams->get('otherHeight') : 1); if ($otherHeight > 1) echo ' '; else echo ' '; //echo ' '; } echo ''; echo ''; echo ''; }else{ echo ''; } # ni missing vrednost echo ''; echo ''; echo ''; echo ''; echo '' . $row1['naslov2'] . ''."\n"; echo '
'; echo ' ' . "\n"; if ($gridRow > 1) echo ' '; else echo ' '; echo ' '; if ($gridRow < $countVar) echo ' '; else echo ' '; echo '
'.($countVar == 1 ? '' : $gridRow.' / '.$countVar).'
' . "\n"; echo '
'; echo ' ' . "\n"; for ($i = 1; $i <= $countVar; $i++) { echo ' '; } echo '
' . $i . '
' . "\n"; echo '
' . "\n"; if ($gridRow > 1) echo '
'; else echo '
'; echo '
'.($countVar == 1 ? '' : $gridRow.' / '.$countVar).'
'; if ($gridRow < $countVar) echo '
'; else echo '
'; echo '
' . "\n"; //************* za ureditev prilagajanja label stolpcev @TRAK //prilagajanje trem opisnim nadnaslovom $custom_column_label_option = ($spremenljivkaParams->get('custom_column_label_option') ? $spremenljivkaParams->get('custom_column_label_option') : 1); echo ' '; if($trak_num_of_titles != 0){ //prilagajanje stevilu izbranih nadnaslovov ?> get('gridWidth') > 0) ? $spremenljivkaParams->get('gridWidth') : 30); //$css = ' style = "width: '.$gridWidth.'%;" '; $diferencial_trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0); //za checkbox trak //echo ''; //echo ''; //CE JE TRAK - POJDI NA IZRIS VODORAVNE RAZLICICE if($diferencial_trak == 1 && ($row['enota'] == 1 || $row['enota'] == 0)){ //ce je trak vklopljen @ diferencial ali klasicna tabela $this->multigrid($spremenljivka); //pojdi na zgornjo funkcijo za izris vodoravne različice }else{ //CE NI TRAK, NADALJUJ Z IZRISOM NAVPICNE RAZLICICE // izracuni za sirino celic $size = $row['grids']; # polovimo vrednosti gridov, prevedmo naslove in hkrati preverimo ali imamo missinge $srv_grids = array(); $mv_count = 0; # koliko je stolpcev z manjkajočimi vrednostmi # če polje other != 0 je grid kot missing $sql_grid = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' ORDER BY vrstni_red"); while ($row_grid = mysqli_fetch_assoc($sql_grid)) { # priredimo naslov če prevajamo anketo $naslov = Language::srv_language_grid($row['id'], $row_grid['id']); if ($naslov != '') { $row_grid['naslov'] = $naslov; } $srv_grids[$row_grid['id']] = $row_grid; # če je označena kot manjkajoča jo prištejemo k manjkajočim if ($row_grid['other'] != 0) { $mv_count++; } } # če imamo mankajoče potem dodamo še en prazen stolpec za razmak if ($mv_count > 0) { $size += 1 + $mv_count; } if ($row['enota'] == 1) { $size += 2; } $size += 1; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); # cache tabele srv_data_grid, da se ne dela vsakic posebej nov query (preberemo enkrat vse odgovore userja) $srv_data_grid = array(); $sql_grid = sisplet_query("SELECT * FROM srv_data_grid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id"); while ($row_grid = mysqli_fetch_array($sql_grid)) { $srv_data_grid[$row_grid['vre_id']] = $row_grid; } # loop skozi srv_vrednost, da izpišemo vrstice z vrednostmi $gridRow = 1; $hide = false; $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); $countVar = mysqli_num_rows($sql1); // Stevilo vseh vrednosti echo ''; // Indikator da v js vemo ali smo ravnokar naloudali stran ali pa smo samo premaknili vrstico (potrebno zaradi prikazovanja glede na ife v dolocenih primerih) echo ''; while ($row1 = mysqli_fetch_array($sql1)) { # po potrebi prevedemo naslov $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') { $row1['naslov'] = $naslov; } # po potrebi prevedemo naslov2 za diferencial if ($row['enota'] == 1) { $naslov2 = Language::getInstance()->srv_language_vrednost($row1['id'], true); if ($naslov2 != '') { $row1['naslov2'] = $naslov2; } } # preverimo izbrano vrednost $grid_id = $srv_data_grid[$row1['id']]['grd_id']; # ugotovimo ali je na katerem gridu predhodno izbran missing $is_missing = false; if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { if ($srv_grid['other'] != 0 && $srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } } } // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); $ifDisplay = ($row1['if_id'] > 0 ? ' if_hide' : ''); // Ce lahko prikazemo vrstico (se ni nobena izrisana in ni skrita z ifom) -> naslednjih ne izrisujemo vec if ($hide == false && $row1['hidden'] == 0 && $row1['if_id'] == 0) { $gridRowDisplay = ''; $hide = true; } else $gridRowDisplay = ' style="display:none;"'; echo '
' . "\n"; echo '
'; echo '
'; echo $row1['naslov']; if ($row1['other'] == 1) { $sql3 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$spremenljivka' AND vre_id='$row1[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id"); $row3 = mysqli_fetch_array($sql3); $otherWidth = ($spremenljivkaParams->get('otherWidth') ? $spremenljivkaParams->get('otherWidth') : -1); $otherHeight = ($spremenljivkaParams->get('otherHeight') ? $spremenljivkaParams->get('otherHeight') : 1); if ($otherHeight > 1) echo ' '; else echo ' '; //echo ' '; } echo '
'; if (count($srv_grids) > 0) { $first_missing_value = true; foreach ($srv_grids AS $i => $srv_grid) { if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi $first_missing_value = false; } $value = $srv_grids[$i]['id']; $grid_title = $srv_grids[$i]['naslov']; // Datapiping $grid_title = Helper::dataPiping($grid_title); $smeski =''; if(in_array($row['enota'], [11,12])){ $smeski = 'visual-radio-scale visual-radio-block'; } # izpišemo radio grida echo '
'; if ($srv_grid['other'] != 0) { # imamo missing vrednost echo ''; } else { # ni missing vrednost echo ''; } echo '
'; } } // Dodamo se drug naslov ce imamo semanticni diferencial if ($row['enota'] == 1) { // Datapiping $row1['naslov2'] = Helper::dataPiping($row1['naslov2']); echo '
'; echo $row1['naslov2']; echo '
'; } echo '
'; SurveySetting::getInstance()->Init(get('anketa')); $mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); // puscice za naprej/nazaj if ($row['dynamic_mg'] == 4) { $position = ($size - 2) * 10; echo '
' . "\n"; if ($gridRow > 1) echo '
'; else echo '
'; echo '
'.($countVar == 1 ? '' : $gridRow.' / '.$countVar).'
'; if ($gridRow < $countVar) echo '
'; else echo '
'; echo '
' . "\n"; // Paginacija } elseif ($row['dynamic_mg'] == 6 || (get('mobile') == 1 && $mobile_tables > 0)) { echo ''; echo ' ' . "\n"; for ($i = 1; $i <= $countVar; $i++) { echo ' '; } echo '
' . $i . '
' . "\n"; echo ''; // puscice levo/desno } else { echo ' ' . "\n"; if ($gridRow > 1) echo ' '; else echo ' '; echo ' '; if ($gridRow < $countVar) echo ' '; else echo ' '; echo '
'.($countVar == 1 ? '' : $gridRow.' / '.$countVar).'
' . "\n"; } echo '
' . "\n"; $bg++; $gridRow++; } } //KONEC IZRISA NAVPICNE / VERTICAL RAZLICICE } }