anketa = $anketa; if (isset($surveySkin)) $this->skin = $surveySkin; SurveyInfo::getInstance()->SurveyInit($this->anketa); } /** * @desc pohendla ajax zahteve */ function ajax () { if (isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; if (isset($_POST['spremenljivka'])) $this->spremenljivka = $_POST['spremenljivka']; if (strpos($_SERVER['HTTP_REFERER'], 'parent_if') !== false) { $_GET['parent_if'] = substr( $_SERVER['HTTP_REFERER'], strpos($_SERVER['HTTP_REFERER'], 'parent_if')+10 ); } // genericna resitev $ajax = 'ajax_' . $_GET['a']; if ( method_exists('BranchingAjax', $ajax) ) $this->$ajax(); else echo 'method '.$ajax.' does not exist'; } function ajax_follow_up_condition($ank_id = null, $if_id = null, $odg_id = null, $spr_id = null) { if ($ank_id == null) $ank_id = $_POST['ank_id']; if ($if_id == null) $if_id = $_POST['if_id']; if ($odg_id == null) $odg_id = $_POST['odg_id']; if ($spr_id == null) $spr_id = $_POST['spr_id']; $sql = sisplet_query("SELECT naslov FROM srv_vrednost WHERE id = '$odg_id'"); $naslov = mysqli_fetch_array($sql); sisplet_query("UPDATE srv_if SET label='$naslov[0]' WHERE id='$if_id'"); $sql_id = sisplet_query("SELECT id FROM srv_condition WHERE if_id='$if_id'"); $id_condition = mysqli_fetch_array($sql_id); sisplet_query("UPDATE srv_condition SET spr_id='$spr_id' WHERE id='$id_condition[0]'"); sisplet_query("INSERT INTO srv_condition_vre (cond_id, vre_id) VALUES ('$id_condition[0]', '$odg_id')"); } //generira blok (dropdown in menu) za missinge za kategorije function ajax_get_missing_block () { global $lang; $b = new Branching($this->anketa); $b->missings_menu($this->spremenljivka); } function ajax_if_new ($spremenljivka = null, $if = null, $endif = null, $tip = null) { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $spremenljivka = (isset($_POST['spremenljivka']) && $spremenljivka == null) ? $_POST['spremenljivka'] : $spremenljivka; $if = (isset($_POST['if']) && $if == null) ? $_POST['if'] : $if; $endif = (isset($_POST['endif']) && $endif == null) ? $_POST['endif'] : $endif; $tip = (isset($_POST['tip']) && $tip == null) ? $_POST['tip'] : $tip; $copy = isset($_POST['copy']) ? $_POST['copy'] : 0; $no_content = isset($_POST['no_content']) ? $_POST['no_content'] : 0; $include_element = false; $b = new Branching($this->anketa); if ($spremenljivka >= 0 || $if >= 0) { $sqln = sisplet_query("SELECT MAX(i.number) AS number FROM srv_if i, srv_branching b WHERE b.ank_id='$this->anketa' AND b.element_if=i.id"); if (!$sqln) echo mysqli_error($GLOBALS['connect_db']); $rown = mysqli_fetch_array($sqln); $number = $rown['number'] + 1; $sql = sisplet_query("INSERT INTO srv_if (id, number, tip) VALUES ('', '$number', '$tip')"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $if_id = mysqli_insert_id($GLOBALS['connect_db']); if ($spremenljivka > 0 || ($if > 0 && $endif == 1)) { $sql = sisplet_query("SELECT parent, vrstni_red, element_spr, element_if FROM srv_branching WHERE element_spr = '$spremenljivka' AND element_if='$if'"); $row = mysqli_fetch_array($sql); } if ($spremenljivka == 0 && $if == 0) { if ($endif == 0) { // dodajanje na zacetek $row['parent'] = 0; $row['vrstni_red'] = 0; } else { // dodajanje na konec $row['parent'] = 0; $row['vrstni_red'] = 99999999; // ce je blok Demografija na zadnjem mestu v anketi, potem pri "dodajanju na konec" dodamo pred demografijo --da je demografija vedno na koncu $sqld = sisplet_query("SELECT b.element_if, b.vrstni_red FROM srv_if i, srv_branching b WHERE i.label = '$lang[srv_demografija]' AND i.tip='1' AND b.ank_id='$this->anketa' AND b.element_if=i.id AND parent='0' AND b.vrstni_red = (SELECT MAX(vrstni_red) FROM srv_branching WHERE ank_id='$this->anketa' AND parent = '0') "); if (mysqli_num_rows($sqld) > 0) { $rowd = mysqli_fetch_array($sqld); sisplet_query("UPDATE srv_branching SET vrstni_red = vrstni_red+1 WHERE element_if = $rowd[element_if] AND element_spr = '0' AND ank_id='$this->anketa'"); $row['vrstni_red'] = $rowd['vrstni_red']; } } } if ($if > 0 && $endif != 1) { $row['parent'] = $if; $row['vrstni_red'] = 0; } // dodajanje ifa na trenutno spremenljivko if ($spremenljivka > 0 && $endif == 1) { $next_element = $row; $include_element = true; // v if vkljucimo tudi trenutno spremenljivko // dodajanje ifa na naslednji element } else { $next_element = $b->find_next_element($row['parent'], $row['vrstni_red']); } if ($next_element == null) { // next_element je prazen na koncu ifa, takrat je tudi nov if prazen $next_element['parent'] = $row['parent']; $next_element['vrstni_red'] = $row['vrstni_red'] + 1; $next_element['element_spr'] = 0; $next_element['element_if'] = 0; } $add = true; // dodajamo loop - preverimo da ga ne zelimo vgnezditi v drug loop if ($tip == 2) { // preverimo, da ga ne dodamo v ze obstojec loop if ($b->find_loop_parent($next_element['parent']) > 0) $add = false; // preverimo, da ge ne dodamo direktno pred obstojec loop (ker potem objame obstojec loop in dobimo vgnezdenje) if ($next_element['element_if'] > 0) if ($b->find_loop_child($next_element['element_if']) > 0) $add = false; } if ($add) { $b->if_new($endif, $next_element['parent'], $if_id, $next_element['vrstni_red'], $next_element['element_spr'], $next_element['element_if'], $copy, $no_content, $include_element); sisplet_query("UPDATE srv_anketa SET branching='1' WHERE id = '$this->anketa'"); } else { $b->dropped_alert($lang['srv_loop_no_nesting']); } } $this->check_loop(); $b->repare_vrstni_red(); Common::getInstance()->prestevilci($spremenljivka, $all=true); // Zacasno shranimo zadnji ustvarjen if, da vemo katerega odpreti echo ''; $b->branching_struktura(); return $if_id; } function ajax_spremenljivka_new ($spremenljivka = null, $if = null, $endif = null, $copy=null, $tip=null, $podtip=null, $drop=null) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if ($spremenljivka == null && isset($_POST['spremenljivka'])) $spremenljivka = $_POST['spremenljivka']; if ($if == null && isset($_POST['if'])) $if = $_POST['if']; if ($endif == null && isset($_POST['endif'])) $endif = $_POST['endif']; if ($copy == null && isset($_POST['copy'])) $copy = $_POST['copy']; if ($drop == null && isset($_POST['drop'])) $drop = $_POST['drop']; if ($tip == null && isset($_POST['tip'])) $tip = $_POST['tip']; if ($podtip == null && isset($_POST['podtip'])) $podtip = $_POST['podtip']; if ($tip == 23) { $copy = $podtip; $tip = 0; $podtip = 0; } elseif ($tip == 26) { $podtip = 1; } $b = new Branching($this->anketa); $this->spremenljivka_new($spremenljivka, $if, $endif, $copy, $drop); if ($tip > 0) { Vprasanje::change_tip($this->spremenljivka, $tip, $podtip); } if ($podtip > 0) { $v = new Vprasanje($this->anketa); $v->spremenljivka = $this->spremenljivka; ob_start(); if ($tip == 6) { // tabela en odgovor $v->ajax_change_diferencial($podtip); } elseif ($tip == 21) { // besedilo* if ($podtip == 1) { // captcha $v->set_captcha(); } elseif ($podtip == 2) { // email $v->set_email(); } elseif ($podtip == 3) { // url $v->set_url(); } elseif ($podtip == 4) { // upload $v->set_upload(); } elseif ($podtip == 5) { // text box $v->set_box(); } elseif ($podtip == 6) { // podpis $v->set_signature(); } elseif ($podtip == 7) { // fotografija $v->set_fotografija(); } } elseif ($tip == 19) { if ($podtip == 1) { $v->set_datum(); // multigrid datum } } elseif($tip == 26){ $v->set_map ($podtip); } elseif($tip == 5 && $podtip == 2){ $v->set_chat(); } elseif($tip == 7 && $podtip == 2){ $v->set_slider(); } elseif($tip == 1 && $podtip == 10) { // GDPR $v->set_GDPR(); } ob_clean(); } $b->repare_vrstni_red(); Common::getInstance()->prestevilci(); //$b->branching_struktura(); Cache::clear_cache(); $data = array(); $data['nova_spremenljivka_id'] = $this->spremenljivka; ob_start(); $b = new Branching($this->anketa); $b->spremenljivka = $this->spremenljivka; $b->branching_struktura(); $branching_struktura_text = ob_get_clean(); if(!mb_detect_encoding($branching_struktura_text, 'UTF-8', true)) $data['branching_struktura'] = utf8_encode($branching_struktura_text); else $data['branching_struktura'] = $branching_struktura_text; $this->check_loop(); ob_start(); $v = new Vprasanje($this->anketa); $v->spremenljivka = $this->spremenljivka; $v->ajax_vprasanje_fullscreen(); $vprasanje_fullscreen_text = ob_get_clean(); if(!mb_detect_encoding($vprasanje_fullscreen_text, 'UTF-8', true)) $data['vprasanje_fullscreen'] = utf8_encode($vprasanje_fullscreen_text); else $data['vprasanje_fullscreen'] = $vprasanje_fullscreen_text; echo json_encode($data); } /** * @desc kreira novo spremeniljvko v branchingu -- doda zapis tudi v srv_branching */ function spremenljivka_new ($spremenljivka, $if=0, $endif=0, $copy=0, $drop=0, $toStart=false) { Common::updateEditStamp(); global $lang; $b = new Branching($this->anketa); if ($spremenljivka >= 0 || $if > 0) { if ($if > 0) { if ($endif != 1) $spr_id = $b->find_first_in_if($if); else $spr_id = $b->find_next_spr($b->find_last_in_if($if)); } elseif ($spremenljivka > 0) { $spr_id = $spremenljivka; } elseif ($spremenljivka == 0 && $toStart==false) { $spr_id = $b->find_first_spr(); } elseif ($spremenljivka == 0 && $toStart==true) { $spr_id = $b->find_last_spr(); } $sqlS = sisplet_query("SELECT gru_id, vrstni_red FROM srv_spremenljivka WHERE id='$spr_id'"); $rowS = mysqli_fetch_array($sqlS); // Mogoce ni se nobenega vprasanja v anketi if ($rowS['gru_id'] == '0'){ $sqlG = sisplet_query("SELECT id, vrstni_red FROM srv_grupa WHERE ank_id='$this->anketa'"); $rowG = mysqli_fetch_array($sqlG); // Dodaten pogoj da nikoli tega ne pustimo, ce je gru_id==0 if($rowG['id'] == '0') die('group id error'); $spr_id = $b->nova_spremenljivka($rowG['id'], $rowG['vrstni_red'], 1, $copy); } elseif($rowS['gru_id'] < 0){ die('group id < 0 error'); } else{ // Povecamo vrstni red vsem kasnejsim vprasanjem v isti grupi sisplet_query("UPDATE srv_spremenljivka SET vrstni_red=vrstni_red+1 WHERE gru_id='$rowS[gru_id]' AND vrstni_red>'$rowS[vrstni_red]'"); $sqlG = sisplet_query("SELECT id, vrstni_red FROM srv_grupa WHERE ank_id='$this->anketa' AND id='$rowS[gru_id]'"); $rowG = mysqli_fetch_array($sqlG); $spr_id = $b->nova_spremenljivka($rowS['gru_id'], $rowG['vrstni_red'], $rowS['vrstni_red']+1, $copy); } $this->spremenljivka = $spr_id; if ( $this->spremenljivka == $spremenljivka ) die('copy error'); // Dodaten pogoj da nikoli ne vstavimo v srv_branching elementa ki ima element_spr=0 in element_if=0 (potem lahko pride do neskoncnega loopa kjer se dodajajo grupe v anketo) if ($this->spremenljivka == 0 && $if == 0) die('copy error2'); if ($if > 0) { if ($endif != 1) { $sql = sisplet_query("INSERT INTO srv_branching (ank_id, parent, element_spr, element_if, vrstni_red) VALUES ('$this->anketa', '$if', '$spr_id', '0', '0')"); $b->repare_branching($if); } else { $sqlb = sisplet_query("SELECT parent, vrstni_red FROM srv_branching WHERE element_spr='$spremenljivka' AND element_if='$if'"); $rowb = mysqli_fetch_array($sqlb); sisplet_query("UPDATE srv_branching SET vrstni_red=vrstni_red+1 WHERE parent='$rowb[parent]' AND vrstni_red>'$rowb[vrstni_red]' AND ank_id='$this->anketa'"); $rowb['vrstni_red']++; $sql = sisplet_query("INSERT INTO srv_branching (ank_id, parent, element_spr, element_if, vrstni_red) VALUES ('$this->anketa', '$rowb[parent]', '$spr_id', '0', '$rowb[vrstni_red]')"); $b->repare_branching($rowb['parent']); } } else { if ($spremenljivka > 0) { $sqlb = sisplet_query("SELECT parent, vrstni_red FROM srv_branching WHERE element_spr='$spremenljivka' AND element_if='$if'"); $rowb = mysqli_fetch_array($sqlb); sisplet_query("UPDATE srv_branching SET vrstni_red=vrstni_red+1 WHERE parent='$rowb[parent]' AND vrstni_red>'$rowb[vrstni_red]' AND ank_id='$this->anketa'"); $rowb['vrstni_red']++; } elseif ($spremenljivka == 0) { if ($endif == 0) { // dodajanje na zacetek $rowb['parent'] = 0; $rowb['vrstni_red'] = 0; } else { // dodajanje na konec $rowb['parent'] = 0; $rowb['vrstni_red'] = 99999999; // ce je blok Demografija na zadnjem mestu v anketi, potem pri "dodajanju na konec" dodamo pred demografijo --da je demografija vedno na koncu $sqld = sisplet_query("SELECT b.element_if, b.vrstni_red FROM srv_if i, srv_branching b WHERE i.label = '$lang[srv_demografija]' AND i.tip='1' AND b.ank_id='$this->anketa' AND b.element_if=i.id AND parent='0' AND b.vrstni_red = ( SELECT MAX(vrstni_red) FROM srv_branching WHERE ank_id='$this->anketa' AND parent = '0' )"); if (mysqli_num_rows($sqld) > 0) { $rowd = mysqli_fetch_array($sqld); sisplet_query("UPDATE srv_branching SET vrstni_red = vrstni_red+1 WHERE element_if = $rowd[element_if] AND element_spr = '0' AND ank_id='$this->anketa'"); $rowb['vrstni_red'] = $rowd['vrstni_red']; } } } $sql = sisplet_query("INSERT INTO srv_branching (ank_id, parent, element_spr, element_if, vrstni_red) VALUES ('$this->anketa', '$rowb[parent]', '$spr_id', '0', '$rowb[vrstni_red]')"); $b->repare_branching($rowb['parent']); // ++ nastavljanje pagebreakov // if ($drop == 2) { $s = sisplet_query("SELECT pagebreak FROM srv_branching WHERE element_spr='$spremenljivka' AND ank_id='$this->anketa'"); $r = mysqli_fetch_array($s); // preverimo se, ce imamo res pagebreak if ($r['pagebreak'] == 1) { $s = sisplet_query("UPDATE srv_branching SET pagebreak='1' WHERE element_spr='$this->spremenljivka' AND ank_id='$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE element_spr='$spremenljivka' AND ank_id='$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); Cache::clear_branching_cache(); // drugace se polje pagebreak zakesira pri prikazu } } // -- nastavljanje pagebreakov // } } //return id nove spremenljivke za API return $spr_id; } /** * Uporablja se tudi v API, ampak zaenkrat samo za mobile app, zato sem ignoriral vse alerte in droppanje ifa * V kolikor se bo to uporabljalo tudi v API za sirso uporabo, je funkcijo potrebno ustrezno prilagoditi */ function ajax_accept_droppable ($child = 0, $vrstni_red = 0, $page_break = 0, $API_call = false, $parent = 0) { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(!$API_call){ $parent = $_POST['parent']; $tmp_p = str_replace('droppable_', '', $parent); $tmp_p = explode('-', $tmp_p); $parent = isset($tmp_p[0]) ? $tmp_p[0] : $parent; $vrstni_red = isset($tmp_p[1]) ? $tmp_p[1] : $vrstni_red; $page_break = isset($tmp_p[2]) ? $tmp_p[2] : $page_break; $child = $_POST['child']; $child = str_replace('branching_', '', $child); } $b = new Branching($this->anketa); // droppal smo spremenljivko if (is_numeric($parent) && is_numeric($child) && $child > 0) { if ($b->check_dropped_spremenljivka($child, $parent, $vrstni_red)) { $sql = sisplet_query("SELECT pagebreak FROM srv_branching WHERE element_spr = '$child'"); $row = mysqli_fetch_array($sql); $prev = $b->find_prev_spr($child); // preden zacnemo premikati, poiscemo predhodno spremenljivko, ki jo rabimo pri PB $s = sisplet_query("UPDATE srv_branching SET vrstni_red = (vrstni_red+1) WHERE parent='$parent' AND vrstni_red > '$vrstni_red' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); $sql = sisplet_query("UPDATE srv_branching SET parent='$parent', vrstni_red=('$vrstni_red'+1) WHERE element_spr='$child' AND ank_id='$this->anketa'"); if (!$sql && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$sql && $API_call) return mysqli_error($GLOBALS['connect_db']); // ++ nastavljanje pagebreakov // // spremenljivko smo spustili pred page break, zato zamenjamo pagebreak polja (to oznacuje $page_break == 2) if ($page_break == 2) { /*echo '$page_break == 2';*/ $s = sisplet_query("SELECT pagebreak FROM srv_branching WHERE parent='$parent' AND vrstni_red='$vrstni_red' AND ank_id='$this->anketa'"); $r = mysqli_fetch_array($s); // preverimo se, ce imamo res pagebreak - npr. ce spustimo cisto na konec, ga ni if ($r['pagebreak'] == 1) { /*echo '$r[pb] == 1';*/ $s = sisplet_query("UPDATE srv_branching SET pagebreak='1' WHERE element_spr='$child' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE parent='$parent' AND vrstni_red='$vrstni_red' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); Cache::clear_branching_cache(); // drugace se polje pagebreak zakesira pri prikazu } // ce je za spremenljivko page break, ga moramo ohraniti tam, kjer je } elseif ($row['pagebreak'] == 1) { /*echo '$row[pb] == 1';*/ $s = sisplet_query("SELECT element_spr FROM srv_branching WHERE parent='$parent' AND vrstni_red>='$vrstni_red' AND ank_id='$this->anketa' ORDER BY vrstni_red ASC LIMIT 1"); $r = mysqli_fetch_array($s); /*echo ' r: '.$r['element_spr'].' c:'. $child. ' prev:'.$prev.' previous:'. $b->find_prev_spr_branching($child);*/ // ce spremenljivko s PB spustimo na isto mesto, ne smemo popravljati PB if ($b->find_prev_spr_branching($child) != $prev /*|| $r['element_spr']==$child*/) { /*echo ' yes ';*/ if ($prev == 0 && $page_break != 2) { /*echo '$prev==0';*/ // ce premikamo prvo spremenljivko spustimo nekam za PB, ga zbrisemo (ker na prvem mestu ostane prazna stran) $s = sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE element_spr='$child' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); } elseif ($prev > 0) { /*echo '$prev>0';*/ // normalno - zamenjamo pagebreak-a $s = sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE element_spr='$child' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_branching SET pagebreak='1' WHERE element_spr='$prev' AND ank_id='$this->anketa'"); if (!$s && !$API_call) echo mysqli_error($GLOBALS['connect_db']); else if (!$s && $API_call) return mysqli_error($GLOBALS['connect_db']); } } /*else echo ' no';*/ Cache::clear_branching_cache(); // drugace se polje pagebreak zakesira pri prikazu } // na zadnjem mestu vedno popravimo, da ni pagebreaka (ker je nepotreben in lahko kasneje ko se premika kaj pokvari) $last = $b->find_last_spr_branching(); sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE element_spr='$last' AND ank_id='$this->anketa'"); // -- nastavljanje pagebreakov // $b->repare_branching(); } else $b->dropped_alert(); } // droppal smo if ali endif else { $child = str_replace('if', '', $child); // droppal smo if if (is_numeric($child)) { if (is_numeric($parent) && $child > 0 && $child != $parent) { $loop = false; // premikamo loop ali blok/if ki vsebuje loop if ($b->find_loop_child($child) > 0) { if ($parent > 0) { if ($b->find_loop_parent($parent) > 0) $loop = true; } } if ($b->check_dropped_if($child, $parent, $vrstni_red) && !$loop) { sisplet_query("UPDATE srv_branching SET vrstni_red = (vrstni_red+1) WHERE parent='$parent' AND vrstni_red > '$vrstni_red' AND ank_id='$this->anketa'"); $sql = sisplet_query("UPDATE srv_branching SET parent='$parent', vrstni_red=('$vrstni_red'+1) WHERE element_if='$child' AND ank_id='$this->anketa'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); // ++ nastavljanje pagebreakov // // ce if premaknemo na zgornjo stran pagebreaka, potem PB premaknemo na zadnjo spremenljivko v IFu if ($page_break == 2) { $s = sisplet_query("SELECT pagebreak FROM srv_branching WHERE parent='$parent' AND vrstni_red='$vrstni_red' AND ank_id='$this->anketa'"); $r = mysqli_fetch_array($s); if ($r['pagebreak'] == 1) { $s = sisplet_query("UPDATE srv_branching SET pagebreak='0' WHERE parent='$parent' AND vrstni_red='$vrstni_red' AND ank_id='$this->anketa'"); $s = sisplet_query("UPDATE srv_branching SET pagebreak='1' WHERE element_spr='{$b->find_last_spr_branching($child)}' AND ank_id='$this->anketa'"); Cache::clear_branching_cache(); // drugace se polje pagebreak zakesira pri prikazu } } // -- nastavljanje pagebreakov // $b->repare_branching(); } else { if ($loop) $b->dropped_alert($lang['srv_loop_no_nesting']); else $b->dropped_alert(); } } // droppal smo endif } else { $child = str_replace('end', '', $child); if (is_numeric($parent) && is_numeric($child)) { $sql = sisplet_query("SELECT parent, vrstni_red FROM srv_branching WHERE element_if = '$child'"); $row = mysqli_fetch_array($sql); $sql1 = sisplet_query("SELECT * FROM srv_branching WHERE parent='$child'"); $elements = mysqli_num_rows($sql1); // podaljsamo IF if ($row['parent'] == $parent && $row['vrstni_red'] <= $vrstni_red) { $loop = false; // preverjanje, ce premikamo ENDLOOP, da ne potegnemo cez kaksen drug loop $sqli = sisplet_query("SELECT tip FROM srv_if WHERE id = '$child'"); $rowi = mysqli_fetch_array($sqli); if ($rowi['tip'] == '2') { for ($i=$row['vrstni_red']+1; $i<=$vrstni_red; $i++) { $sqli = sisplet_query("SELECT element_if FROM srv_branching WHERE parent='$parent' AND vrstni_red='$i' AND ank_id='$this->anketa'"); $rowi = mysqli_fetch_array($sqli); if ($rowi['element_if'] > 0) if ($b->find_loop_child($rowi['element_if']) > 0) $loop = true; } } if (!$loop) { $vr = $elements+1; for ($i=$row['vrstni_red']+1; $i<=$vrstni_red; $i++) { sisplet_query("UPDATE srv_branching SET parent='$child', vrstni_red='$vr' WHERE parent='$parent' AND vrstni_red='$i' AND ank_id='$this->anketa'"); $vr++; } } else $b->dropped_alert($lang['srv_loop_no_nesting']); // krajsamo IF } elseif ($parent == $child) { $vr = $row['vrstni_red']+1; sisplet_query("UPDATE srv_branching SET vrstni_red=(vrstni_red+'$elements'-'$vrstni_red') WHERE parent='$row[parent]' AND vrstni_red>'$row[vrstni_red]' AND ank_id='$this->anketa'"); for ($i=$vrstni_red+1; $i<=$elements; $i++) { sisplet_query("UPDATE srv_branching SET parent='$row[parent]', vrstni_red='$vr' WHERE parent='$child' AND vrstni_red='$i' AND ank_id='$this->anketa'"); $vr++; } } else $b->dropped_alert(); $b->repare_branching(); } } } $this->check_loop(); $b->repare_vrstni_red(); Common::getInstance()->prestevilci(); if(!$API_call) $b->branching_struktura(); } function ajax_if_remove ($if=0, $first=1) { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = ($if == 0 && isset($_POST['if'])) ? $_POST['if'] : $if; // ali brisemo tudi celotno vsebino pogoja/bloka $all = (isset($_POST['all']) && $_POST['all'] == 1) ? 1 : 0; $b = new Branching($this->anketa); if ($if > 0) { // preverimo, ce obstajajo ze podatki za spremenljivko - v tem primeru damo dodaten error $confirmed = $_POST['confirmed']; if ($all == 1 && $confirmed != '1') { $sql = sisplet_query("SELECT count(*) AS count FROM srv_user WHERE ank_id='$this->anketa' AND deleted='0' AND preview='0'"); $row = mysqli_fetch_array($sql); if ($row['count'] > 0) { echo '

'.$lang['srv_warning'].'

'; echo ''; echo '

'.$lang['if_delete_data'].'

'; echo '

'.$lang['srv_brisiifconfirm_all'].'

'; echo '
'; echo ' '; echo ' '; echo '
'; return; } } $sql = sisplet_query("SELECT * FROM srv_condition WHERE if_id = '$if'"); while ($row = mysqli_fetch_array($sql)) sisplet_query("DELETE FROM srv_condition_vre WHERE cond_id='$row[id]'"); sisplet_query("DELETE FROM srv_condition WHERE if_id = '$if'"); sisplet_query("DELETE FROM srv_if WHERE id = '$if'"); sisplet_query("DELETE FROM srv_validation WHERE if_id='$if'"); $sql = sisplet_query("SELECT parent, vrstni_red FROM srv_branching WHERE element_if = '$if'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); if ($all == 0) { $sql1 = sisplet_query("SELECT * FROM srv_branching WHERE parent = '$if'"); $childs = mysqli_num_rows($sql1); sisplet_query("UPDATE srv_branching SET vrstni_red=(vrstni_red+'$childs'-1) WHERE parent='$row[parent]' AND vrstni_red > '$row[vrstni_red]' AND ank_id='$this->anketa'"); sisplet_query("UPDATE srv_branching SET parent='$row[parent]', vrstni_red=(vrstni_red+'$row[vrstni_red]'-1) WHERE parent='$if' AND ank_id='$this->anketa'"); } else { $sa = null; $sql1 = sisplet_query("SELECT element_spr, element_if FROM srv_branching WHERE parent = '$if'"); while ($row1 = mysqli_fetch_array($sql1)) { if ($row1['element_spr'] > 0) { if ($sa == null) $sa = new SurveyAdmin(-1, $this->anketa); $sa->brisi_spremenljivko($row1['element_spr']); } else { $this->ajax_if_remove($row1['element_if'], 0); } } } sisplet_query("DELETE FROM srv_branching WHERE element_if = '$if'"); $b->repare_branching($row['parent']); $b->repare_vrstni_red(); $sql = sisplet_query("SELECT * FROM srv_branching WHERE ank_id='$this->anketa' AND element_if > 0"); if (mysqli_num_rows($sql) == 0) { sisplet_query("UPDATE srv_anketa SET branching='0' WHERE id='$this->anketa'"); } } // izpisemo samo pri prvem klicu, pri rekurzivnih pa ne if ($first == 1) $b->branching_struktura(); } function ajax_vrednost_if_remove ($if=0) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if ($if == 0) $if = $_POST['if']; $vrednost = $_POST['vrednost']; if ($if > 0) { $sql = sisplet_query("SELECT * FROM srv_condition WHERE if_id = '$if'"); while ($row = mysqli_fetch_array($sql)) sisplet_query("DELETE FROM srv_condition_vre WHERE cond_id='$row[id]'"); sisplet_query("DELETE FROM srv_condition WHERE if_id = '$if'"); sisplet_query("DELETE FROM srv_if WHERE id = '$if'"); sisplet_query("UPDATE srv_vrednost SET if_id='0' WHERE if_id='$if'"); } } function ajax_if_tip() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $tip = $_POST['tip']; sisplet_query("UPDATE srv_if SET tip = '$tip' WHERE id = '$if'"); $b = new Branching($this->anketa); $b->condition_editing($if); } function ajax_vrednost_condition_editing () { Common::updateEditStamp(); $vrednost = $_POST['vrednost']; $sql = sisplet_query("SELECT if_id FROM srv_vrednost WHERE id = '$vrednost'"); $row = mysqli_fetch_array($sql); if ($row['if_id'] > 0) { $if = $row['if_id']; } else { sisplet_query("INSERT INTO srv_if (id) VALUES ('')"); $if = mysqli_insert_id($GLOBALS['connect_db']); sisplet_query("INSERT INTO srv_condition (id, if_id, vrstni_red) VALUES ('', '$if', '1')"); sisplet_query("UPDATE srv_vrednost SET if_id='$if' WHERE id = '$vrednost'"); } $b = new Branching($this->anketa); $b->condition_editing($if, $vrednost); } function ajax_condition_editing () { $if = $_POST['if']; if ($if == 0) { $sql = sisplet_query("SELECT id FROM srv_if ORDER BY id DESC LIMIT 1"); $row = mysqli_fetch_array($sql); $if = $row['id']; } $b = new Branching($this->anketa); $b->condition_editing($if); } function ajax_data_condition_editing () { $if = $_POST['if']; if ($if == 0) { $sql = sisplet_query("SELECT id FROM srv_if ORDER BY id DESC LIMIT 1"); $row = mysqli_fetch_array($sql); $if = $row['id']; } $b = new Branching($this->anketa); $b->condition_editing($if,-1); } function ajax_condition_add () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $if = $_POST['if']; $conjunction = $_POST['conjunction']; $negation = $_POST['negation']; $sql = sisplet_query("SELECT MAX(vrstni_red) AS max FROM srv_condition WHERE if_id = '$if'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['max'] + 1; sisplet_query("INSERT INTO srv_condition (if_id, conjunction, negation, vrstni_red) VALUES ('$if', '$conjunction', '$negation', '$vrstni_red')"); $b = new Branching($this->anketa); $b->condition_editing_inner($if, $_POST['vrednost']); } function ajax_condition_edit () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $text = isset($_POST['text']) ? strip_tags($_POST['text']) : ''; $operator = isset($_POST['operator']) ? $_POST['operator'] : ''; $negation = isset($_POST['negation']) ? $_POST['negation'] : ''; $conjunction = isset($_POST['conjunction']) ? $_POST['conjunction'] : ''; $vrednost = isset($_POST['vrednost']) ? $_POST['vrednost'] : ''; $condition = isset($_POST['condition']) ? $_POST['condition'] : ''; $spremenljivka = isset($_POST['spremenljivka']) ? $_POST['spremenljivka'] : ''; $ostanek = isset($_POST['ostanek']) ? $_POST['ostanek'] : ''; //$vrednost = explode(',', $vrednost); sisplet_query("DELETE FROM srv_condition_vre WHERE cond_id='$condition'"); sisplet_query("DELETE FROM srv_condition_grid WHERE cond_id='$condition'"); // obicna spremenljivka if (is_numeric($spremenljivka)) { $spremenljivka = $spremenljivka; $vre_id = 0; if ($vrednost != null) foreach ($vrednost AS $val) if ($val > 0 || $val == -1) sisplet_query("INSERT INTO srv_condition_vre (cond_id, vre_id) VALUES ('$condition', '$val')"); // multigrid } elseif ( is_numeric(str_replace('vre_', '', $spremenljivka)) ) { $vre_id = str_replace('vre_', '', $spremenljivka); $sql2 = sisplet_query("SELECT spr_id FROM srv_vrednost WHERE id = '$vre_id'"); $row2 = mysqli_fetch_array($sql2); $spremenljivka = $row2['spr_id']; if ($vrednost != null) foreach ($vrednost AS $val) { if ($val > 0 || $val < 0) // neustrezni so minus sisplet_query("INSERT INTO srv_condition_grid (cond_id, grd_id) VALUES ('$condition', '$val')"); } // tabela besedilo, tabela stevilo } elseif (substr($spremenljivka,0,4) == 'grd_') { $e = explode('_', $spremenljivka); $vre_id = $e[1]; $grid = $e[2]; $sql2 = sisplet_query("SELECT spr_id FROM srv_vrednost WHERE id = '$vre_id'"); $row2 = mysqli_fetch_array($sql2); $spremenljivka = $row2['spr_id']; // number } elseif (substr($spremenljivka,0,4) == 'num_') { $e = explode('_', $spremenljivka); $spremenljivka = $e[1]; $grid = $e[2]; $vre_id = 0; } // calculation if ($spremenljivka == -2) { $sqlc = sisplet_query("SELECT vre_id FROM srv_condition WHERE id = '$condition'"); $rowc = mysqli_fetch_array($sqlc); $vre_id = $rowc['vre_id']; } sisplet_query("UPDATE srv_condition SET spr_id='$spremenljivka', vre_id='$vre_id', text='$text', conjunction='$conjunction', negation='$negation', operator='$operator', ostanek='$ostanek' WHERE id = '$condition'"); $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->conditions_display($row['if_id'], 1, 1); } function ajax_bracket_edit () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $right_bracket = $_POST['right_bracket']; $left_bracket = $_POST['left_bracket']; $condition = $_POST['condition']; sisplet_query("UPDATE srv_condition SET left_bracket='$left_bracket', right_bracket='$right_bracket' WHERE id = '$condition'"); $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->condition_editing($row['if_id'], $_POST['vrednost']); } function ajax_bracket_edit_new () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $who = $_POST['who']; $what = $_POST['what']; $left_bracket = $_POST['left_bracket']; $condition = $_POST['condition']; if ($who == 'left') if ($what == 'plus') $bracket = 'left_bracket=left_bracket+1'; else $bracket = 'left_bracket=left_bracket-1'; else if ($what == 'plus') $bracket = 'right_bracket=right_bracket+1'; else $bracket = 'right_bracket=right_bracket-1'; sisplet_query("UPDATE srv_condition SET $bracket WHERE id = '$condition'"); $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->condition_editing_inner($row['if_id'], $_POST['vrednost']); } function ajax_conjunction_edit () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $conjunction = $_POST['conjunction']; $negation = $_POST['negation']; $condition = $_POST['condition']; sisplet_query("UPDATE srv_condition SET conjunction='$conjunction', negation='$negation' WHERE id = '$condition'"); $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->condition_editing_inner($row['if_id'], $_POST['vrednost']); } function ajax_fill_value () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $condition = $_POST['condition']; $spremenljivka = $_POST['spremenljivka']; // obicna spremenljivka if (is_numeric($spremenljivka)) { $spremenljivka = $spremenljivka; $vrednost = 0; $grid = 0; // multigrid } elseif ( is_numeric( str_replace('vre_', '', $spremenljivka) ) ) { $vrednost = str_replace('vre_', '', $spremenljivka); $sql2 = sisplet_query("SELECT spr_id FROM srv_vrednost WHERE id = '$vrednost'"); $row2 = mysqli_fetch_array($sql2); $spremenljivka = $row2['spr_id']; $grid = 0; // tabela besedilo, tabela stevilo } elseif (substr($spremenljivka,0,4) == 'grd_') { $e = explode('_', $spremenljivka); $vrednost = $e[1]; $grid = $e[2]; $sql2 = sisplet_query("SELECT spr_id FROM srv_vrednost WHERE id = '$vrednost'"); $row2 = mysqli_fetch_array($sql2); $spremenljivka = $row2['spr_id']; // number } elseif (substr($spremenljivka,0,4) == 'num_') { $e = explode('_', $spremenljivka); $spremenljivka = $e[1]; $grid = $e[2]; $vrednost = 0; } sisplet_query("DELETE FROM srv_condition_vre WHERE cond_id='$condition'"); sisplet_query("DELETE FROM srv_condition_grid WHERE cond_id='$condition'"); sisplet_query("UPDATE srv_condition SET spr_id='$spremenljivka', vre_id='$vrednost', grd_id='$grid' WHERE id = '$condition'"); $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->condition_editing_inner($row['if_id'], $_POST['vrednost'], $_POST['condition']); } function ajax_fill_ostanek () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $condition = $_POST['condition']; $modul = $_POST['modul']; sisplet_query("UPDATE srv_condition SET modul='$modul' WHERE id = '$condition'"); $b = new Branching($this->anketa); $b->fill_ostanek($condition); } function ajax_edit_label() { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $if = $_POST['if']; $label = strip_tags($_POST['label']); sisplet_query("UPDATE srv_if SET label='$label' WHERE id = '$if'"); } function ajax_edit_panel_status() { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $if = $_POST['if']; $panel_status = $_POST['panel_status']; // Ce je prazen ga pobrisemo iz baze if($panel_status == ''){ $sqlP = sisplet_query("DELETE FROM srv_panel_if WHERE ank_id='".$this->anketa."' AND if_id='".$if."'"); } else{ $sqlP = sisplet_query("INSERT INTO srv_panel_if (ank_id, if_id, value) VALUES ('".$this->anketa."', '".$if."', '".$panel_status."') ON DUPLICATE KEY UPDATE value='".$panel_status."'"); } } function ajax_condition_remove () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $condition = $_POST['condition']; sisplet_query("DELETE FROM srv_condition WHERE id='$condition'"); $b = new Branching($this->anketa); $b->repare_condition($_POST['if']); $b->condition_editing_inner($_POST['if'], $_POST['vrednost']); } function ajax_calculation_editing () { if ($_POST['noupdate'] != 1) { Common::updateEditStamp(); } $condition = $_POST['condition']; $vrednost = $_POST['vrednost']; $sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'"); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $calculation = $b->calculation_editing($condition, $vrednost); if ($row['vre_id'] == 0) { $s = sisplet_query("UPDATE srv_condition SET vre_id='$calculation' WHERE id='$condition'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } } function ajax_calculation_editing_close () { $condition = $_POST['condition']; $vrednost = $_POST['vrednost']; $sql = sisplet_query("SELECT if_id FROM srv_condition WHERE id = '$condition'"); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); if ($condition >= 0) $b->condition_editing($row['if_id'], $vrednost); else { $row = SurveyInfo::getInstance()->getSurveyRow(); if ($row['expanded'] == 1) { $b->vprasanje(-$condition); } else { $b->spremenljivka_name(-$condition); } } } function ajax_calculation_save () { if ($_POST['noupdate'] != 1) { Common::updateEditStamp(); } $calculation = $_POST['calculation']; $expression = $_POST['expression']; sisplet_query("UPDATE srv_calculation SET expression='$expression' WHERE id = '$calculation'"); } function ajax_calculation_add () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $condition = $_POST['condition']; $operator = $_POST['operator']; $vrednost = $_POST['vrednost']; $sql = sisplet_query("SELECT MAX(vrstni_red) AS max FROM srv_calculation WHERE cnd_id = '$condition'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['max'] + 1; $s = sisplet_query("INSERT INTO srv_calculation (id, cnd_id, operator, vrstni_red) VALUES ('', '$condition', '$operator', '$vrstni_red')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $b = new Branching($this->anketa); $b->calculation_editing_inner($condition, $vrednost); } function ajax_calculation_operator_edit () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $calculation = $_POST['calculation']; $operator = $_POST['operator']; sisplet_query("UPDATE srv_calculation SET operator='$operator' WHERE id = '$calculation'"); $sql = sisplet_query("SELECT * FROM srv_calculation WHERE id = '$calculation'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->calculation_editing_inner($row['cnd_id'], $_POST['vrednost']); } function ajax_calculation_edit () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $spremenljivka = $_POST['spremenljivka']; $calculation = $_POST['calculation']; $number = $_POST['number']; $vrednost = $_POST['vrednost']; $grd_id = 0; // obicna spremenljivka if (is_numeric($spremenljivka)) { $spr_id = $spremenljivka; $vre_id = 0; // checkbox, multigrid } elseif ( strpos($spremenljivka, 'vre_') !== false ) { $e = explode('_', $spremenljivka); list( , $vre_id, $grd_id) = $e; $sql2 = sisplet_query("SELECT spr_id FROM srv_vrednost WHERE id = '$vre_id'"); $row2 = mysqli_fetch_array($sql2); $spr_id = $row2['spr_id']; // number } elseif ( strpos($spremenljivka, 'num_') !== false ) { $e = explode('_', $spremenljivka); list( , $spr_id, $grd_id) = $e; $vre_id = 0; // multicheckbox, multinumber } else { $e = explode('_', $spremenljivka); list( , $spr_id, $vre_id, $grd_id) = $e; } if (!is_numeric($number)) $number = 0; $s = sisplet_query("UPDATE srv_calculation SET spr_id='$spr_id', vre_id='$vre_id', grd_id='$grd_id', number='$number' WHERE id = '$calculation'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $sql = sisplet_query("SELECT * FROM srv_calculation WHERE id = '$calculation'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->calculation_editing_inner($row['cnd_id'], $vrednost); } function ajax_calculation_remove () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $calculation = $_POST['calculation']; $vrednost = $_POST['vrednost']; sisplet_query("DELETE FROM srv_calculation WHERE id='$calculation'"); $b = new Branching($this->anketa); $b->repare_calculation($_POST['condition']); $b->calculation_editing_inner($_POST['condition'], $vrednost); } function ajax_calculation_bracket_edit_new () { if ($_POST['noupdate'] != 1) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); } $who = $_POST['who']; $what = $_POST['what']; $left_bracket = $_POST['left_bracket']; $calculation = $_POST['calculation']; if ($who == 'left') if ($what == 'plus') $bracket = 'left_bracket=left_bracket+1'; else $bracket = 'left_bracket=left_bracket-1'; else if ($what == 'plus') $bracket = 'right_bracket=right_bracket+1'; else $bracket = 'right_bracket=right_bracket-1'; sisplet_query("UPDATE srv_calculation SET $bracket WHERE id = '$calculation'"); $sql = sisplet_query("SELECT * FROM srv_calculation WHERE id = '$calculation'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $row = mysqli_fetch_array($sql); $b = new Branching($this->anketa); $b->calculation_editing_inner($row['cnd_id'], $_POST['vrednost']); } function ajax_condition_editing_close () { $if = $_POST['if']; $b = new Branching($this->anketa); $b->display_if_label($if); } function ajax_vrednost_condition_editing_close () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $vrednost = $_POST['vrednost']; $if = $_POST['if']; $grid = $_POST['grid']; $b = new Branching($this->anketa); if($grid == 1) { echo '*'; }else{ $b->conditions_display($if, 0, 1); } //dodamo trikotnik error na koncu if ($b->condition_check($if) != 0) echo ''; } function ajax_pagebreak ($spr = 0, $force_on = 0) { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $spremenljivka = $_POST['spremenljivka']; if ($spr > 0) $spremenljivka = $spr; $sql = sisplet_query("SELECT pagebreak FROM srv_branching WHERE element_spr = '$spremenljivka'"); $row = mysqli_fetch_array($sql); if ($row['pagebreak'] == 0 || $force_on == 1) $pagebreak = 1; else $pagebreak = 0; sisplet_query("UPDATE srv_branching SET pagebreak = '$pagebreak' WHERE element_spr = '".$spremenljivka."' AND ank_id='".$this->anketa."'"); $this->check_loop(); $b = new Branching($this->anketa); $b->repare_vrstni_red(); $b->trim_grupe(); //$this->pagebreak_display($spremenljivka); $this->spremenljivka = 0; $b->branching_struktura(); } function ajax_pagebreak_all () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); sisplet_query("UPDATE srv_branching SET pagebreak = '1' WHERE element_spr > '0' AND ank_id='".$this->anketa."'"); $b = new Branching($this->anketa); $b->repare_vrstni_red(); $b->trim_grupe(); //$this->pagebreak_display($spremenljivka); $this->spremenljivka = 0; $b->branching_struktura(); } function ajax_vprasanje_edit () { $spremenljivka = $_POST['spremenljivka']; $this->spremenljivka = $spremenljivka; $b = new Branching($this->anketa); $b->display_vprasanja(); } function ajax_refresh_left () { $b = new Branching($this->anketa); $b->spremenljivka = $this->spremenljivka; $b->branching_struktura(); } function ajax_refresh_right () { $b = new Branching($this->anketa); $b->display_vprasanja(); $b->showVprasalnikBottom(); } function ajax_get_new_spr () { $sql = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$this->anketa' ORDER BY s.id DESC LIMIT 1"); $row = mysqli_fetch_array($sql); echo $row['id']; } function ajax_if_collapsed () { Common::updateEditStamp(); $if = $_POST['if']; $collapsed = $_POST['collapsed']; sisplet_query("UPDATE srv_if SET collapsed='$collapsed' WHERE id = '$if'"); } function ajax_if_display_collapsed () { $if = $_POST['if']; $b = new Branching($this->anketa); $b->display_if_content($if); } function ajax_editmode_introconcl () { $id = $_POST['id']; $b = new Branching($this->anketa); $b->introduction_conclusion($id, 1); } function ajax_normalmode_introconcl () { $id = $_POST['id']; $b = new Branching($this->anketa); $b->introduction_conclusion($id); } function ajax_edit_introconcl () { Common::updateEditStamp(); $id = $_POST['id']; $text = $_POST['text']; $opomba = strip_tags($_POST['opomba']); if ($id == -1) { sisplet_query("UPDATE srv_anketa SET introduction='$text', intro_opomba='$opomba' WHERE id='$this->anketa'"); } elseif ($id == -2) { sisplet_query("UPDATE srv_anketa SET conclusion='$text', concl_opomba='$opomba' WHERE id='$this->anketa'"); } else{ sisplet_query("UPDATE srv_anketa SET statistics='$text' WHERE id='$this->anketa'"); } } function ajax_introconcl_visible () { Common::updateEditStamp(); $id = $_POST['id']; $row = SurveyInfo::getInstance()->getSurveyRow(); if ($id == -1) { $name = 'show_intro'; } else { $name = 'show_concl'; } $show = $row[$name]; if ($show == 1) $newshow = 0; else $newshow = 1; sisplet_query("UPDATE srv_anketa SET $name = '$newshow' WHERE id ='$this->anketa'"); SurveyInfo :: getInstance()->resetSurveyData(); $b = new Branching($this->anketa); $b->introduction_conclusion($id); } function ajax_concl_settings () { Common::updateEditStamp(); $text = $_POST['text']; $url = $_POST['url']; if ($_POST['concl_link'] == 'true') $concl_link = 0; else $concl_link = 1; if ($_POST['concl_back_button'] == 'true') $concl_back_button = 1; else $concl_back_button = 0; sisplet_query("UPDATE srv_anketa SET text='$text', url='$url', concl_link='$concl_link', concl_back_button='$concl_back_button' WHERE id = '$this->anketa'"); } function ajax_scale_ordnom () { Common::updateEditStamp(); $spremenljivka = $_POST['spremenljivka']; $value = $_POST['value']; sisplet_query("UPDATE srv_spremenljivka SET skala='$value' WHERE id='$spremenljivka'"); $b = new Branching($this->anketa); $b->vprasanje($spremenljivka); } function ajax_expand () { $mode = $_POST['mode']; $b = new Branching($this->anketa); $b->display_vprasanja($mode); } function ajax_refresh_spremenljivka_name () { $spremenljivka = $_POST['spremenljivka']; $b = new Branching($this->anketa); $b->spremenljivka_name($spremenljivka); } function ajax_prestevilci () { global $site_url; Common::updateEditStamp(); Common::getInstance()->Init($this->anketa); Common::getInstance()->prestevilci(0, true); echo $site_url.'admin/survey/index.php?anketa='.$this->anketa.'&a=branching'; } function ajax_dodaj_blok_interpretacije () { global $site_url; global $lang; Common::updateEditStamp(); // blok $this->ajax_if_new(0, 0, 0, 1); $sql = sisplet_query("SELECT element_if FROM srv_branching WHERE ank_id='$this->anketa' AND parent='0' AND element_if>0 ORDER BY vrstni_red DESC LIMIT 1"); $row = mysqli_fetch_array($sql); $if_id = $row['element_if']; // bloku nastavimo labelo sisplet_query("UPDATE srv_if SET label = '".$lang['srv_zakljucek_vprasalnika']."' WHERE id = '$if_id'"); // spremenljivka compute $this->ajax_spremenljivka_new(0, $if_id, 1); // spremenljivko nastavimo tip na compute sisplet_query("UPDATE srv_spremenljivka SET tip='22', size='1', naslov='$lang[srv_vprasanje_tip_22]', variable='sum', variable_custom='1' WHERE id = '$this->spremenljivka'"); // nastavimo page break sisplet_query("UPDATE srv_branching SET pagebreak = '1' WHERE element_spr = '".$this->spremenljivka."' AND ank_id='".$this->anketa."'"); $b = new Branching($this->anketa); $b->repare_vrstni_red(); $b->trim_grupe(); // spremenljivka label $this->ajax_spremenljivka_new(0, $if_id, 1); // spremenljivko nastavimo tip label sisplet_query("UPDATE srv_spremenljivka SET tip='5', naslov='Rezultat: #sum#' WHERE id = '$this->spremenljivka'"); } function ajax_check_pogoji() { global $lang; $b = new Branching($this->anketa); $code = $b->check_pogoji(); // ce je vse ok, preverimo se loope if ($code === true) $code = $b->check_loops(); // ce je vse ok, preverimo se validacije if ($code === true) $code = $b->check_validation(); // ce je vse ok, preverimo se imena variabel (vprasanj in variabel znotraj vprasanj) if ($code === true) $code = $b->check_variable(); // ce je vse ok, preverimo se vrednosti stolpcev v gridu (ce je slucajno kaksna prazna) if ($code === true) $code = $b->check_grid_value(); // pogoji so ok if ($code === true) { if ($_GET['izpis'] == 'long') { echo '

'.$lang['srv_check_pogoji_ok2'].'

'; echo ''; echo '

'.$lang['srv_check_pogoji_ok'].'!

'; echo '
'; echo ''; echo '
'; } else { echo '1'; } // pogoji niso ok } else { if ($_GET['izpis'] == 'long') { if ($code['type'] == 'if' || $code['type'] == 'podif') echo '

'.$lang['srv_check_pogoji_not_ok'].'

'; elseif ($code['type'] == 'loop') echo '

'.$lang['srv_loop_no_nesting'].'

'; elseif ($code['type'] == 'question_variable') echo '

'.$lang['srv_duplicate_question_variable'].'

'; elseif ($code['type'] == 'variable') echo '

'.$lang['srv_duplicate_variables'].'

'; elseif ($code['type'] == 'grid_value') echo '

'.$lang['srv_empty_grid_values'].'

'; echo ''; // napaka v ifih if ($code['type'] == 'if') { $sql = sisplet_query("SELECT id, number FROM srv_if WHERE id = '$code[id]'"); $row = mysqli_fetch_array($sql); echo '

'.$lang['srv_check_pogoji_if'].' '.$row['number'].'.

'; } // napaka v podifih, ki so nastavljeni na vrednosti spremenljivk elseif ($code['type'] == 'podif') { $sql = sisplet_query("SELECT id, naslov, variable FROM srv_spremenljivka WHERE id = '$code[id]'"); $row = mysqli_fetch_array($sql); echo '

'.$lang['srv_check_pogoji_spremenljivka'].': '.$row['variable'].' - '.strip_tags($row['naslov']).'

'; } // napaka z gnezdenjem loopov elseif ($code['type'] == 'loop') { $sql = sisplet_query("SELECT id, number FROM srv_if WHERE id = '$code[id]'"); $row = mysqli_fetch_array($sql); echo '

'.$lang['srv_check_pogoji_loop'].' '.$row['number'].'

'; } elseif ($code['type'] == 'validation') { $sql = sisplet_query("SELECT id, naslov, variable FROM srv_spremenljivka WHERE id = '$code[id]'"); $row = mysqli_fetch_array($sql); echo '

'.$lang['srv_check_validacija'].': '.$row['variable'].' - '.strip_tags($row['naslov']).'

'; } // napaka z imeni variabel elseif ($code['type'] == 'variable') { foreach ($code['vars'] AS $var) { echo ''.$var.'
'; }; } // napaka z vrednostmi v gridu elseif ($code['type'] == 'grid_value') { foreach ($code['vars'] AS $var) { echo ''.$var.'
'; }; } // error code echo '

'; if ($code['code'] == 1) { echo ' '.$lang['srv_error_oklepaji'].''; } elseif ($code['code'] == 2) { echo ' '.$lang['srv_error_spremenljivka'].''; } elseif ($code['code'] == 3) { echo ' '.$lang['srv_error_vrednost'].''; } elseif ($code['code'] == 4) { echo ' '.$lang['srv_error_numericno'].''; } elseif ($code['code'] == 5) { echo ' '.$lang['srv_error_calculation'].''; } elseif ($code['code'] == 6) { echo ' '.$lang['srv_error_loop'].''; } echo '

'; echo '
'; echo ''; echo '
'; } else { echo '

'.$lang['srv_check_pogoji_not_ok'].'

'; echo ''; echo '

'.$lang['srv_check_pogoji_not_ok_txt'].'

'; echo '
'; echo ''; echo '
'; } } } /** * alert, da se naj zapira bloke (shranimo da se ne prikazuje vec) * */ function ajax_alert_close_block () { global $lang; SurveySetting::getInstance()->Init($this->anketa); $show_alert = SurveySetting::getInstance()->getSurveyMiscSetting('alert_close_block'); if($show_alert != '2'){ echo '

'.$lang['alert_close_block_title'].'

'; echo $lang['alert_close_block']; echo '
'; echo ''; echo '
'; /* echo ''; echo ''.$lang['srv_zapri'].''; echo ''; */ SurveySetting::getInstance()->setSurveyMiscSetting('alert_close_block', '2'); } else{ return false; } } /** * spremeni nastavitve toolboxa ali nacina prikaza ankete * */ function ajax_change_mode () { Common::updateEditStamp(); $what = $_REQUEST['what']; $value = $_REQUEST['value']; $row = SurveyInfo::getInstance()->getSurveyRow(); if ($what == 'expanded') { $s = sisplet_query("UPDATE srv_anketa SET expanded = '$value' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($what == 'flat') { $s = sisplet_query("UPDATE srv_anketa SET flat = '$value' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($what == 'toolbox') { if ($value == 1) { // basic nacin $s = sisplet_query("UPDATE srv_anketa SET toolbox = '$value', expanded = '1', flat = '1' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($value == 2) { // advanced nacin $s = sisplet_query("UPDATE srv_anketa SET toolbox = '$value', expanded = '0', flat = '0' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($value == 3 || $value == 4) { // knjiznica (3 in 4 da se ve za nazaj na 1 ali 2) $s = sisplet_query("UPDATE srv_anketa SET toolbox = '$value' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } //else die(); } elseif ($what == 'toolboxback') { // iz knjiznice nazaj v obicno urejanje $s = sisplet_query("UPDATE srv_anketa SET toolbox = '$value' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($what == 'popup') { $s = sisplet_query("UPDATE srv_anketa SET popup = '$value' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } elseif ($what == 'form_settings_obvescanje'){ SurveySetting::getInstance()->setSurveyMiscSetting('srvtoolbox_form_alert', $value); } elseif ($what == 'form_settings_vabila'){ SurveySetting::getInstance()->setSurveyMiscSetting('srvtoolbox_form_email', $value); } SurveyInfo::getInstance()->resetSurveyData(); } /** * spreminjanje hitrih nastavitev * */ function ajax_edit_quick_settings () { Common::updateEditStamp(); $what = $_POST['what']; $results = $_POST['results']; $status1 = $_POST['status1']; if($what == 'finish_author' || $what == 'finish_respondent_cms' || $what == 'finish_respondent' || $what == 'finish_other' | $what == 'finish_other_emails') { sisplet_query("INSERT INTO srv_alert (ank_id, $what) VALUES ('$this->anketa', '$results') ON DUPLICATE KEY UPDATE $what = '$results' "); } else{ sisplet_query("UPDATE srv_anketa SET $what = '$results' WHERE id = '$this->anketa'"); } $b = new Branching($this->anketa); $b->toolbox_settings($status1); } /** * @desc funkcije, ki pohendla komentarje ankete in vprasanj (kreira novo temo, ce se ni itd...) * */ function ajax_comment_manage ($t = false, $s = false, $v = false, $o = false) { global $site_path; global $site_url; global $lang; global $global_user_id; global $admin_type; /** * $type : 0 - komentar na anketo * 1 - komentar na vprasanje * 2 - komentar respondentov na vprasanje * 4 - komentar respondentov na anketo * 5 - komentar na if * 6 - komentar na blok * * $view : 0 - izpise se samo field za dodajanje komentarja (komentarjev se ne da brati) * 1 - izpisejo se tudi ze vneseni komentarji * 3 - izpis komentarjev v urejanju vprasanja tabu 'Komentarji' * 4 - izpis komentarjev v zgornjem zavihku Komentarji * 5 - izpis komentarjev v zgornjem zavihku Komentarji - za respondente */ $spremenljivka = !$s ? $_REQUEST['spremenljivka'] : $s; $type = !$t ? $_REQUEST['type'] : $t; $view = $_REQUEST['view']; SurveySetting::getInstance()->Init($this->anketa); $sortpostorder = SurveySetting::getInstance()->getSurveyMiscSetting('sortpostorder'); $addfieldposition = SurveySetting::getInstance()->getSurveyMiscSetting('addfieldposition'); $survey_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment_viewadminonly'); $survey_comment_viewauthor = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment_viewauthor'); $question_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewadminonly'); $question_comment_viewauthor = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewauthor'); $commentmarks = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks'); $commentmarks_who = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks_who'); $comment_history = SurveySetting::getInstance()->getSurveyMiscSetting('comment_history'); $survey_comment_viewadminonly_resp = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment_viewadminonly_resp'); $survey_comment_viewauthor_resp = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment_viewauthor_resp'); //$question_resp_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_resp_comment_viewadminonly'); $f = new Forum; $rowi = SurveyInfo::getInstance()->getSurveyRow(); // vprasanje (1) in en oblacek za celo anketo (0) if ($type == 1 or $type == 0) { // okvir, da se lahko refresha pri oddaji novega komentarja if ($_REQUEST['refresh'] != '1') echo '
'; $vsebina = !$v ? $_REQUEST['vsebina'] : $v; if ($spremenljivka > 0) { // komentar na spremenljivko $rows = Cache::srv_spremenljivka($spremenljivka); if ($rows['thread'] > 0) $tid = $rows['thread']; } elseif ($spremenljivka == -1) { // komentar na uvod $tid = $rowi['thread_intro']; $rows['naslov'] = $lang['srv_intro_label']; } elseif ($spremenljivka == -2) { // komentar na zakljucek $tid = $rowi['thread_concl']; $rows['naslov'] = $lang['srv_end_label']; } else { // komeentar na anketo $tid = $rowi['thread']; $rows['naslov'] = $rowi['naslov']; } // poslali smo vsebino, ki jo shranimo v forum if ($vsebina != '') { Common::updateEditStamp(); if ($rowi['forum'] == 0) { $rowi['forum'] = $this->comment_create_forum(); } $f->currentForum = $rowi['forum']; if ($tid == 0) { if ($type == 1) $vsebina_post = $lang['srv_forum_intro'].strip_tags($rows['naslov']).'

