Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele $tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $cssAlign = ''; if ($gridAlign == 1) $cssAlign = ' alignLeft'; elseif ($gridAlign == 2) $cssAlign = ' alignRight'; # polovimo vrednosti gridov, prevedemo naslove in hkrati preverimo ali imamo missinge $srv_grids = array(); # koliko je stolpcev z manjkajočimi vrednostmi $mv_count = 0; # č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++; } } // Izrisemo celotno vsebino tabele za mobietl echo '
'; $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; } // Ali skrivamo radio gumbe in checkboxe $presetValue = ($spremenljivkaParams->get('presetValue') > 0 && empty($srv_data_grid)) ? $spremenljivkaParams->get('presetValue') : 0; // Loop po posameznih vprasanjih (vrsticah) $first = true; $sql1 = sisplet_query("SELECT id, naslov, naslov2, hidden, other FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { echo '
'; // NASLOV posameznega vprasanja echo '
'; echo '
'; // po potrebi prevedemo naslov $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo $row1['naslov']; // preverimo izbrano vrednost $grid_id = isset($srv_data_grid[$row1['id']]['grd_id']) ? $srv_data_grid[$row1['id']]['grd_id'] : ''; // Ugotovimo ali je na katerem gridu predhodno izbran missing oz. pridobimo text. vrednost izpolnjenega odg. $is_missing = false; $grid_data_value = ''; if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { // Ugotovimo ali je na katerem gridu predhodno izbran missing if ($srv_grid['other'] != 0 && $srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } // Pridobimo text. vrednost izpolnjenega odg. if($srv_grids[$i]['id'] == $grid_id){ $grid_data_value = $srv_grids[$i]['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 '
'; // Puscica za razpiranje ce imamo vklopljene mobilne tabele z razpiranjem if($tables_setting == 2) echo ''; echo '
'; // IZPOLNJENA VREDNOST, ce obstaja in ce imamo vklopljene mobilne tabele z razpiranjem if($tables_setting == 2){ echo '
'.($grid_id != '' ? $grid_data_value : '').'
'; } // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids) > 0) { $cnt = 0; foreach ($srv_grids AS $i => $srv_grid) { // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $value = $srv_grids[$i]['id']; $is_checked = (($grid_id == $value && $grid_id != '') || ($presetValue == $value && $presetValue != 0)) ? true : false; echo ''; } // Navadna variabla else { $value = $srv_grids[$i]['id']; $is_checked = ((($grid_id == $value && $grid_id != '') || ($presetValue == $value && $presetValue != 0)) && !$is_missing) ? true : false; echo ''; // Vizualna skala - pobarvamo zvezdice if($row['enota'] == 12 && $is_checked){ echo ''; } } // Max Diff - urejanje navpicnega dela grupiranja radio button - vodoravni je urejen po defaultu s pomočjo atributa name if($row['enota'] == 5){ echo ''; } // One against another - beseda "ali" if($row['enota'] == 4 && $cnt == 0){ echo '
'; echo self::$lang['srv_tip_sample_t6_4_vmes']; echo '
'; } $cnt++; } } // END grid_mobile_variables echo '
'; // Semanticni diferencial in one against another - desna labela if($row['enota'] == 1 || $row['enota'] == 4){ echo '
'; # po potrebi prevedemo naslov2 za semanticni diferencial $naslov2 = Language::getInstance()->srv_language_vrednost($row1['id'], true); if ($naslov2 != '') { $row1['naslov2'] = $naslov2; } // Datapiping $row1['naslov2'] = Helper::dataPiping($row1['naslov2']); echo $row1['naslov2']; echo '
'; } // END grid_mobile_question echo '
'; $first = false; } // END grid_mobile echo '
'; } /** * @desc prikaze vnosno polje za dvojno tabelo radio */ public function radioDoubleMultigrid($spremenljivka){ global $lang; $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; // Pri vpogledu moramo skriti name atribut pri loopih, da se izpise prava vrednost $hideName = ((get('loop_id') != null) && ($_GET['m'] == 'quick_edit')) ? true : false; $row = Model::select_from_srv_spremenljivka($spremenljivka); $spremenljivkaParams = new enkaParameters($row['params']); // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele $tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $cssAlign = ''; if ($gridAlign == 1) $cssAlign = ' alignLeft'; elseif ($gridAlign == 2) $cssAlign = ' alignRight'; # polovimo vrednosti gridov, prevedemo naslove in hkrati preverimo ali imamo missinge $srv_grids = array(); # koliko je stolpcev z manjkajočimi vrednostmi $mv_count = 0; # če polje other != 0 je grid kot missing $sql_grid = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part='1' 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++; } } // se za desni del grida $sql_grid2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part='2' ORDER BY vrstni_red"); $indexLanguage = 1; while ($row_grid2 = mysqli_fetch_assoc($sql_grid2)) { # priredimo naslov če prevajamo anketo $naslov = Language::srv_language_grid($row['id'], $indexLanguage); if ($naslov != '') { $row_grid2['naslov'] = $naslov; } $srv_grids2[$row_grid2['id']] = $row_grid2; # če je označena kot manjkajoča jo prištejemo k manjkajočim if ($row_grid2['other'] != 0) { $mv_count++; } $indexLanguage++; } // Izrisemo celotno vsebino tabele za mobietl echo '
'; $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 d.* FROM srv_data_checkgrid" . get('db_table') . " d, srv_grid g WHERE d.spr_id='$row[id]' AND d.usr_id='" . get('usr_id') . "' AND d.loop_id $loop_id AND d.grd_id=g.id AND g.part='1' AND g.spr_id='$row[id]'"); while ($row_grid = mysqli_fetch_array($sql_grid)) { $srv_data_grid[$row_grid['vre_id']] = $row_grid; } // Cache tabele srv_data_checkgrid, da se ne dela vsakic posebej nov query (preberemo enkrat vse odgovore userja) - za part 2 $srv_data_grid2 = array(); $sql_grid = sisplet_query("SELECT d.* FROM srv_data_checkgrid" . get('db_table') . " d, srv_grid g WHERE d.spr_id='$row[id]' AND d.usr_id='" . get('usr_id') . "' AND d.loop_id $loop_id AND d.grd_id=g.id AND g.part='2' AND g.spr_id='$row[id]'"); while ($row_grid = mysqli_fetch_array($sql_grid)) { $srv_data_grid2[$row_grid['vre_id']] = $row_grid; } // Ali skrivamo radio gumbe in checkboxe $presetValue = ($spremenljivkaParams->get('presetValue') > 0 && empty($srv_data_grid)) ? $spremenljivkaParams->get('presetValue') : 0; // Loop po posameznih vprasanjih (vrsticah) $first = true; $sql1 = sisplet_query("SELECT id, naslov, naslov2, hidden, other FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { echo '
'; // NASLOV posameznega vprasanja echo '
'; echo '
'; // po potrebi prevedemo naslov $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo $row1['naslov']; // preverimo izbrano vrednost $grid_id = isset($srv_data_grid[$row1['id']]['grd_id']) ? $srv_data_grid[$row1['id']]['grd_id'] : ''; $grid_id2 = isset($srv_data_grid2[$row1['id']]['grd_id']) ? $srv_data_grid2[$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; } } } 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 '
'; // Podnaslov prve podtabele if($row['grid_subtitle1'] != '') echo '
'.$row['grid_subtitle1'].'
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $value = $srv_grids[$i]['id']; echo ''; } // Navadna variabla else { $value = $srv_grids[$i]['id']; echo ''; } } } // END grid_mobile_variables echo '
'; // Vmesna crta med prvim in drugim delom dvojne tabele echo '
'; // Podnaslov druge podtabele if($row['grid_subtitle2'] != '') echo '
'.$row['grid_subtitle2'].'
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids2) > 0) { foreach ($srv_grids2 AS $j => $srv_grid) { // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $value = $srv_grids2[$j]['id']; echo ''; } // Navadna variabla else { $value = $srv_grids2[$j]['id']; echo ''; } } } // END grid_mobile_variables part2 echo '
'; // END grid_mobile_question echo '
'; $first = false; } // END grid_mobile echo '
'; } /** * @desc prikaze vnosno polje za dinamicen multigrid (vcash postopno resevanje) */ public function radioHorizontalDynamicMultigrid($spremenljivka){ $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; $row = Model::select_from_srv_spremenljivka($spremenljivka); $spremenljivkaParams = new enkaParameters($row['params']); $gridWidth = (($spremenljivkaParams->get('gridWidth') > 0) ? $spremenljivkaParams->get('gridWidth') : 30); $diferencial_trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0); //za checkbox trak // 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; } # preverimo izbrano vrednost $grid_id = isset($srv_data_grid[$row1['id']]['grd_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 '
'; echo ''; echo ' ' . "\n"; for ($i = 1; $i <= $countVar; $i++) { echo ' '; } echo '
' . $i . '
' . "\n"; echo ''; echo '
' . "\n"; $bg++; $gridRow++; } } /** * @desc prikaze vnosno polje za tabelo checkbox */ public function checkboxMultigrid($spremenljivka){ global $lang; $row = Model::select_from_srv_spremenljivka($spremenljivka); $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; $spremenljivkaParams = new enkaParameters($row['params']); // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele $tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $cssAlign = ''; if ($gridAlign == 1) $cssAlign = ' alignLeft'; elseif ($gridAlign == 2) $cssAlign = ' alignRight'; # 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++; } } // Izrisemo celotno vsebino tabele za mobitel echo '
'; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); // Cache izpolnjenih podatkov $srv_data_cache = array(); $sql2 = sisplet_query("SELECT * FROM srv_data_checkgrid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id ORDER BY grd_id"); if (!$sql2) echo mysqli_error($GLOBALS['connect_db']); while ($row2 = mysqli_fetch_assoc($sql2)) { $srv_data_cache[$row2['vre_id']][$row2['grd_id']] = $row2; } // Ali skrivamo radio gumbe in checkboxe $presetValue = ($spremenljivkaParams->get('presetValue') > 0 && empty($srv_data_grid)) ? $spremenljivkaParams->get('presetValue') : 0; // Loop po posameznih vprasanjih (vrsticah) $sql1 = sisplet_query("SELECT id, naslov, hidden, other FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { echo '
'; // NASLOV posameznega vprasanja echo '
'; echo '
'; $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo $row1['naslov']; # preverimo izbrano vrednost $grid_id = isset($srv_data_grid[$row1['id']]['grd_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) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; if ($srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } } } } 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 '
'; // Puscica za razpiranje ce imamo vklopljene mobilne tabele z razpiranjem if($tables_setting == 2) echo ''; echo '
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { $grid_id = isset($srv_data_cache[$row1['id']][$i]['grd_id']) ? $srv_data_cache[$row1['id']][$i]['grd_id'] : ''; $value = $srv_grid['id']; // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $is_checked = ($grid_id == $value && $grid_id != '') ? true : false; echo ''; } // Navadna variabla else { $is_checked = ($grid_id == $value && $grid_id != '' && !$is_missing) ? true : false; echo ''; } } } // END grid_mobile_variables echo '
'; // END grid_mobile_question echo '
'; } // END grid_mobile echo '
'; } /** * @desc prikaze vnosno polje za dvojno tabelo checkbox */ public function checkboxDoubleMultigrid($spremenljivka){ global $lang; $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; // Pri vpogledu moramo skriti name atribut pri loopih, da se izpise prava vrednost $hideName = ((get('loop_id') != null) && ($_GET['m'] == 'quick_edit')) ? true : false; $row = Model::select_from_srv_spremenljivka($spremenljivka); $spremenljivkaParams = new enkaParameters($row['params']); // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele $tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $cssAlign = ''; if ($gridAlign == 1) $cssAlign = ' alignLeft'; elseif ($gridAlign == 2) $cssAlign = ' alignRight'; # polovimo vrednosti gridov, prevedemo naslove in hkrati preverimo ali imamo missinge $srv_grids = array(); $srv_grids2 = array(); # koliko je stolpcev z manjkajočimi vrednostmi $mv_count = 0; # če polje other != 0 je grid kot missing $sql_grid = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part='1' 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++; } } // se za desni del grida $sql_grid2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part='2' ORDER BY vrstni_red"); $indexLanguage = 1; while ($row_grid2 = mysqli_fetch_assoc($sql_grid2)) { # priredimo naslov če prevajamo anketo $naslov = Language::srv_language_grid($row['id'], $indexLanguage); if ($naslov != '') { $row_grid2['naslov'] = $naslov; } $srv_grids2[$row_grid2['id']] = $row_grid2; # če je označena kot manjkajoča jo prištejemo k manjkajočim if ($row_grid2['other'] != 0) { $mv_count++; } $indexLanguage++; } // Izrisemo celotno vsebino tabele za mobietl echo '
'; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); // Cache tabele srv_data_checkgrid, da se ne dela vsakic posebej nov query (preberemo enkrat vse odgovore userja) $srv_data_cache = array(); $sql2 = sisplet_query("SELECT * FROM srv_data_checkgrid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id ORDER BY grd_id"); while ($row2 = mysqli_fetch_assoc($sql2)) { $srv_data_cache[$row2['vre_id']][$row2['grd_id']] = $row2; } // Ali skrivamo radio gumbe in checkboxe $presetValue = ($spremenljivkaParams->get('presetValue') > 0 && empty($srv_data_cache)) ? $spremenljivkaParams->get('presetValue') : 0; // Loop po posameznih vprasanjih (vrsticah) $first = true; $sql1 = sisplet_query("SELECT id, naslov, naslov2, hidden, other FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { echo '
'; // NASLOV posameznega vprasanja echo '
'; echo '
'; // po potrebi prevedemo naslov $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo $row1['naslov']; # 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) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; if ($srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } } } } if (count($srv_grids2) > 0) { foreach ($srv_grids2 AS $i => $srv_grid) { if ($srv_grid['other'] != 0) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; if ($srv_grids2[$i]['id'] == $grid_id) { $is_missing = true; } } } } 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 '
'; // Podnaslov prve podtabele if($row['grid_subtitle1'] != '') echo '
'.$row['grid_subtitle1'].'
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { $grid_id = isset($srv_data_cache[$row1['id']][$i]['grd_id']) ? $srv_data_cache[$row1['id']][$i]['grd_id'] : ''; // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $value = $srv_grids[$i]['id']; echo ''; } // Navadna variabla else { $value = $srv_grids[$i]['id']; echo ''; } } } // END grid_mobile_variables echo '
'; // Vmesna crta med prvim in drugim delom dvojne tabele echo '
'; // Podnaslov druge podtabele if($row['grid_subtitle2'] != '') echo '
'.$row['grid_subtitle2'].'
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids2) > 0) { foreach ($srv_grids2 AS $j => $srv_grid) { $grid_id = isset($srv_data_cache[$row1['id']][$j]['grd_id']) ? $srv_data_cache[$row1['id']][$j]['grd_id'] : ''; // izpišemo radio grida // Other oz. missing if ($srv_grid['other'] != 0) { $value = $srv_grids2[$j]['id']; echo ''; } // Navadna variabla else { $value = $srv_grids2[$j]['id']; echo ''; } } } // END grid_mobile_variables part2 echo '
'; // END grid_mobile_question echo '
'; $first = false; } // END grid_mobile echo '
'; } /** * @desc prikaze vnosno polje za tabelo text in number */ public function textMultigrid($spremenljivka){ global $lang; $row = Model::select_from_srv_spremenljivka($spremenljivka); $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; $spremenljivkaParams = new enkaParameters($row['params']); // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele $tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $cssAlign = ''; if ($gridAlign == 1) $cssAlign = ' alignLeft'; elseif ($gridAlign == 2) $cssAlign = ' alignRight'; if ($row['num_useMin'] == 1 && $row['num_useMax'] == 1 && $row['vsota_min'] == $row['vsota_limit']) $limit = '(' . $row['vsota_min'] . ')'; elseif ($row['num_useMin'] == 1 && $row['num_useMax'] == 1) $limit = '(min ' . $row['vsota_min'] . ', max ' . $row['vsota_limit'] . ')'; elseif ($row['num_useMin'] == 1) $limit = '(min ' . $row['vsota_min'] . ')'; elseif ($row['num_useMax'] == 1) $limit = '(max ' . $row['vsota_limit'] . ')'; else $limit = ''; //************Params za omejitev sliderjev //tvorjenje omejitve******************************************************************************** $slider_MinNumLabel = ($spremenljivkaParams->get('slider_MinNumLabel') ? $spremenljivkaParams->get('slider_MinNumLabel') : 0); $slider_MaxNumLabel = ($spremenljivkaParams->get('slider_MaxNumLabel') ? $spremenljivkaParams->get('slider_MaxNumLabel') : 100); $limit_slider_mobile = '(min ' . $slider_MinNumLabel . ', max ' . $slider_MaxNumLabel . ')'; //************ // omejitev vnosa if ($row['vsota_show'] == 1 && $row['ranking_k'] != '1' && $row['tip'] == 20) { echo ' '; } # 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++; } } // Izrisemo celotno vsebino tabele za mobitel echo '
'; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); // Cache textovnih odgovorov $srv_data_cache = array(); $sql2 = sisplet_query("SELECT * FROM srv_data_textgrid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id ORDER BY grd_id"); while ($row2 = mysqli_fetch_assoc($sql2)) { $srv_data_cache[$row2['vre_id']][$row2['grd_id']] = $row2; } // Cache missingov $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 po posameznih vprasanjih (vrsticah) $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { echo '
'; // NASLOV posameznega vprasanja echo '
'; echo '
'; $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; # preverimo izbrano vrednost $grid_id = isset($srv_data_grid[$row1['id']]['grd_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) { $grid_id = $srv_data_grid[$row1['id']]['grd_id']; if ($srv_grids[$i]['id'] == $grid_id) { $is_missing = true; } } } } // Datapiping $row1['naslov'] = Helper::dataPiping($row1['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 '
'; // Puscica za razpiranje ce imamo vklopljene mobilne tabele z razpiranjem if($tables_setting == 2) echo ''; echo '
'; // VREDNOSTI znotraj vprasanja echo '
'; // Loop po posameznih VREDNOSTIH (stolpcih) if (count($srv_grids) > 0) { foreach ($srv_grids AS $i => $srv_grid) { if ($srv_grid['other'] != 0) $grid_id = $srv_data_grid[$row1['id']]['grd_id']; else $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; $value = $srv_grid['id']; $vsebina = ''; if ($grid_id == $value) { $vsebina = $srv_data_cache[$row1['id']][$i]['text']; } // Missing if ($srv_grid['other'] != 0) { $is_checked = ($grid_id == $value && $grid_id != '') ? true : false; echo ''; } // multitext elseif ($row['tip'] == 19) { echo '
'; // izpišemo labelo grida $srv_grid['naslov'] = Helper::dataPiping($srv_grid['naslov']); echo '' . $srv_grid['naslov'] . ''; echo ''; echo ''; echo '' . "\n"; // END grid_mobile_variable echo '
'; } // multinumber - rabimo JS checkNumber else { echo '
'; // izpišemo labelo grida $srv_grid['naslov'] = Helper::dataPiping($srv_grid['naslov']); echo '' . $srv_grid['naslov'] . ''; echo ''; echo ''; // multislider //slider na PC, tablici in mobilniku if ($row['ranking_k'] == 1) { $spremenljivkaParams = new enkaParameters($row['params']); $slider_handle = ($spremenljivkaParams->get('slider_handle') ? $spremenljivkaParams->get('slider_handle') : 0); $slider_window_number = ($spremenljivkaParams->get('slider_window_number') ? $spremenljivkaParams->get('slider_window_number') : 0); $slider_nakazi_odgovore = ($spremenljivkaParams->get('slider_nakazi_odgovore') ? $spremenljivkaParams->get('slider_nakazi_odgovore') : 0); //za checkbox $slider_MinMaxNumLabelNew = ($spremenljivkaParams->get('slider_MinMaxNumLabelNew') ? $spremenljivkaParams->get('slider_MinMaxNumLabelNew') : 0); $slider_MinMaxLabel = ($spremenljivkaParams->get('slider_MinMaxLabel') ? $spremenljivkaParams->get('slider_MinMaxLabel') : 0); $slider_VmesneNumLabel = ($spremenljivkaParams->get('slider_VmesneNumLabel') ? $spremenljivkaParams->get('slider_VmesneNumLabel') : 0); $slider_VmesneDescrLabel = ($spremenljivkaParams->get('slider_VmesneDescrLabel') ? $spremenljivkaParams->get('slider_VmesneDescrLabel') : 0); $slider_VmesneCrtice = ($spremenljivkaParams->get('slider_VmesneCrtice') ? $spremenljivkaParams->get('slider_VmesneCrtice') : 0); $slider_handle_step = ($spremenljivkaParams->get('slider_handle_step') ? $spremenljivkaParams->get('slider_handle_step') : 1); $slider_MinLabel = ($spremenljivkaParams->get('slider_MinLabel') ? $spremenljivkaParams->get('slider_MinLabel') : "Minimum"); $slider_MaxLabel = ($spremenljivkaParams->get('slider_MaxLabel') ? $spremenljivkaParams->get('slider_MaxLabel') : "Maximum"); //$slider_MinNumLabel = ($spremenljivkaParams->get('slider_MinNumLabel') ? $spremenljivkaParams->get('slider_MinNumLabel') : 0); //$slider_MaxNumLabel = ($spremenljivkaParams->get('slider_MaxNumLabel') ? $spremenljivkaParams->get('slider_MaxNumLabel') : 100); $slider_NumofDescrLabels = ($spremenljivkaParams->get('slider_NumofDescrLabels') ? $spremenljivkaParams->get('slider_NumofDescrLabels') : 5); $slider_DescriptiveLabel_defaults = ($spremenljivkaParams->get('slider_DescriptiveLabel_defaults') ? $spremenljivkaParams->get('slider_DescriptiveLabel_defaults') : 0); $slider_DescriptiveLabel_defaults_naslov1 = ($spremenljivkaParams->get('slider_DescriptiveLabel_defaults_naslov1') ? $spremenljivkaParams->get('slider_DescriptiveLabel_defaults_naslov1') : 0); $displayMinMaxLabel = ($slider_MinMaxLabel == 0) ? ' style="display:none;"' : ''; if(get('lang_id') != null){ $lang_id = get('lang_id'); $ank_id = get('anketa'); $sqlString = "SELECT label, label_id FROM srv_language_slider WHERE ank_id='$ank_id' AND spr_id='$spremenljivka' AND lang_id='$lang_id' ORDER BY label_id"; $sqlSlider = sisplet_query($sqlString); while ($rowsqlSlider = mysqli_fetch_array($sqlSlider)) { if($rowsqlSlider['label_id'] == 1){ $MinLabel = $rowsqlSlider['label']; } elseif($rowsqlSlider['label_id'] == 2){ $MaxLabel = $rowsqlSlider['label']; }elseif($row['label_id'] == 0){ $custom = $rowsqlSlider['label']; } } if($slider_DescriptiveLabel_defaults && $custom==''){ //ce so prednalozene opisne labele drsnika in nimamo se prevoda $custom_ar = explode(';', $slider_DescriptiveLabel_defaults_naslov1); }else{ //ce so custom opisne labele drsnika $custom_ar = explode('; ', $custom); } // Ce slucajno nimamo prevedeno uporabimo original $MinLabel = ($MinLabel == '') ? ($spremenljivkaParams->get('MinLabel') ? $spremenljivkaParams->get('MinLabel') : self::$lang['srv_new_text']) : $MinLabel; $MaxLabel = ($MaxLabel == '') ? ($spremenljivkaParams->get('MaxLabel') ? $spremenljivkaParams->get('MaxLabel') : self::$lang['srv_new_text']) : $MaxLabel; } else{ $MinLabel = ($spremenljivkaParams->get('MinLabel') ? $spremenljivkaParams->get('MinLabel') : self::$lang['srv_new_text']); $MaxLabel = ($spremenljivkaParams->get('MaxLabel') ? $spremenljivkaParams->get('MaxLabel') : self::$lang['srv_new_text']); } echo '
'; //$default_value = round(($row['vsota_limit']-$row['vsota_min']) / 2) + $row['vsota_min']; $default_value = round(($slider_MaxNumLabel - $slider_MinNumLabel) / 2) + $slider_MinNumLabel; $vrednost = ($vsebina == '') ? $default_value : $vsebina; //labeli nad min in max drsnikov ############################################################ if (get('mobile') == 0 || get('mobile') == 2) {//ce PC ali tablica echo ''; } else if (get('mobile') == 1) { //ce mobilnik echo '
'; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . $MinLabel . '' . $MaxLabel . '
'; //labeli nad min in max drsnikov - konec #################################################### echo '
' . $vrednost . '
'; if (get('mobile') == 0 || get('mobile') == 2) {//ce PC ali tablica echo '
'; } else if (get('mobile') == 1) { //ce mobilnik echo '
'; } echo '
'; // za custom opisne labele // moznosti urejanja opisnih label drsnika if($slider_VmesneDescrLabel){ for($i=1; $i<=$slider_NumofDescrLabels; $i++){ if($custom == ''){ //ce nimamo prevoda opisnih label za drsnika $slider_CustomDescriptiveLabelsTmp = ($spremenljivkaParams->get('slider_Labela_opisna_'.$i) ? $spremenljivkaParams->get('slider_Labela_opisna_'.$i) : ''); }else{ //ce mamo prevod opisnih label za drsnika $slider_CustomDescriptiveLabelsTmp = $custom_ar[$i-1]; } $slider_CustomDescriptiveLabelsTmp = preg_replace("/\s| /",' ',$slider_CustomDescriptiveLabelsTmp); //za odstranitev morebitnih presledkov, ki lahko delajo tezave pri polju za drsnik if($i == 1){ $slider_CustomDescriptiveLabels = $slider_CustomDescriptiveLabelsTmp; }else{ $slider_CustomDescriptiveLabels .= "; ".$slider_CustomDescriptiveLabelsTmp; } } } //za custom opisne labele - konec ?> '; // END grid_mobile_variable echo '
'; } } } // END grid_mobile_variables echo '
'; // END grid_mobile_question echo '
'; } // END grid_mobile echo '
'; } // Pridobimo nastavitve tabele (prikaz na mobile ali pc) public function getTableSettings($spremenljivkaParams){ // Pridobimo nastavitve za mobile tabele if(get('mobile') == 1){ $tables_setting = $spremenljivkaParams->get('mobile_tables','-1'); // Ce nimamo individualnih nastavitev pridobimo splosne nastavitve tabel if($tables_setting == -1) $tables_setting = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); } // Pridobimo nastavitve za pc tabele else{ $tables_setting = $spremenljivkaParams->get('pc_tables','-1'); // Ce nimamo individualnih nastavitev pridobimo splosne nastavitve tabel if($tables_setting == -1) $tables_setting = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables'); } return $tables_setting; } }