get('gridWidth'); switch ($gridWidth) { case -2: $hideLabels = true; $gridWidth = 30; // just in case če se kje kaj računa, itak je skrit. break; case -1: case 0: $gridWidth = 30; break; } //$css = ' style = "width: '.$gridWidth.'%;" '; // izracuni za sirino celic $size = 2 * $row['grids']; $colspan = $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]' AND part='1' ORDER BY vrstni_red"); $space = false; 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++; $colspan++; if (!$space) { $colspan++; $space = true; } } } //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'], $row_grid2['id']); $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++; } # če imamo mankajoče potem dodamo še en prazen stolpec za razmak if ($mv_count > 0) { $size += 1 + $mv_count; } # č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"; if ($hideLabels == false) { 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 / 2; $i++) 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 / 2; $i++) echo ''; echo ''; } echo ''; //izpis podnaslovov posameznih delov grida # priredimo podnaslovov če je prevod ankete $podnaslov1 = Language::srv_language_grid_podnaslov($row['id'], 1); $podnaslov2 = Language::srv_language_grid_podnaslov($row['id'], 2); if ($podnaslov1 != '') { $row['grid_subtitle1'] = $podnaslov1; } if ($podnaslov2 != '') { $row['grid_subtitle2'] = $podnaslov2; } # priredimo podnaslovov če je prevod ankete - konec echo ' ' . "\n\r"; if ($hideLabels == false) { echo ' ' . "\n"; echo ' ' . "\n"; } echo ' ' . "\n"; echo ' '; echo ' '; echo ' ' . "\n"; echo ' ' . "\n\r"; echo ' ' . "\n\r"; if ($hideLabels == false) { 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']); # izpišemo labelo grida echo ' ' . "\n"; } } #double grid space echo ''; echo ''; //se za desni del grida if (count($srv_grids2) > 0) { $first_missing_value = true; foreach ($srv_grids2 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']); # izpišemo labelo grida echo ' ' . "\n"; } } echo ' ' . "\n"; echo ''; echo ''; $bg++; $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) - za part 1 $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; } # loop skozi srv_vrednost, da izpišemo vrstice z vrednostmi $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); 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'] : ""; $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; } } } // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo ' ' . "\n"; if ($hideLabels == false) { echo ' ' . "\n"; echo '' . "\n"; } 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; } $value = $srv_grids[$i]['id']; # izpišemo radio grida if ($srv_grid['other'] != 0) { # imamo missing vrednost echo '' . "\n"; } else { # ni missing vrednost echo '' . "\n"; } } } #double grid space echo ''; echo ''; //DESNI DEL GRIDA # ugotovimo ali je na katerem gridu predhodno izbran missing $is_missing = false; if (count($srv_grids2) > 0) { foreach ($srv_grids2 AS $i => $srv_grid) { if ($srv_grid['other'] != 0 && $srv_grids2[$i]['id'] == $grid_id2) { $is_missing = true; } } } if (count($srv_grids2) > 0) { $first_missing_value = true; foreach ($srv_grids2 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; } $value = $srv_grids2[$i]['id']; # izpišemo radio grida if ($srv_grid['other'] != 0) { # imamo missing vrednost echo '' . "\n"; } else { # ni missing vrednost echo '' . "\n"; } } } echo ' ' . "\n"; $bg++; } echo ''; echo '
' . $row['grid_subtitle1'] . '' . $row['grid_subtitle2'] . '
' . $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 ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . "\n"; } /** * @desc prikaze vnosno polje za doublecheckgrid - TODO!! */ public function checkGrid($spremenljivka) { $row = Model::select_from_srv_spremenljivka($spremenljivka); $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'"; // izracuni za sirino celic $size = 2 * $row['grids']; $colspan = $row['grids']; $spremenljivkaParams = new enkaParameters($row['params']); $hideLabels == false; $gridWidth = $spremenljivkaParams->get('gridWidth'); switch ($gridWidth) { case -2: $hideLabels = true; $gridWidth = 30; // just in case če se kje kaj računa, itak je skrit. break; case -1: case 0: $gridWidth = 30; break; } $css = ' style = "width: ' . $gridWidth . '%;" '; # polovimo vrednosti gridov, prevedmo naslove in hkrati preverimo ali imamo missinge $srv_grids1 = array(); $srv_grids2 = 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 part, vrstni_red"); $sql_grid1 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part = '1' ORDER BY vrstni_red"); $sql_grid2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' AND part = '2' ORDER BY vrstni_red"); $space = false; //levi del while ($row_grid1 = mysqli_fetch_assoc($sql_grid1)) { # priredimo naslov če prevajamo anketo $naslov = Language::srv_language_grid($row['id'], $row_grid1['id']); if ($naslov != '') { $row_grid1['naslov'] = $naslov; } $srv_grids1[$row_grid1['id']] = $row_grid1; # če je označena kot manjkajoča jo prištejemo k manjkajočim if ($row_grid1['other'] != 0) { $mv_count++; if ($row_grid1['part'] == 1) $colspan++; if (!$space) { $colspan++; $space = true; } } } //desni del $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++; if ($row_grid2['part'] == 1) $colspan++; if (!$space) { $colspan++; $space = true; } } $indexLanguage++; } echo ' ' . "\n"; if ($hideLabels == false) { 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 / 2; $i++) 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 / 2; $i++) echo ''; echo ''; } echo ''; //ipis podnaslovom posameznih delv grida echo ' ' . "\n\r"; if ($hideLabels == false) { echo ' ' . "\n"; echo ' ' . "\n"; } echo ' ' . "\n"; echo ' '; echo ' '; echo ' ' . "\n"; echo ' ' . "\n\r"; echo ' ' . "\n"; if ($hideLabels == false) { echo ' ' . "\n"; echo ' ' . "\n"; } # če imamo mankajoče potem dodamo še en prazen stolpec za razmak if ($mv_count > 0) { $size += 1 + $mv_count; } # če imamo enoto povečamo št. stoplcev if ($row['enota'] == 1) { $size += 2; } //ce imamo nastavljno sirino prvega grida ostalih ne nastavljamo if ($gridWidth == 30) $cellsize = round(80 / $size); else $cellsize = 'auto'; $spacesize = round(80 / $size / 4); $taWidth = ($spremenljivkaParams->get('taWidth') ? $spremenljivkaParams->get('taWidth') : -1); $taHeight = ($spremenljivkaParams->get('taHeight') ? $spremenljivkaParams->get('taHeight') : 1); //default sirina if ($taWidth == -1) //$taWidth = 10; $taWidth = round(50 / $size); $bg = 1; # Izpišemo TOP vrstico z labelami if (count($srv_grids1) > 0) { $first_missing_value = true; $count = 1; foreach ($srv_grids1 AS $g_id => $srv_grid) { if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ''; $first_missing_value = false; $count++; } // Datapiping $srv_grid['naslov'] = Helper::dataPiping($srv_grid['naslov']); # izpišemo labelo grida echo '' . "\n"; //vmesno polje z mejo if ($count == $colspan) { echo ''; $first_missing_value = true; } $count++; } } if (count($srv_grids2) > 0) { $first_missing_value = true; $count = 1; foreach ($srv_grids2 AS $g_id => $srv_grid) { if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ''; $first_missing_value = false; $count++; } // Datapiping $srv_grid['naslov'] = Helper::dataPiping($srv_grid['naslov']); # izpišemo labelo grida echo '' . "\n"; $count++; } } echo ' ' . "\n"; echo ''; echo ''; $bg++; $orderby = Model::generate_order_by_field($spremenljivka, get('usr_id')); $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; } $sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)"); while ($row1 = mysqli_fetch_array($sql1)) { $naslov = Language::getInstance()->srv_language_vrednost($row1['id']); if ($naslov != '') $row1['naslov'] = $naslov; # 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_grids1) > 0) { foreach ($srv_grids1 AS $i => $srv_grid) { if ($srv_grid['other'] != 0) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; if ($srv_grids1[$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; } } } } // Datapiping $row1['naslov'] = Helper::dataPiping($row1['naslov']); echo ' ' . "\n"; if ($hideLabels == false) { echo ' ' . "\n"; echo ' ' . "\n"; } if (count($srv_grids1) > 0) { $first_missing_value = true; $count = 1; foreach ($srv_grids1 AS $i => $srv_grid) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; $value = $srv_grid['id']; if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ''; $first_missing_value = false; $count++; } # izpišemo labelo grida if ($srv_grid['other'] != 0) { # imamo missing polje echo '' . "\n"; } else { echo '' . "\n"; } //vmesno polje z mejo if ($count == $colspan) { echo ''; $first_missing_value = true; } $count++; } } if (count($srv_grids2) > 0) { $first_missing_value = true; $count = 1; foreach ($srv_grids2 AS $i => $srv_grid) { $grid_id = $srv_data_cache[$row1['id']][$i]['grd_id']; $value = $srv_grid['id']; if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) { # dodamo spejs pred manjkajočimi vrednostmi echo ''; $first_missing_value = false; $count++; } # izpišemo labelo grida if ($srv_grid['other'] != 0) { # imamo missing polje echo '' . "\n"; } else { echo '' . "\n"; } $count++; } } echo ' ' . "\n"; $bg++; } echo ''; echo '
' . $row['grid_subtitle1'] . '' . $row['grid_subtitle2'] . '
' . $srv_grid['naslov'] . '' . $srv_grid['naslov'] . '
' . $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 ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . "\n"; } }