'.$lang['srv_forum_back'].''; else $vsebina_post = $lang['srv_forum_srv_intro'].strip_tags($rows['naslov']).'

'.$lang['srv_forum_back'].''; $tid = $f->addPost($global_user_id, strip_tags($rows['naslov']), $vsebina_post, 0, 0, 0, false); if ($spremenljivka > 0) $sql = sisplet_query("UPDATE srv_spremenljivka SET thread = '$tid' WHERE id = '$spremenljivka'"); elseif ($spremenljivka == -1) $sql = sisplet_query("UPDATE srv_anketa SET thread_intro = '$tid' WHERE id = '$this->anketa'"); elseif ($spremenljivka == -2) $sql = sisplet_query("UPDATE srv_anketa SET thread_concl = '$tid' WHERE id = '$this->anketa'"); else $sql = sisplet_query("UPDATE srv_anketa SET thread = '$tid' WHERE id = '$this->anketa'"); // vsilimo refresh podatkov SurveyInfo :: getInstance()->resetSurveyData(); } $f->currentThread = $tid; $_id = $f->addPost($global_user_id, strip_tags($rows['naslov']), nl2br($vsebina), 0, 0, 0, false); if ($o !== false) sisplet_query("UPDATE post SET ocena = '$o' WHERE id = '$_id'"); } // prikazemo komentarje, ce le-ti obstajajo if ($tid != 0 && ($view == 1 || $view == 3)) { $orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ; $tema_vsebuje = substr($lang['srv_forum_intro'],0,10); // da ne prikazujemo 1. default sporocila if ($admin_type <= $question_comment_viewadminonly) { // vidi vse komentarje $sql = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' ORDER BY time $orderby, id $orderby"); } elseif (($type==0 && $survey_comment_viewauthor==1) || ($type==1 && $question_comment_viewauthor==1)) { // vidi samo svoje komentarje $sql = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' AND uid='$global_user_id' ORDER BY time $orderby, id $orderby"); } else { // ne vidi nobenih komentarjev $sql = sisplet_query("SELECT * FROM post WHERE 1=0"); } /*/ textarea za oddat komentar - zgoraj if ($addfieldposition == 1) { $this->add_comment_field($spremenljivka, $type, $view); echo '

'; }*/ // textarea za oddat komentar - spodaj if ($addfieldposition == 0 || $addfieldposition == '') { echo '
'; $this->add_comment_field($spremenljivka, $type, $view, true, false); echo '
'; } } else { //$this->add_comment_field($spremenljivka, $type, $view); } if ($_REQUEST['refresh'] != '1' || $view==3) echo '
'; } // komentarji na if ali blok elseif ($type == 5 || $type == 6){ // okvir, da se lahko refresha pri oddaji novega komentarja if ($_REQUEST['refresh'] != '1') echo '
'; $vsebina = !$v ? $_REQUEST['vsebina'] : $v; $rows = Cache::srv_if($spremenljivka); if ($rows['thread'] > 0) $tid = $rows['thread']; // poslali smo vsebino, ki jo shranimo v forum if ($vsebina != '') { Common::updateEditStamp(); if ($row['forum'] == 0) { $row['forum'] = $this->comment_create_forum(); } $f->currentForum = $row['forum']; if ($tid == 0) { if ($type == 5) $vsebina_post = $lang['srv_forum_intro_if'].strip_tags($rows['naslov']).'

'.$lang['srv_forum_back'].''; else $vsebina_post = $lang['srv_forum_intro_blok'].strip_tags($rows['naslov']).'

'.$lang['srv_forum_back'].''; $tid = $f->addPost($global_user_id, strip_tags($rows['naslov']), $vsebina_post, 0, 0, 0, false); $sql = sisplet_query("UPDATE srv_if SET thread = '$tid' WHERE id = '$spremenljivka'"); // vsilimo refresh podatkov SurveyInfo :: getInstance()->resetSurveyData(); } $f->currentThread = $tid; $_id = $f->addPost($global_user_id, strip_tags($rows['naslov']), nl2br($vsebina), 0, 0, 0, false); if ($o !== false) sisplet_query("UPDATE post SET ocena = '$o' WHERE id = '$_id'"); } // prikazemo komentarje, ce le-ti obstajajo if ($tid != 0 && ($view == 1 || $view == 3)) { $orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ; $tema_vsebuje = substr($lang['srv_forum_intro'],0,10); // da ne prikazujemo 1. default sporocila if ($admin_type <= $question_comment_viewadminonly) { // vidi vse komentarje $sql = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' ORDER BY time $orderby, id $orderby"); } elseif ($survey_comment_viewauthor==1 || $question_comment_viewauthor==1) { // vidi samo svoje komentarje $sql = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' AND uid='$global_user_id' ORDER BY time $orderby, id $orderby"); } else { // ne vidi nobenih komentarjev $sql = sisplet_query("SELECT * FROM post WHERE 1=0"); } if (mysqli_num_rows($sql) > 0) { if ($view == 1) { //echo ''.$lang['srv_forum_go'].''; $rows = mysqli_num_rows($sql); if ($rows > 0) echo ''; echo '

'; } elseif ($view == 3) { echo '
'; echo '

'.$lang['comments'].''; $rows = mysqli_num_rows($sql); if ($rows > 0) echo ''; echo '

'; } } // textarea za oddat komentar - zgoraj if ($addfieldposition == 1) { $this->add_comment_field($spremenljivka, $type, $view); echo '

'; } if (mysqli_num_rows($sql) > 0) { $i = 0; $rows = mysqli_num_rows($sql); while ($row = mysqli_fetch_array($sql)) { // Prikazemo zgodovino glede na nastavitev if($comment_history == '2' || (($comment_history == '0' || $comment_history == '') && $row['uid'] == $global_user_id)){ if ($row['ocena'] == 0) echo ''; elseif ($row['ocena'] == 1) echo ''; elseif ($row['ocena'] == 2) echo ''; elseif ($row['ocena'] == 3) echo ''; else echo ''; echo ''.$f->user($row['uid']).' ('.$f->datetime1($row['time']).'):'; if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) { echo '
'; if ($commentmarks == 1) { echo ' '; } else { echo '= 2?' checked':'').' />'; } //echo '
'.$lang['srv_comment_comment'].''; echo '
'; } echo '
'.$row['vsebina'].'
'; echo '
'; } //} $i++; // Nastavimo oglede foruma in teme if ($global_user_id > 0) { $sqla2 = sisplet_query("SELECT time FROM views WHERE pid='" .$row['id'] ."' AND uid='$global_user_id'"); if (mysqli_num_rows($sqla2) > 0) { $sqla3 = sisplet_query("UPDATE views SET time=NOW() WHERE pid='" .$row['id'] ."' AND uid='$global_user_id'"); } else { $sqla3 = sisplet_query("INSERT INTO views (pid, uid, time) VALUES ('" .$row['id'] ."', '$global_user_id', NOW())"); } } } } // textarea za oddat komentar - spodaj if ($addfieldposition == 0 || $addfieldposition == '') { echo '
'; $this->add_comment_field($spremenljivka, $type, $view); } } else { $this->add_comment_field($spremenljivka, $type, $view); } if ($_REQUEST['refresh'] != '1' || $view==3) echo '
'; } // komentarji respondentov elseif ($type == 2) { $db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); $orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ; $sql = sisplet_query("SELECT d.*, u.time_edit FROM srv_data_text".$db_table." d, srv_user u WHERE d.spr_id='0' AND d.vre_id='$spremenljivka' AND u.id=d.usr_id ORDER BY d.id $orderby"); if (mysqli_num_rows($sql) > 0) echo ''; while ($row = mysqli_fetch_array($sql)) { if ($row['text2'] == 0) echo ''; elseif ($row['text2'] == 1) echo ''; elseif ($row['text2'] == 2) echo ''; elseif ($row['text2'] == 3) echo ''; else echo ''; echo $f->datetime1($row['time_edit']).':'; if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) { echo '
'; if ($commentmarks == 1) { echo ' '; } else { echo '= 2?' checked':'').' />'; } echo '
'; } echo '
'.nl2br($row['text']).'
'; echo '
'; } } // komentarji respondentov za celo anketo elseif($type == 4){ // okvir, da se lahko refresha pri oddaji novega komentarja if ($_REQUEST['refresh'] != '1') echo '
'; $vsebina = !$v ? $_REQUEST['vsebina'] : $v; // poslali smo vsebino, ki jo shranimo if ($vsebina != '') { $ocena = ($o !== false) ? $o : 0; $sql = sisplet_query("INSERT INTO srv_comment_resp (ank_id, usr_id, comment, comment_time, ocena) VALUES ('$this->anketa', '$global_user_id', '$vsebina', NOW(), '$ocena')"); } // prikazemo komentarje, ce le-ti obstajajo $sql = sisplet_query("SELECT id FROM srv_comment_resp WHERE ank_id='".$this->anketa."' ORDER BY comment_time $orderby"); if (mysqli_num_rows($sql) > 0 && ($view == 1 || $view == 3)) { $orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ; if ($admin_type <= $survey_comment_viewadminonly_resp) { // vidi vse komentarje $sql = sisplet_query("SELECT * FROM srv_comment_resp WHERE ank_id='".$this->anketa."' ORDER BY comment_time $orderby, id $orderby"); } elseif ($survey_comment_viewauthor_resp == 1) { // vidi samo svoje komentarje $sql = sisplet_query("SELECT * FROM srv_comment_resp WHERE ank_id='".$this->anketa."' AND usr_id='$global_user_id' ORDER BY comment_time $orderby, id $orderby"); } else { // ne vidi nobenih komentarjev $sql = sisplet_query("SELECT * FROM srv_comment_resp WHERE 1=0"); } if (mysqli_num_rows($sql) > 0) { if ($view == 1) { $rows = mysqli_num_rows($sql); if ($rows > 0) echo ''; echo '

