<?php
class BranchingAjax {
var $anketa; // trenutna anketa
var $grupa; // trenutna grupa
var $spremenljivka; // trenutna spremenljivka
//var $SurveyAdmin; // globalna spremenljivka za SurveyAdmin // SurveyAdmin se nikjer vec ne klice iz Branchinga
//var $sidebar; // ali prikazemo sidebar: 0-ne, 1-vprasanja, 2-library
//var $collapsed_content; // ali prikazujemo vseibno IFa (ce ne se poklice z ajaxom)
var $skin = 0;
// tele nastavitve so tudi v BranchingAjax in jih je treba tudi tam popravit!
//var $maxIfCount = 0; // koliko ifov je meja za prikaz. Če je 0 prikeže vse
//var $autoRecount = 0; // ce je vec kot 50 spremenljivk nimamo avtomatskega prestevilcevanja
/**
* @desc konstruktor
*/
function __construct ($anketa=0) {
global $surveySkin;
global $site_path;
$this->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')");
}
function ajax_if_new ($spremenljivka = null, $if = null, $endif = null, $tip = null) {
Common::getInstance()->Init($this->anketa);
Common::getInstance()->updateEditStamp();
global $lang;
if ($spremenljivka == null) $spremenljivka = $_POST['spremenljivka'];
if ($if == null) $if = $_POST['if'];
if ($endif == null) $endif = $_POST['endif'];
if ($tip == null) $tip = $_POST['tip'];
$copy = $_POST['copy'];
$no_content = $_POST['no_content'];
$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 '<input type="hidden" id="temp_new_if_id" name="temp_new_if_id" value="'.$if_id.'" />';
$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) $spremenljivka = $_POST['spremenljivka'];
if ($if == null) $if = $_POST['if'];
if ($endif == null) $endif = $_POST['endif'];
if ($copy == null) $copy = $_POST['copy'];
if ($drop == null) $drop = $_POST['drop'];
if ($tip == null) $tip = $_POST['tip'];
if ($podtip == null) $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){
$child = $_POST['child'];
$parent = $_POST['parent'];
$tmp_p = str_replace('droppable_', '', $parent);
$tmp_p = explode('-', $tmp_p);
$parent = $tmp_p[0];
$vrstni_red = (int)$tmp_p[1];
$page_break = (int)$tmp_p[2];
$child = str_replace('branching_', '', $child);
}
$b = new Branching($this->anketa);
// droppal smo spremenljivko
if (is_numeric($parent) && $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($row['parent']);
//$b->repare_branching($parent);
$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)
$if = $_POST['if'];
if ($_POST['all'] == 1) $all = 1; else $all = 0; // ali brisemo tudi celotno vsebino pogoja/bloka
$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 '<h2>'.$lang['srv_warning'].'</h2>';
echo '<div class="popup_close"><a href="#" onClick="$(\'#dropped_alert\').hide(); $(\'#fade\').fadeOut(); return false;">✕</a></div>';
echo '<p>'.$lang['if_delete_data'].'</p>';
echo '<p>'.$lang['srv_brisiifconfirm_all'].'</p><br />';
echo '<span class="buttonwrapper floatRight"><a class="ovalbutton ovalbutton_orange" href="#" onclick="if_remove(\''.$if.'\', \'1\'); return false;"><span>'.$lang['srv_if_rem_all'].'</span></a></span>';
echo '<span class="buttonwrapper floatRight spaceRight"><a class="ovalbutton ovalbutton_gray" href="#" onclick="$(\'#dropped_alert\').hide(); $(\'#fade\').fadeOut(); return false;"><span>'.$lang['srv_analiza_arhiviraj_cancle'].'</span></a></span>';
//echo '<p><a href="#" onclick="if_remove(\''.$if.'\', \'1\'); return false;">'.$lang['srv_if_rem_all'].'</a> <a href="#" onclick="$(\'#dropped_alert\').hide(); $(\'#fade\').fadeOut(); return false;">'.$lang['srv_analiza_arhiviraj_cancle'].'</a></p>';
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 = $_POST['text'];
$operator = $_POST['operator'];
$negation = $_POST['negation'];
$conjunction = $_POST['conjunction'];
$vrednost = $_POST['vrednost'];
$condition = $_POST['condition'];
$spremenljivka = $_POST['spremenljivka'];
$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 = $_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_nova = $_POST['if_nova'];
$if = $_POST['if'];
// tega ni vec
/*if ($if_nova > 0) {
echo '<script type="text/javascript">
spremenljivka_new(\'0\', \''.$if_nova.'\', \'1\');
</script>';
}*/
$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 '<span class="red" style="cursor:pointer" onclick="vrednost_condition_editing(\''.$vrednost.'\'); return false;" title="'.$lang['srv_podif_edit'].'">*</span>';
}else{
$b->conditions_display($if, 0, 1);
}
//dodamo trikotnik error na koncu
if ($b->condition_check($if) != 0)
echo '<span class="faicon warning icon-orange"></span>';
}
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_get_new_if () {
$sql = sisplet_query("SELECT * FROM misc WHERE what='new_if_$this->anketa'");
$row = mysqli_fetch_array($sql);
echo $row['value'];
}
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 = $_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();
// pogoji so ok
if ($code === true) {
if ($_GET['izpis'] == 'long') {
echo '<p style="text-align: center"><b>'.$lang['srv_check_pogoji_ok'].'!</b></p>';
?>
<script>
$(function () {
$('#check_pogoji').animate({opacity: 1.0}, 3000).fadeOut('slow');
$('#fade').fadeOut("slow");
})
</script>
<?php
} else {
echo '1';
}
// pogoji niso ok
} else {
if ($_GET['izpis'] == 'long') {
if ($code['type'] == 'if' || $code['type'] == 'podif')
echo '<h2>'.$lang['srv_check_pogoji_not_ok'].'</h2>';
elseif ($code['type'] == 'loop')
echo '<h2>'.$lang['srv_loop_no_nesting'].'</h2>';
elseif ($code['type'] == 'question_variable')
echo '<h2>'.$lang['srv_duplicate_question_variable'].'</h2>';
elseif ($code['type'] == 'variable')
echo '<h2>'.$lang['srv_duplicate_variables'].'</h2>';
echo '<div class="popup_close"><a href="#" onClick="$(\'#check_pogoji\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">✕</a></div>';
// 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 '<p>'.$lang['srv_check_pogoji_if'].' <a href="javascript:condition_editing(\''.$row['id'].'\');"><b>'.$row['number'].'</b></a></p>';
// 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 '<p>'.$lang['srv_check_pogoji_spremenljivka'].': <b><a href="javascript:vprasanje_fullscreen(\''.$row['id'].'\');">'.$row['variable'].' - '.strip_tags($row['naslov']).'</a></b></p>';
// 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 '<p>'.$lang['srv_check_pogoji_loop'].' <a href="javascript:condition_editing(\''.$row['id'].'\');"><b>'.$row['number'].'</b></a></p>';
} elseif ($code['type'] == 'validation') {
$sql = sisplet_query("SELECT id, naslov, variable FROM srv_spremenljivka WHERE id = '$code[id]'");
$row = mysqli_fetch_array($sql);
echo '<p>'.$lang['srv_check_validacija'].': <b><a href="javascript:vprasanje_fullscreen(\''.$row['id'].'\');">'.$row['variable'].' - '.strip_tags($row['naslov']).'</a></b></p>';
// napaka z imeni variabel
} elseif ($code['type'] == 'variable') {
foreach ($code['vars'] AS $var) {
echo '<strong>'.$var.'</strong><br />';
};
}
// error code
echo '<p>';
if ($code['code'] == 1) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_oklepaji'].'';
} elseif ($code['code'] == 2) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_spremenljivka'].'';
} elseif ($code['code'] == 3) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_vrednost'].'';
} elseif ($code['code'] == 4) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_numericno'].'';
} elseif ($code['code'] == 5) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_calculation'].'';
} elseif ($code['code'] == 6) {
echo '<img src="img_'.$this->skin.'/error.png" alt="" /> '.$lang['srv_error_loop'].'';
}
echo '</p>';
//echo '<p class="as_link" onclick="$(\'#check_pogoji\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">'.$lang['srv_zapri'].'</p>';
echo '<span class="floatRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="$(\'#check_pogoji\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">'.$lang['srv_zapri'].'</a></div></span>';
}
else {
echo '<h2>'.$lang['srv_check_pogoji_not_ok'].'</h2>';
echo '<div class="popup_close"><a href="#" onClick="$(\'#surveyTrajanje\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">✕</a></div>';
echo '<p>'.$lang['srv_check_pogoji_not_ok_txt'].'</p>';
//echo '<p class="as_link" onclick="$(\'#surveyTrajanje\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">'.$lang['srv_zapri'].'</p>';
echo '<span class="floatRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="$(\'#surveyTrajanje\').fadeOut(\'slow\'); $(\'#fade\').fadeOut(\'slow\');">'.$lang['srv_zapri'].'</a></div></span>';
}
}
}
/**
* 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'];
echo '<span class="buttonwrapper floatRight">';
echo '<a class="ovalbutton ovalbutton_grey" href="#" onclick="alert_close_block(); return false;"><span>'.$lang['srv_zapri'].'</span></a>';
echo '</span>';
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'];
$status2 = $_POST['status2'];
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, $status2);
}
/**
* @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 '<div id="survey_comment_'.$spremenljivka.'_'.$view.'">';
$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']).'<br /><br /><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'">'.$lang['srv_forum_back'].'</a>';
else
$vsebina_post = $lang['srv_forum_srv_intro'].strip_tags($rows['naslov']).'<br /><br /><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'">'.$lang['srv_forum_back'].'</a>';
$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");
}
if (mysqli_num_rows($sql) > 0) {
if ($view == 1) {
//echo '<b><a href="'.$site_url.'index.php?fl=4&fid='.$row['forum'].'&tid='.$tid.'&sortpostorder='.$sortpostorder.'" target="_blank">'.$lang['srv_forum_go'].'</a></b>';
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '<img src="'.$site_url.'/admin/survey/img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '<br /><br />';
} elseif ($view == 3) {
echo '<div style="width:45%; float:left">';
echo '<h3 class="red"><b>'.$lang['comments'].'</b>';
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '<img src="img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '</h3>';
}
}
// textarea za oddat komentar - zgoraj
if ($addfieldposition == 1) {
$this->add_comment_field($spremenljivka, $type, $view);
echo '<br /><br />';
}
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 '<span style="color:black">';
elseif ($row['ocena'] == 1) echo '<span style="color:darkgreen">';
elseif ($row['ocena'] == 2) echo '<span style="color:#999999">';
elseif ($row['ocena'] == 3) echo '<span style="color:#999999">';
else echo '<span>';
echo '<b>'.$f->user($row['uid']).'</b> ('.$f->datetime1($row['time']).'):';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '<div style="float:right">';
if ($commentmarks == 1) {
echo ' <select name="ocena" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'question_comment\', ocena: this.value, id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });">
<option value="0"'.($row['ocena']==0?' selected':'').'>'.$lang['srv_undecided'].'</option>
<option value="1"'.($row['ocena']==1?' selected':'').'>'.$lang['srv_todo'].'</option>
<option value="2"'.($row['ocena']==2?' selected':'').'>'.$lang['srv_done'].'</option>
<option value="3"'.($row['ocena']==3?' selected':'').'>'.$lang['srv_not_relevant'].'</option>
</select>';
} else {
echo '<input type="checkbox" name="ocena_'.$row['id'].'" id="ocena_'.$row['id'].'" style="margin-right:3px;" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'question_comment\', ocena: (this.checked?\'2\':\'0\'), id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });" value="2" '.($row['ocena'] >= 2?' checked':'').' /><label for="ocena_'.$row['id'].'">'.$lang['srv_done'].'</label>';
}
//echo ' <br /><a href="javascript:comment_on_comment(\''.$rowt['id'].'\');">'.$lang['srv_comment_comment'].'</a>';
echo '</div>';
}
echo '<br/>'.$row['vsebina'].'<hr>';
echo '</span>';
}
//}
$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 '<br />';
$this->add_comment_field($spremenljivka, $type, $view);
}
} else {
$this->add_comment_field($spremenljivka, $type, $view);
}
if ($_REQUEST['refresh'] != '1' || $view==3)
echo '</div>';
}
// komentarji na if ali blok
elseif ($type == 5 || $type == 6){
// okvir, da se lahko refresha pri oddaji novega komentarja
if ($_REQUEST['refresh'] != '1')
echo '<div id="survey_comment_'.$spremenljivka.'_'.$view.'">';
$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']).'<br /><br /><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'">'.$lang['srv_forum_back'].'</a>';
else
$vsebina_post = $lang['srv_forum_intro_blok'].strip_tags($rows['naslov']).'<br /><br /><a href="'.$site_url.'admin/survey/index.php?anketa='.$this->anketa.'">'.$lang['srv_forum_back'].'</a>';
$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 '<b><a href="'.$site_url.'index.php?fl=4&fid='.$row['forum'].'&tid='.$tid.'&sortpostorder='.$sortpostorder.'" target="_blank">'.$lang['srv_forum_go'].'</a></b>';
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '<img src="'.$site_url.'/admin/survey/img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '<br /><br />';
} elseif ($view == 3) {
echo '<div style="width:45%; float:left">';
echo '<h3 class="red"><b>'.$lang['comments'].'</b>';
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '<img src="img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '</h3>';
}
}
// textarea za oddat komentar - zgoraj
if ($addfieldposition == 1) {
$this->add_comment_field($spremenljivka, $type, $view);
echo '<br /><br />';
}
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 '<span style="color:black">';
elseif ($row['ocena'] == 1) echo '<span style="color:darkgreen">';
elseif ($row['ocena'] == 2) echo '<span style="color:#999999">';
elseif ($row['ocena'] == 3) echo '<span style="color:#999999">';
else echo '<span>';
echo '<b>'.$f->user($row['uid']).'</b> ('.$f->datetime1($row['time']).'):';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '<div style="float:right">';
if ($commentmarks == 1) {
echo ' <select name="ocena" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'question_comment\', ocena: this.value, id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });">
<option value="0"'.($row['ocena']==0?' selected':'').'>'.$lang['srv_undecided'].'</option>
<option value="1"'.($row['ocena']==1?' selected':'').'>'.$lang['srv_todo'].'</option>
<option value="2"'.($row['ocena']==2?' selected':'').'>'.$lang['srv_done'].'</option>
<option value="3"'.($row['ocena']==3?' selected':'').'>'.$lang['srv_not_relevant'].'</option>
</select>';
} else {
echo '<input type="checkbox" name="ocena_'.$row['id'].'" id="ocena_'.$row['id'].'" style="margin-right:3px;" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'question_comment\', ocena: (this.checked?\'2\':\'0\'), id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });" value="2" '.($row['ocena'] >= 2?' checked':'').' /><label for="ocena_'.$row['id'].'">'.$lang['srv_done'].'</label>';
}
//echo ' <br /><a href="javascript:comment_on_comment(\''.$rowt['id'].'\');">'.$lang['srv_comment_comment'].'</a>';
echo '</div>';
}
echo '<br/>'.$row['vsebina'].'<hr>';
echo '</span>';
}
//}
$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 '<br />';
$this->add_comment_field($spremenljivka, $type, $view);
}
} else {
$this->add_comment_field($spremenljivka, $type, $view);
}
if ($_REQUEST['refresh'] != '1' || $view==3)
echo '</div>';
}
// komentarji respondentov
elseif ($type == 2) {
$db_table = (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) ? '_active' : '';
$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 '<img src="img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
while ($row = mysqli_fetch_array($sql)) {
if ($row['text2'] == 0) echo '<span style="color:black">';
elseif ($row['text2'] == 1) echo '<span style="color:darkgreen">';
elseif ($row['text2'] == 2) echo '<span style="color:#999999">';
elseif ($row['text2'] == 3) echo '<span style="color:#999999">';
else echo '<span>';
echo $f->datetime1($row['time_edit']).':';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '<div style="float:right">';
if ($commentmarks == 1) {
echo ' <select name="ocena'.$row['id'].'" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'respondent_comment\', text2: this.value, id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () {window.location.reload();});">
<option value="0"'.($row['text2']==0?' selected':'').'>'.$lang['srv_undecided'].'</option>
<option value="1"'.($row['text2']==1?' selected':'').'>'.$lang['srv_todo'].'</option>
<option value="2"'.($row['text2']==2?' selected':'').'>'.$lang['srv_done'].'</option>
<option value="3"'.($row['text2']==3?' selected':'').'>'.$lang['srv_not_relevant'].'</option>
</select>';
} else {
echo '<input type="checkbox" name="ocena_'.$row['id'].'" id="ocena_'.$row['id'].'" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'respondent_comment\', text2: (this.checked?\'2\':\'0\'), id: \''.$row['id'].'\', anketa: \''.$rowi['id'].'\'}, function () {window.location.reload();});" value="2" '.($row['text2'] >= 2?' checked':'').' /><label for="ocena_'.$row['id'].'">'.$lang['srv_done'].'</label>';
}
echo ' </div>';
}
echo '<br />'.nl2br($row['text']).'<hr>';
echo '</span>';
}
}
// komentarji respondentov za celo anketo
elseif($type == 4){
// okvir, da se lahko refresha pri oddaji novega komentarja
if ($_REQUEST['refresh'] != '1')
echo '<div id="survey_comment_'.$spremenljivka.'_'.$view.'">';
$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 '<img src="'.$site_url.'/admin/survey/img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '<br /><br />';
} elseif ($view == 3) {
echo '<div style="width:45%; float:left">';
echo '<h3 class="red"><b>'.$lang['comments'].'</b>';
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '<img src="img_0/'.($sortpostorder==1?'up':'down').'.gif" style="float:right" title="'.($sortpostorder==1?$lang['forum_desc']:$lang['forum_asc']).'" />';
echo '</h3>';
}
}
// textarea za oddat komentar - zgoraj
if ($addfieldposition == 1) {
$this->add_comment_field($spremenljivka, $type, $view);
echo '<br /><br />';
}
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 '<span style="color:black">';
elseif ($row['ocena'] == 1) echo '<span style="color:darkgreen">';
elseif ($row['ocena'] == 2) echo '<span style="color:#999999">';
elseif ($row['ocena'] == 3) echo '<span style="color:#999999">';
else echo '<span>';
$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 '<b>'.$user.'</b> ('.$datetime.'):';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
// Zaenkrat ni ocen ce respondent komentira pri resevanju
/*echo '<div style="float:right">';
if ($commentmarks == 1) {
echo ' <select name="ocena" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'respondent_survey_comment\', ocena: this.value, id: \''.$row['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });">
<option value="0"'.($row['ocena']==0?' selected':'').'>'.$lang['srv_undecided'].'</option>
<option value="1"'.($row['ocena']==1?' selected':'').'>'.$lang['srv_todo'].'</option>
<option value="2"'.($row['ocena']==2?' selected':'').'>'.$lang['srv_done'].'</option>
<option value="3"'.($row['ocena']==3?' selected':'').'>'.$lang['srv_not_relevant'].'</option>
</select>';
} else {
echo '<input type="checkbox" name="ocena_'.$row['id'].'" id="ocena_'.$row['id'].'" onchange="$.post(siteurl+\'ajax.php?a=comment_ocena\', {type: \'question_comment\', ocena: (this.checked?\'2\':\'0\'), id: \''.$row['id'].'\'}, function () { add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', \'\' ); });" value="2" '.($row['ocena'] >= 2?' checked':'').' /><label for="ocena_'.$row['id'].'">'.$lang['srv_done'].'</label>';
}
echo '</div>';*/
}
echo '<br/>'.$row['comment'].'<hr>';
echo '</span>';
}
}
}
// textarea za oddat komentar - spodaj
if ($addfieldposition == 0 || $addfieldposition == '') {
echo '<br />';
$this->add_comment_field($spremenljivka, $type, $view);
}
} else {
$this->add_comment_field($spremenljivka, $type, $view);
}
if ($_REQUEST['refresh'] != '1' || $view==3)
echo '</div>';
}
}
function add_comment_field ($spremenljivka, $type, $view, $form=true) {
global $admin_type;
global $global_user_id;
global $lang;
global $site_url;
$rowanketa = SurveyInfo::getInstance()->getSurveyRow();
echo '<textarea name="vsebina" id="vsebina_'.$spremenljivka.'_'.$view.'" style="width:100%; height:50px; margin-bottom:10px; border:1px red solid;"></textarea><br />';
echo '<input type="submit" value="'.$lang['send'].'" onclick="add_comment(\''.$spremenljivka.'\', \''.$type.'\', \''.$view.'\', $(\'#vsebina_'.$spremenljivka.'_'.$view.'\').val()); return false;" />';
if (($type == 0 || $view==3) && ($admin_type == 0 || $global_user_id==$rowanketa['insert_uid'])) {
echo '<div style="float:right">';
// Link na pregled splosnih komentarjev
echo '<span style="margin-right: 20px;"><a href="'.$site_url.'/admin/survey/index.php?anketa='.$this->anketa.'&a=komentarji_anketa">'.$lang['srv_comment_overview'].'</a></span>';
// Link na nastavitve komentarjev
echo '<a href="'.$site_url.'/admin/survey/index.php?anketa='.$this->anketa.'&a=urejanje">'.$lang['settings'].'</a>';
echo '</div>';
}
}
/**
* @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);
$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_spremenljivka_preview_print() {
global $lang;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CMS</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="minify/g=css" media="screen" rel="stylesheet" />
<link type="text/css" href="minify/g=cssPrint" media="print" rel="stylesheet" />
<!--[if lt IE 7]>
<link rel="stylesheet" href="http://localhost/fdv/cms2/admin/survey/css/ie6hacks.css" type="text/css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" href="http://localhost/fdv/cms2/admin/survey/css/ie7hacks.css" type="text/css" />
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" href="http://localhost/fdv/cms2/admin/survey/css/ie8hacks.css" type="text/css" />
<![endif]-->
</head>
<body>
<?
echo '<div id="printIcon">';
echo '<a href="#" onclick="window.print(); return false;"><span class="faicon print_small icon-grey_dark_link"></span> '.$lang['hour_print2'].'</a>';
echo '</div>';
include_once('../../main/survey/app/global_function.php');
new \App\Controllers\SurveyController(true);
echo ' <div id="spremenljivka_preview">';
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']);
}
?>
</body>
</html>
<?
}
function ajax_toolbox_add_advanced () {
$b = new Branching($this->anketa);
$b->toolbox_add_advanced();
}
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 '<div class="popup_close"><a href="#" onClick="$(\'#vrednost_edit\').hide().html(\'\'); $(\'#fade\').fadeOut(); return false;">✕</a></div>';
echo '<h2>'.$lang['srv_find_replace'].'</h2>';
echo '<p class="gray">'.$lang['srv_find_text'].'</p>';
echo '<p><label style="display:inline-block; width:100px">'.$lang['srv_find'].': </label><input type="text" name="find" style="width:200px"><span id="find_count" style="color:red; margin:0 20px"></span></p>';
echo '<p><label style="display:inline-block; width:100px">'.$lang['srv_replace_with'].': </label><input type="text" name="replace" style="width:200px"></p>';
echo '<span class="floatRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange btn_savesettings" onclick="find_replace_do(); return false;" href="#"><span>'.$lang['srv_replace'].'</span></a></div></span>';
echo '<span class="floatRight spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray btn_savesettings" onclick="$(\'#vrednost_edit\').hide().html(\'\'); $(\'#fade\').fadeOut(); return false;" href="#"><span>'.$lang['srv_cancel'].'</span></a></div></span>';
}
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']);
$sqlm = sisplet_query("SELECT * FROM misc WHERE what='new_if_$this->anketa'");
if (mysqli_num_rows($sqlm) > 0)
sisplet_query("UPDATE misc SET value='$if_id' WHERE what='new_if_$this->anketa'");
else
sisplet_query("INSERT INTO misc (what, value) VALUES ('new_if_$this->anketa', '$if_id')");
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'");
}
}
}
?>