'; } elseif ($view == 3) { echo '
'; echo '

'.$lang['comments'].''; $rows = mysqli_num_rows($sql); if ($rows > 0) echo ''; echo '

'; } } // textarea za oddat komentar - zgoraj if ($addfieldposition == 1) { $this->add_comment_field($spremenljivka, $type, $view); echo '

'; } if (mysqli_num_rows($sql) > 0) { $rows = mysqli_num_rows($sql); while ($row = mysqli_fetch_array($sql)) { // Prikazemo zgodovino glede na nastavitev if($comment_history == '2' || (($comment_history == '0' || $comment_history == '') && $row['usr_id'] == $global_user_id && $global_user_id != 0)){ if ($row['ocena'] == 0) echo ''; elseif ($row['ocena'] == 1) echo ''; elseif ($row['ocena'] == 2) echo ''; elseif ($row['ocena'] == 3) echo ''; else echo ''; $datetime = strtotime($row['comment_time']); $datetime = date("d.m G:i", $datetime); if($row['usr_id'] == 0){ $user = $lang['guest']; } else{ $sqlU = sisplet_query("SELECT name FROM users WHERE id='$row[usr_id]'"); $rowU = mysqli_fetch_array($sqlU); $user = $rowU['name']; } echo ''.$user.' ('.$datetime.'):'; if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) { // Zaenkrat ni ocen ce respondent komentira pri resevanju /*echo '
'; if ($commentmarks == 1) { echo ' '; } else { echo '= 2?' checked':'').' />'; } echo '
';*/ } echo '
'.$row['comment'].'
'; echo '
'; } } } // textarea za oddat komentar - spodaj if ($addfieldposition == 0 || $addfieldposition == '') { echo '
'; $this->add_comment_field($spremenljivka, $type, $view); } } else { $this->add_comment_field($spremenljivka, $type, $view); } if ($_REQUEST['refresh'] != '1' || $view==3) echo '
'; } } function add_comment_field ($spremenljivka, $type, $view, $form=true, $buttons=true) { global $admin_type; global $global_user_id; global $lang; global $site_url; $rowanketa = SurveyInfo::getInstance()->getSurveyRow(); $tip_lang = ''; if ($type == 1 && $view == 4) //splošen komentar na strani testiranje $tip_lang = 'S'; if ($type == 0 && $view == 1) //splošen komentar v dropdownu $tip_lang = 'S'; if ($spremenljivka != 0) //komentar na vprašanja $tip_lang = 'Q'; if ($type == 5) //komentar na pogoj $tip_lang = 'IF'; elseif ($type == 6) //komentar na blok $tip_lang = 'B'; echo ''; if ($buttons) { echo '
'; if($_GET['a'] == 'comment_manage') echo ' '; else echo ' '; echo ' '; echo '
'; } } /** * @desc kreira nov forum za komentiranje ankete */ function comment_create_forum() { global $site_path; global $site_url; global $lang; global $global_user_id; Common::updateEditStamp(); $sql = sisplet_query("SELECT * FROM misc WHERE what = 'SurveyForum'"); $row = mysqli_fetch_array($sql); $parent = $row['value']; $sqlp = sisplet_query("SELECT * FROM forum WHERE id='$parent'"); $rowp = mysqli_fetch_array($sqlp); $row = SurveyInfo::getInstance()->getSurveyRow(); $sql = sisplet_query("INSERT INTO forum (parent, ord, naslov, opis, user, clan, admin) VALUES ('$parent', '2132154', '$row[naslov]', '', '$rowp[user]', '$rowp[clan]', '$rowp[admin]')"); $id = mysqli_insert_id($GLOBALS['connect_db']); $sql = sisplet_query("UPDATE srv_anketa SET forum='$id' WHERE id = '$this->anketa'"); // vsilimo refresh podatkov SurveyInfo :: getInstance()->resetSurveyData(); return $id; } function ajax_preview_spremenljivka () { include_once('../../main/survey/app/global_function.php'); new \App\Controllers\SurveyController(true); if(isset($_POST['spremenljivka'])){ $spremenljivka = $_POST['spremenljivka']; save('forceShowSpremenljivka', true); \App\Controllers\Vprasanja\VprasanjaController::getInstance()->displaySpremenljivka($spremenljivka); } } function ajax_calculation_edit_variable () { Common::updateEditStamp(); $variable = $_POST['variable']; // preverimo, da ni se kje drugje v anekti tako ime spremenljivke $sqlv = sisplet_query("SELECT s.variable FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$this->anketa'"); $ok = true; while ($rowv = mysqli_fetch_array($sqlv)) { if ($rowv['variable'] == $variable) $ok = false; } // Ce se ime ze pojavi v anketi mu dodamo stevilko if(!$ok){ $ok = false; $i = 2; while(!$ok){ $ok = true; $variable = $_POST['variable'].'_'.$i; $sqlv = sisplet_query("SELECT s.variable, s.id as id FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$this->anketa'"); while ($rowv = mysqli_fetch_array($sqlv)) { if ($rowv['variable'] == $variable && $this->spremenljivka != $rowv['id']){ $ok = false; $i++; } } } } sisplet_query("UPDATE srv_spremenljivka SET variable='$variable', variable_custom='1' WHERE id='$this->spremenljivka'"); } function ajax_calculation_edit_decimalna () { Common::updateEditStamp(); $decimalna = $_POST['decimalna']; sisplet_query("UPDATE srv_spremenljivka SET decimalna='$decimalna' WHERE id='$this->spremenljivka'"); } function ajax_calculation_edit_missing () { Common::updateEditStamp(); if(isset($_POST['spremenljivka']) && isset($_POST['missing'])){ $spremenljivka = $_POST['spremenljivka']; $missing = $_POST['missing']; $row = Cache::srv_spremenljivka($spremenljivka); $newParams = new enkaParameters($row['params']); $newParams->set('calcMissing', $missing); $params = $newParams->getString(); $sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spremenljivka'"); } } function ajax_fill_value_loop () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $spremenljivka = $_POST['spremenljivka']; $row = Cache::srv_spremenljivka($spremenljivka); // obicna spremenljivka if (is_numeric($spremenljivka)) { $spremenljivka = $spremenljivka; $vrednost = 0; // multigrid } /*else { $vrednost = str_replace('vre_', '', $spremenljivka); $sql2 = sisplet_query("SELECT * FROM srv_vrednost WHERE id = '$vrednost'"); $row2 = mysqli_fetch_array($sql2); $spremenljivka = $row2['spr_id']; }*/ sisplet_query("REPLACE INTO srv_loop (if_id, spr_id) VALUES ('$if', '$spremenljivka')"); // na zacetku damo po defaultu na 'izbran' $s = sisplet_query("DELETE FROM srv_loop_vre WHERE if_id = '$if'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("DELETE FROM srv_loop_data WHERE if_id = '$if'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); // pri numberju nafilamo 20 opcij - omogocali bomo max 20 zank po numberju if ($row['tip'] == 7) { $s = sisplet_query("INSERT INTO srv_loop_vre (if_id, vre_id) VALUES ('$if', NULL)"); for ($i=0; $i<20; $i++) { $s = sisplet_query("INSERT INTO srv_loop_data (id, if_id, vre_id) VALUES ('', '$if', NULL)"); } // pri ostalih se nafila vse ki so v srv_vrednost } else { $sql2 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='$spremenljivka' ORDER BY vrstni_red ASC"); while ($row2 = mysqli_fetch_array($sql2)) { $vrednost = $row2['id']; if ($vrednost > 0) { $s = sisplet_query("INSERT INTO srv_loop_vre (if_id, vre_id) VALUES ('$if', '$vrednost')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("INSERT INTO srv_loop_data (id, if_id, vre_id) VALUES ('', '$if', '$vrednost')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } } } $b = new Branching($this->anketa); $b->condition_editing($if); } function ajax_loop_edit () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $vrednost = $_POST['vrednost']; $s = sisplet_query("DELETE FROM srv_loop_vre WHERE if_id = '$if' ".(count($vrednost)>0?"AND vre_id NOT IN (".implode(',', $vrednost).")":"").""); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("DELETE FROM srv_loop_data WHERE if_id = '$if' ".(count($vrednost)>0?"AND vre_id NOT IN (".implode(',', $vrednost).")":"").""); if (!$s) echo mysqli_error($GLOBALS['connect_db']); if ($vrednost != null) foreach ($vrednost AS $val) if ($val > 0) { $sql = sisplet_query("SELECT * FROM srv_loop_vre WHERE if_id='$if' AND vre_id='$val'"); if (mysqli_num_rows($sql) == 0) { $s = sisplet_query("INSERT INTO srv_loop_vre (if_id, vre_id) VALUES ('$if', '$val')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } $sql = sisplet_query("SELECT * FROM srv_loop_data WHERE if_id='$if' AND vre_id='$val'"); if (mysqli_num_rows($sql) == 0) { $s = sisplet_query("INSERT INTO srv_loop_data (id, if_id, vre_id) VALUES ('', '$if', '$val')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } } $b = new Branching($this->anketa); $b->condition_editing($if); } function ajax_loop_edit_advanced () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $vrednost = $_POST['vrednost']; $sql = sisplet_query("SELECT spr_id FROM srv_loop WHERE if_id='$if'"); $row = mysqli_fetch_array($sql); // ko postnemo izbrane vrednosti, so podani vrstni_red in ne ID, ker JS zapolni cel array s praznimi vrednostmi do izbranega IDja (ki pa so lahko zelo veliki in je zato zelooo velik array) $vre = array(); $sql = sisplet_query("SELECT id, vrstni_red FROM srv_vrednost WHERE spr_id='$row[spr_id]' ORDER BY vrstni_red ASC"); while ($row = mysqli_fetch_array($sql)) { $vre[$row['vrstni_red']] = $row['id']; } $delete = array(); foreach ($vrednost AS $key => $val) { if ($val != 'undefined' && $val < 3) { // 3 pomeni nikoli in tega ne shranimo v bazo $delete[] = $vre[$key]; } } $s = sisplet_query("DELETE FROM srv_loop_vre WHERE if_id = '$if' ".(count($delete)>0?"AND vre_id NOT IN (".implode(',', $delete).")":"").""); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("DELETE FROM srv_loop_data WHERE if_id = '$if' ".(count($delete)>0?"AND vre_id NOT IN (".implode(',', $delete).")":"").""); if (!$s) echo mysqli_error($GLOBALS['connect_db']); foreach ($vrednost AS $key => $val) { if ($val != 'undefined' && $val < 3) { // 3 pomeni nikoli in tega ne shranimo v bazo //echo $vre[$key].': '.$val."\n"; $sql = sisplet_query("SELECT * FROM srv_loop_vre WHERE if_id='$if' AND vre_id='$vre[$key]'"); if (mysqli_num_rows($sql) == 0) { $s = sisplet_query("INSERT INTO srv_loop_vre (if_id, vre_id, tip) VALUES ('$if', '$vre[$key]', '$val')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } else { $s = sisplet_query("UPDATE srv_loop_vre SET tip='$val' WHERE if_id='$if' AND vre_id='$vre[$key]'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } $sql = sisplet_query("SELECT * FROM srv_loop_data WHERE if_id='$if' AND vre_id='$vre[$key]'"); if (mysqli_num_rows($sql) == 0) { $s = sisplet_query("INSERT INTO srv_loop_data (id, if_id, vre_id) VALUES ('', '$if', '$vre[$key]')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } } } $b = new Branching($this->anketa); $b->condition_editing($if); } function ajax_loop_edit_max () { Common::updateEditStamp(); $max = $_POST['max']; $if = $_POST['if']; $s = sisplet_query("UPDATE srv_loop SET max='$max' WHERE if_id = '$if'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } /** * preveri, ce so loopi v redu postavljeni * */ function check_loop () { // preverimo za loope, ce so in ce so ok postavljeni $b = new Branching($this->anketa); $b->check_loop(); } /** * zakleni / odkleni anketo * */ function ajax_anketa_lock () { Common::updateEditStamp(); $locked = $_POST['locked']; //mobile created nastavi na 0, ce je slucajno prej 1 (zaradi mobilne aplikacije) $s = sisplet_query("UPDATE srv_anketa SET locked = '$locked', mobile_created = '0' WHERE id = '$this->anketa'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); echo 'index.php?anketa='.$this->anketa.'&a=branching'; } function ajax_condition_sort() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $sortable = $_POST['sortable']; $sortable = explode('&', $sortable); $i=1; foreach ($sortable AS $cond) { $condition = explode('=', $cond); $condition = $condition[1]; $s = sisplet_query("UPDATE srv_condition SET vrstni_red='{$i}' WHERE id='{$condition}'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $i++; } $b = new Branching($this->anketa); $b->repare_condition($if); $b->condition_editing_inner($if); } function ajax_calculation_sort() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $condition = $_POST['condition']; $sortable = $_POST['sortable']; $sortable = explode('&', $sortable); $i=1; foreach ($sortable AS $calc) { $calculation = explode('=', $calc); $calculation = $calculation[1]; $s = sisplet_query("UPDATE srv_calculation SET vrstni_red='{$i}' WHERE id='{$calculation}'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $i++; } $b = new Branching($this->anketa); $b->repare_condition($if); $b->calculation_editing_inner($condition); } function ajax_quota_sort() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $condition = $_POST['condition']; $sortable = $_POST['sortable']; $sortable = explode('&', $sortable); $i=1; foreach ($sortable AS $val) { $quota = explode('=', $val); $quota = $quota[1]; $s = sisplet_query("UPDATE srv_quota SET vrstni_red='{$i}' WHERE id='{$quota}'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $i++; } $b = new Branching($this->anketa); $b->repare_condition($if); //$b->calculation_editing_inner($condition); } function ajax_spremenljivka_preview_print() { global $lang; ?> CMS '; echo ''; echo '
'; include_once('../../main/survey/app/global_function.php'); new \App\Controllers\SurveyController(true); echo '
'; if ( $_GET['spremenljivka'] == -1 ) { \App\Controllers\BodyController::getInstance()->displayIntroduction(); } elseif ( $_GET['spremenljivka'] == -2 ) { \App\Controllers\BodyController::getInstance()->displayKonec(); } elseif ( $_GET['spremenljivka'] == -3 ) { \App\Controllers\StatisticController::displayStatistika(); } else { save('forceShowSpremenljivka', true); \App\Controllers\Vprasanja\VprasanjaController::getInstance()->displaySpremenljivka($_GET['spremenljivka']); } ?> anketa); $b->toolbox_add_advanced($popup=true); } function ajax_toggle_toolbox () { $b = new Branching($this->anketa); $b->toogle_toolbox_nastavitve(); } function ajax_if_edit_enabled () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $enabled = $_POST['enabled']; sisplet_query("UPDATE srv_if SET enabled = '$enabled' WHERE id = '$if'"); } function ajax_vprasanje_full () { $b = new Branching($this->anketa); if ($this->spremenljivka > 0) { $b->vprasanje($this->spremenljivka); } else { $b->introduction_conclusion($this->spremenljivka); } } function ajax_find_replace() { global $lang; echo ''; echo '

'.$lang['srv_find_replace'].'

'; echo '

'.$lang['srv_find_text'].'

'; echo '
'; echo '

'.$lang['srv_find'].':

'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo '
'; echo '

'.$lang['srv_replace_with'].':

'; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; } function ajax_find_replace_count() { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $find = $_POST['find']; $replace = $find.'foo'; // more bit drugacen od $find da mysql_affected_rows prime if ($find == '') return; $count = 0; sisplet_query("BEGIN"); $s = sisplet_query("UPDATE srv_anketa SET naslov = REPLACE(naslov, '$find', '$replace'), akronim = REPLACE(akronim, '$find', '$replace'), introduction = REPLACE(introduction, '$find', '$replace'), conclusion = REPLACE(conclusion, '$find', '$replace'), intro_opomba = REPLACE(intro_opomba, '$find', '$replace'), intro_note = REPLACE(intro_note, '$find', '$replace'), concl_note = REPLACE(concl_note, '$find', '$replace') WHERE id = '$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $count += mysqli_affected_rows($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_spremenljivka s, srv_grupa g SET s.naslov = REPLACE(s.naslov, '$find', '$replace'), s.info = REPLACE(s.info, '$find', '$replace'), s.naslov_graf = REPLACE(s.naslov_graf, '$find', '$replace') WHERE s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $count += mysqli_affected_rows($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_vrednost v, srv_spremenljivka s, srv_grupa g SET v.naslov = REPLACE(v.naslov, '$find', '$replace'), v.naslov2 = REPLACE(v.naslov2, '$find', '$replace'), v.naslov_graf = REPLACE(v.naslov_graf, '$find', '$replace') WHERE v.spr_id=s.id AND s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $count += mysqli_affected_rows($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_grid gr, srv_spremenljivka s, srv_grupa g SET gr.naslov = REPLACE(gr.naslov, '$find', '$replace'), gr.naslov_graf = REPLACE(gr.naslov_graf, '$find', '$replace') WHERE gr.spr_id=s.id AND s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $count += mysqli_affected_rows($GLOBALS['connect_db']); sisplet_query("ROLLBACK"); echo $lang['srv_find_replace_count'].': '.$count; } function ajax_find_replace_do () { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $find = $_POST['find']; $replace = $_POST['replace']; if ($find == '' || $replace == '') return; $s = sisplet_query("UPDATE srv_anketa SET naslov = REPLACE(naslov, '$find', '$replace'), akronim = REPLACE(akronim, '$find', '$replace'), introduction = REPLACE(introduction, '$find', '$replace'), conclusion = REPLACE(conclusion, '$find', '$replace'), intro_opomba = REPLACE(intro_opomba, '$find', '$replace'), intro_note = REPLACE(intro_note, '$find', '$replace'), concl_note = REPLACE(concl_note, '$find', '$replace') WHERE id = '$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_spremenljivka s, srv_grupa g SET s.naslov = REPLACE(s.naslov, '$find', '$replace'), s.info = REPLACE(s.info, '$find', '$replace'), s.naslov_graf = REPLACE(s.naslov_graf, '$find', '$replace') WHERE s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_vrednost v, srv_spremenljivka s, srv_grupa g SET v.naslov = REPLACE(v.naslov, '$find', '$replace'), v.naslov2 = REPLACE(v.naslov2, '$find', '$replace'), v.naslov_graf = REPLACE(v.naslov_graf, '$find', '$replace') WHERE v.spr_id=s.id AND s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("UPDATE srv_grid gr, srv_spremenljivka s, srv_grupa g SET gr.naslov = REPLACE(gr.naslov, '$find', '$replace'), gr.naslov_graf = REPLACE(gr.naslov_graf, '$find', '$replace') WHERE gr.spr_id=s.id AND s.gru_id=g.id AND g.ank_id='$this->anketa' "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } function ajax_SN_generator_new ($spremenljivka = null, $endif = null) { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if ($spremenljivka == null) $spremenljivka = $_POST['spremenljivka']; if ($endif == null) $endif = $_POST['endif']; $tip = 9; $b = new Branching($this->anketa); $this->spremenljivka_new($spremenljivka, 0, $endif, 0, 2); Vprasanje::change_tip($this->spremenljivka, $tip); $gen_id = $this->spremenljivka; // USTVARIMO PAGEBREAK sisplet_query("UPDATE srv_branching SET pagebreak = '1' WHERE element_spr = '$this->spremenljivka' AND ank_id='".$this->anketa."'"); // USTVARIMO NAGOVOR $this->spremenljivka_new($gen_id, 0, 0, 0, 0); Vprasanje::change_tip($this->spremenljivka, 5); // nastavimo text nagovora $row = Cache::srv_spremenljivka($gen_id); $naslov = $lang['srv_SN_nagovor_title'].'#'.$row['variable'].'#'; $purifier = New Purifier(); $naslov = $purifier->purify_DB($naslov); sisplet_query("UPDATE srv_spremenljivka SET naslov = '$naslov' WHERE id = '$this->spremenljivka'"); // USTVARIMO LOOP NA NAGOVORU $sqln = sisplet_query("SELECT MAX(i.number) AS number FROM srv_if i, srv_branching b WHERE b.ank_id='$this->anketa' AND b.element_if=i.id"); if (!$sqln) echo mysqli_error($GLOBALS['connect_db']); $rown = mysqli_fetch_array($sqln); $number = $rown['number'] + 1; $sql = sisplet_query("INSERT INTO srv_if (id, number, tip) VALUES ('', '$number', '2')"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); $if_id = mysqli_insert_id($GLOBALS['connect_db']); if ($this->spremenljivka > 0 || ($if > 0 && $endif == 1)) { $sql = sisplet_query("SELECT * FROM srv_branching WHERE element_spr = '$this->spremenljivka' AND element_if='$if'"); $row = mysqli_fetch_array($sql); } if ($if > 0 && $endif != 1) { $row['parent'] = $if; $row['vrstni_red'] = 0; } // dodajanje ifa na trenutno spremenljivko if ($this->spremenljivka > 0) { $next_element = $row; $include_element = true; // v if vkljucimo tudi trenutno spremenljivko // dodajanje ifa na naslednji element } else { $next_element = $b->find_next_element($row['parent'], $row['vrstni_red']); } if ($next_element == null) { // next_element je prazen na koncu ifa, takrat je tudi nov if prazen $next_element['parent'] = $row['parent']; $next_element['vrstni_red'] = $row['vrstni_red'] + 1; $next_element['element_spr'] = 0; $next_element['element_if'] = 0; } $add = true; // preverimo, da ga ne dodamo v ze obstojec loop if ($b->find_loop_parent($next_element['parent']) > 0) $add = false; // preverimo, da ge ne dodamo direktno pred obstojec loop (ker potem objame obstojec loop in dobimo vgnezdenje) if ($next_element['element_if'] > 0) if ($b->find_loop_child($next_element['element_if']) > 0) $add = false; if ($add) { $b->if_new($endif, $next_element['parent'], $if_id, $next_element['vrstni_red'], $next_element['element_spr'], $next_element['element_if'], $copy, $no_content, $include_element); sisplet_query("UPDATE srv_anketa SET branching='1' WHERE id = '$this->anketa'"); } else { $b->dropped_alert($lang['srv_loop_no_nesting']); } // NASTAVIMO LOOP NA GENERATOR if (is_numeric($gen_id )) { $vrednost = 0; } sisplet_query("REPLACE INTO srv_loop (if_id, spr_id) VALUES ('$if_id', '$gen_id ')"); // na zacetku damo po defaultu na 'izbran' $s = sisplet_query("DELETE FROM srv_loop_vre WHERE if_id = '$if_id'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("DELETE FROM srv_loop_data WHERE if_id = '$if_id'"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $sql2 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='$gen_id ' ORDER BY vrstni_red ASC"); while ($row2 = mysqli_fetch_array($sql2)) { $vrednost = $row2['id']; if ($vrednost > 0) { $s = sisplet_query("INSERT INTO srv_loop_vre (if_id, vre_id) VALUES ('$if_id', '$vrednost')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); $s = sisplet_query("INSERT INTO srv_loop_data (id, if_id, vre_id) VALUES ('', '$if_id', '$vrednost')"); if (!$s) echo mysqli_error($GLOBALS['connect_db']); } } $b->repare_vrstni_red(); Common::getInstance()->prestevilci(); Cache::clear_cache(); $data = array(); $data['nova_spremenljivka_id'] = $gen_id; ob_start(); $b = new Branching($this->anketa); $b->spremenljivka = $gen_id; $b->branching_struktura(); $data['branching_struktura'] = ob_get_clean(); $this->check_loop(); ob_start(); $v = new Vprasanje($this->anketa); $v->spremenljivka = $gen_id; $v->ajax_vprasanje_fullscreen(); $data['vprasanje_fullscreen'] = ob_get_clean(); echo json_encode($data); } /** * dodajanje demografije preko obrazca na prvi strani nove ankete * */ function ajax_demografija_new () { global $lang; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if ( count($_POST['variable']) > 0 ) { $type = $_POST['type']; $b = new Branching($this->anketa); ob_start(); $if_id = 0; // ce ze obstaja blok demografija $if_id = $b->get_demografija_id(); // dodajanje nove spremenljivke if ($type == 'add') { // blok obstaja, novo bomo dodali na dno if ($if_id > 0) { $sql = sisplet_query("SELECT element_spr FROM srv_branching WHERE parent='$if_id' AND ank_id='$this->anketa' ORDER BY vrstni_red DESC LIMIT 1"); $row = mysqli_fetch_array($sql); $spr = $row['element_spr']; $if = 0; } // sicer naredimo nov blok if ($if_id == 0) { $if_id = $this->ajax_if_new(0, 0, 1, 1); sisplet_query("UPDATE srv_if SET label = '$lang[srv_demografija]' WHERE id = '$if_id'"); // novo spremenljivko bomo dodali v blok $spr = 0; $if = $if_id; } // id spremenljivke v knjiznici, ki jo bomo dodali $d_id = Demografija::getInstance()->getSpremenljivkaID($_POST['variable']); $this->ajax_spremenljivka_new($spr, $if, 0, 0, 23, $d_id); // brisanje demografske spremenljivke } elseif ($type == 'remove') { // poiscemo ID spremenljivke v bloku demografija glede na variablo $sql = sisplet_query("SELECT s.id FROM srv_branching b, srv_spremenljivka s WHERE b.element_spr=s.id AND b.parent='$if_id' AND s.variable='$_POST[variable]' LIMIT 1"); $row = mysqli_fetch_array($sql); if ($row['id'] > 0) { $sa = new SurveyAdmin(1, $this->anketa); $sa->brisi_spremenljivko($row['id']); } // preverimo ce je blok demografija prazen in ga odstranimo $sql = sisplet_query("SELECT COUNT(*) AS count FROM srv_branching WHERE parent='$if_id'"); $row = mysqli_fetch_array($sql); if ($row['count'] == 0) $this->ajax_if_remove($if_id); } ob_clean(); Cache::clear_cache_all(); $b->branching_struktura(); $output['branching'] = ob_get_clean(); $output['spremenljivka'] = $this->spremenljivka; echo json_encode($output); } } function ajax_if_blok_tab() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $tab = $_POST['tab']; if ($if > 0) { sisplet_query("UPDATE srv_if SET tab='$tab' WHERE id='$if'"); if ($tab == 1) { $b = new Branching($this->anketa); $spr = $b->find_last_in_if($if); if ($spr > 0) $this->ajax_pagebreak($spr, 1); $spr = $b->find_before_if($if); if ($spr > 0) $this->ajax_pagebreak($spr, 1); } } } function ajax_if_blok_random() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $random = $_POST['random']; if ($if > 0) sisplet_query("UPDATE srv_if SET random='$random' WHERE id='$if'"); } function ajax_if_blok_horizontal() { Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $if = $_POST['if']; $horizontal = $_POST['horizontal']; if ($if > 0) sisplet_query("UPDATE srv_if SET horizontal='$horizontal' WHERE id='$if'"); } /* * spremenimo odgovor VISIBLE/DISABLE/HIDDEN * * @odg = 0 -> imajo vsi odgovori - visible * @odg = 1 -> hidden * @odg = 2 -> disable (viden, vendar ni mogoča izbira) * @return $odg * */ function ajax_hidden_answer(){ Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); $odg = $_POST['odgovor']; $id = $_POST['id']; switch ($odg){ case 2: $odg = 0; break; default: $odg++; } sisplet_query("UPDATE srv_vrednost SET hidden='$odg' WHERE id='$id'"); echo $odg; } /* * spremenimo odgovor CORRECT za modul KVIZ * * */ function ajax_correct_answer(){ Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['vre_id']) && isset($_POST['spr_id']) && isset($_POST['action'])){ $spr_id = $_POST['spr_id']; $vre_id = $_POST['vre_id']; $action = $_POST['action']; if($action == 'add'){ $sql = sisplet_query("INSERT INTO srv_quiz_vrednost (spr_id, vre_id) VALUES ('".$spr_id."', '".$vre_id."')"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); } else{ sisplet_query("DELETE FROM srv_quiz_vrednost WHERE spr_id='".$spr_id."' AND vre_id='".$vre_id."'"); if (!$sql) echo mysqli_error($GLOBALS['connect_db']); } } } /** * Lokacija - 26 * shrane v bazo koordinate za fokus, da se ne vedno porabljajo kvote geocodinga */ function ajax_fokus_koordiante_map(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $koordinate = $_POST['koordinate']; $row = Cache::srv_spremenljivka($spr_id); $newParams = new enkaParameters($row['params']); $newParams->set('fokus_koordinate', json_encode($koordinate)); $params = $newParams->getString(); sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'"); } } /** * Lokacija - 26 * shrane v bazo string za fokus */ function ajax_fokus_string_map(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $string = $_POST['fokus']; $row = Cache::srv_spremenljivka($spr_id); $newParams = new enkaParameters($row['params']); $newParams->set('fokus_mape', json_encode($string)); $params = $newParams->getString(); sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'"); } } /** * Lokacija - 26 - podtip 3 choose location * shrane v nov marker - vrednost */ function ajax_save_marker(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $add = $_POST['address']; $lat = $_POST['lat']; $lng = $_POST['lng']; $v = new Vprasanje(); $v->spremenljivka = $spr_id; $vrednost = $v->vrednost_new(''); Common::prestevilci($spr_id); //last decimals of coordiates are not exact same in database, because float in mySql is not precise - practical variations are minimal $sql = sisplet_query("INSERT INTO srv_vrednost_map (spr_id, vre_id, address, lat, lng, overlay_type) " . "VALUES ('$spr_id', '$vrednost', '$add', '$lat', '$lng', 'marker')", "id"); echo $vrednost; } } /** * Lokacija - 26 - podtip 3 choose location * shrane v nov shape - ni vrednost, samo info */ function ajax_save_polyline(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $overlay_id = $_POST['overlay_id']; $path = $_POST['path']; //create row for each point of path of line foreach ($path as $point) { $sql = sisplet_query("INSERT INTO srv_vrednost_map (spr_id, vre_id, lat, lng, vrstni_red, overlay_id, overlay_type) " . "VALUES ('$spr_id', '-1', '".$point['lat']."', '".$point['lng']."', '".$point['vrstni_red']."', '$overlay_id', 'polyline')"); } } } /** * Lokacija - 26 - podtip 3 choose location * izvede query za brisanje shape iz baze - tabela srv_vrednost_map * @param type $spr_id * @param type $overlay_id */ function deleteShapeQuery($spr_id, $overlay_id){ //first dele old line $sql = sisplet_query("DELETE FROM srv_vrednost_map WHERE spr_id='$spr_id' AND overlay_id='$overlay_id'"); } /** * Lokacija - 26 - podtip 3 choose location * shrane spremenjen shape - ni vrednost, samo info */ function ajax_edit_polyline(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $overlay_id = $_POST['overlay_id']; $path = $_POST['path']; //first dele old line $this -> deleteShapeQuery($spr_id, $overlay_id); //create new line foreach ($path as $point) { $sql = sisplet_query("INSERT INTO srv_vrednost_map (spr_id, vre_id, lat, lng, vrstni_red, overlay_id, overlay_type) " . "VALUES ('$spr_id', '-1', '".$point['lat']."', '".$point['lng']."', '".$point['vrstni_red']."', '$overlay_id', 'polyline')"); } } } /** * Lokacija - 26 - podtip 3 choose location * izbrise shape - ni vrednost, samo info */ function ajax_delete_polyline(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $overlay_id = $_POST['overlay_id']; $this -> deleteShapeQuery($spr_id, $overlay_id); } } /** * Lokacija - 26 - podtip 3 choose location * shrane naslov shapea - ni vrednost, samo info */ function ajax_edit_naslov_polyline(){ if(isset($_POST['anketa'])) $this->anketa = $_POST['anketa']; Common::getInstance()->Init($this->anketa); Common::getInstance()->updateEditStamp(); if(isset($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; $overlay_id = $_POST['overlay_id']; $address = $_POST['address']; $sql = sisplet_query("UPDATE srv_vrednost_map SET address='$address' WHERE spr_id='$spr_id' AND overlay_id='$overlay_id'"); } } } ?>