757 lines
26 KiB
PHP
757 lines
26 KiB
PHP
<?php
|
|
/**
|
|
* @author Gorazd Veselič
|
|
* @date November 2011
|
|
*
|
|
*/
|
|
|
|
define('SI_DEFAULT_PROFILE', false, true);
|
|
define('SI_GOTO_ANALIZE', 0, true);
|
|
define('SI_GOTO_VPOGLED', 1, true);
|
|
define('SI_GOTO_PODATKI', 2, true);
|
|
|
|
class SurveyInspect {
|
|
|
|
public $sid; # id ankete
|
|
public $_HEADERS = array(); # shranimo podatke vseh variabel
|
|
|
|
function __construct($anketa) {
|
|
|
|
global $global_user_id;
|
|
|
|
$this->sid = $anketa;
|
|
|
|
|
|
# Inicializiramo in polovimo nastavitve missing profila
|
|
SurveyStatusProfiles::Init($this->sid);
|
|
SurveyUserSetting::getInstance()->Init($anketa, $global_user_id);
|
|
|
|
#inicializiramo class za datoteke
|
|
SurveyDataFile::get_instance();
|
|
SurveyDataFile::get_instance()->init($anketa);
|
|
$headFileName = SurveyDataFile::get_instance()->getHeaderFileName();
|
|
$dataFileStatus = SurveyDataFile::get_instance()->getStatus();
|
|
|
|
|
|
# polovimo header datoteko
|
|
if ($dataFileStatus == FILE_STATUS_NO_DATA
|
|
|| $dataFileStatus == FILE_STATUS_NO_FILE
|
|
|| $dataFileStatus == FILE_STATUS_SRV_DELETED){
|
|
return false;
|
|
}
|
|
if ($headFileName !== null && $headFileName != '') {
|
|
$this->_HEADERS = unserialize(file_get_contents($headFileName));
|
|
}
|
|
|
|
session_start();
|
|
#nastavimo inspect
|
|
if (isset($_SESSION['enableInspect']) && $_SESSION['enableInspect'] == true) {
|
|
$this->enableInspect = true;
|
|
} else {
|
|
$this->enableInspect = false;
|
|
}
|
|
|
|
#nastavimo GOTO (analize,vpogled,podatki)
|
|
if (isset($_SESSION['inspect_goto'])) {
|
|
$this->inspect_goto = (int)$_SESSION['inspect_goto'];
|
|
} else {
|
|
$this->inspect_goto = 0;
|
|
}
|
|
|
|
}
|
|
|
|
public function isInspectEnabled() {
|
|
return $this->enableInspect;
|
|
}
|
|
|
|
public function whereToGo() {
|
|
|
|
$inspect_goto_array = array( SI_GOTO_ANALIZE => '&a=analysis&m=sumarnik',
|
|
SI_GOTO_VPOGLED => '&a=data&m=quick_edit',
|
|
SI_GOTO_PODATKI => '&a=data');
|
|
|
|
return ($inspect_goto_array[$this->inspect_goto]);
|
|
}
|
|
|
|
public function ajax() {
|
|
|
|
switch ($_GET['a']) {
|
|
case 'analizaPrepareInspect':
|
|
$this->PrepareInspectAnaliza();
|
|
break;
|
|
case 'changeSessionInspect':
|
|
$this->changeSessionInspect();
|
|
break;
|
|
case 'showInspectSettings':
|
|
$this->showInspectSettings();
|
|
break;
|
|
case 'show_inspectListSpr':
|
|
$this->showInspectListSpr();
|
|
break;
|
|
case 'saveInspectListVars':
|
|
$this->saveInspectListVars();
|
|
break;
|
|
case 'saveSettings':
|
|
$this->saveSettings();
|
|
break;
|
|
case 'displayInspectVars':
|
|
$this->displayInspectVars();
|
|
break;
|
|
case 'removeInspect':
|
|
$this->removeInspect();
|
|
break;
|
|
default:
|
|
print_r("<PRE>");
|
|
print_r($_POST);
|
|
print_r($_GET);
|
|
print_r("<PRE>");
|
|
break;
|
|
}
|
|
}
|
|
|
|
function PrepareInspectAnaliza() {
|
|
global $global_user_id, $lang;
|
|
|
|
# nastavimo filter variable
|
|
#izluščimo spr_id
|
|
$spr_data = explode('_',$_POST['spr_data']);
|
|
$spr = $spr_data[0];
|
|
$sequence = $spr_data[2];
|
|
$counter = $spr_data[3];
|
|
$_spr = $this->_HEADERS[$spr.'_0'];
|
|
# nastavimo v sejo od kod smo prišli v inspect:
|
|
session_start();
|
|
if ((isset($_POST['from_podstran']) && trim($_POST['from_podstran']) != '')) {
|
|
$_SESSION['inspectFromPodstran'][$this->sid] = $_POST['from_podstran'];
|
|
} else {
|
|
unset($_SESSION['inspectFromPodstran'][$this->sid]);
|
|
}
|
|
session_commit();
|
|
# naredimo inspect profil za variable
|
|
$variables = $spr.'_0';
|
|
$var_array[] = $variables;
|
|
if ($this->isInspectEnabled()) {
|
|
$_add_vars = $_SESSION['dataSetting_profile'][$this->sid]['InspectListVars'];
|
|
if (isset($_add_vars) && is_array($_add_vars) && count($_add_vars) > 0) {
|
|
foreach ($_add_vars AS $add_var) {
|
|
$variables .= ','.$add_var.'_0';
|
|
$var_array[] = $add_var.'_0';
|
|
}
|
|
}
|
|
}
|
|
|
|
$svp = new SurveyVariablesProfiles();
|
|
$svp -> Init($this->sid);
|
|
$svp-> setProfileInspect($var_array);
|
|
|
|
# if id za inspect shranimo v nastavitev ankete SurveyUserSetting -> inspect_if_id (če ne obstaja skreiramo novega)
|
|
# dodamo tudi kot profil pogojev (če ne obstaja skreiramo novega)
|
|
|
|
#preverimo ali obstaja zapis v SurveyUserSetting->inspect_if_id
|
|
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
|
|
# preverimo dejanski obstoj ifa (srv_if) če ne skreiramo novega
|
|
if ((int)$if_id > 0) {
|
|
$chks1 = "SELECT id FROM srv_if WHERE id='$if_id'";
|
|
$chkq1 = sisplet_query($chks1);
|
|
# dodamo še k profilu če ne obstaja
|
|
if (mysqli_num_rows($chkq1) == 0) {
|
|
$if_id = null;
|
|
SurveyUserSetting :: getInstance()->removeSettings('inspect_if_id');
|
|
}
|
|
}
|
|
|
|
if ( (int)$if_id == 0 || $if_id == null) {
|
|
# if še ne obstaja, skreiramo novga
|
|
$newIfString = "INSERT INTO srv_if (id) VALUES ('')";
|
|
$sql = sisplet_query($newIfString);
|
|
# if (!$sql) echo '<br> -1';
|
|
|
|
$if_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
sisplet_query("COMMIT");
|
|
# shranimo pogoj kot privzet pogoj z ainspect
|
|
SurveyUserSetting :: getInstance()->saveSettings('inspect_if_id',(int)$if_id);
|
|
}
|
|
if ((int)$if_id > 0) {
|
|
# dodamo ifa za obe variabli
|
|
# ne brišemo starih pogojev, da omogočimo gnezdenje
|
|
#$delStr = "DELETE FROM srv_condition WHERE if_id = '$if_id'";
|
|
#sisplet_query($delStr);
|
|
|
|
# poiščemo vrednosti za oba vprašanja
|
|
$condition = $this->createSubCondition($_POST['vkey'],$if_id,$spr,$_spr,$sequence);
|
|
sisplet_query("COMMIT");
|
|
|
|
# pogoj dodamo še v srv_condition_profile vendar ga ne nastavimo kot privzetega
|
|
$chk_if_str = "SELECT id FROM srv_condition_profiles WHERE sid='".$this->sid."' AND uid = '".$global_user_id."' AND type='inspect'";
|
|
$chk_if_qry = sisplet_query($chk_if_str);
|
|
$_tmp_name = $lang['srv_inspect_temp_profile'];
|
|
if (mysqli_num_rows($chk_if_qry) > 0) {
|
|
# if že obstaja popravimo morebitne podatke
|
|
$str = "UPDATE srv_condition_profiles SET name = '$_tmp_name', if_id='$if_id'";
|
|
$sql = sisplet_query($str);
|
|
} else {
|
|
#vstavimo nov profil pogojev - inspect
|
|
$str = "INSERT INTO srv_condition_profiles (sid, uid, name, if_id, type ) VALUES ('".$this->sid."', '".$global_user_id."', '$_tmp_name', '$if_id', 'inspect')"
|
|
. " ON DUPLICATE KEY UPDATE name='$_tmp_name', if_id='$if_id'";
|
|
$sql = sisplet_query($str);
|
|
}
|
|
sisplet_query("COMMIT");
|
|
}
|
|
echo $this->whereToGo();
|
|
return $this->whereToGo();
|
|
|
|
}
|
|
|
|
function createSubCondition($vrednost,$if_id,$spr,$_spr,$sequence) {
|
|
$tip = $_spr['tip'];
|
|
# 1. Radio
|
|
# 3. Dropdown
|
|
# 2. Select - checkbox
|
|
if ($tip == '1' || $tip == '3' || $tip == '2')
|
|
{
|
|
#radio in dropdown
|
|
if ($tip == '1' || $tip == '3')
|
|
{
|
|
#s pomočjo k preberemo stni red
|
|
$sql_string = "SELECT id FROM srv_vrednost WHERE spr_id='$spr' AND variable = '".$vrednost."'";
|
|
$sql_query = sisplet_query($sql_string);
|
|
if (mysqli_num_rows($sql_query) == 1 )
|
|
{
|
|
$sql_row = mysqli_fetch_assoc($sql_query);
|
|
$vred_id = $sql_row['id'];
|
|
}
|
|
}
|
|
#select
|
|
if ($tip == '2' )
|
|
{
|
|
$vred_id=null;
|
|
# če je čekbox poiščemo vred_id za sekvenco k
|
|
foreach ($_spr['grids'] as $gkey=>$grid)
|
|
{
|
|
foreach ($grid['variables'] as $vkey=>$variable)
|
|
{
|
|
if ($variable['sequence'] == $sequence)
|
|
{
|
|
$vred_id = $variable['vr_id'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($vred_id != null && (int)$vred_id > 0) {
|
|
if ($tip == '2' && $vrednost == 0) {
|
|
$_operator_str = ', operator';
|
|
$_operator_val = ", '1'";
|
|
$_operator_repl = ", operator = '1'";
|
|
}
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red".$_operator_str.") VALUES ('$if_id', '$spr', '1'".$_operator_val.")"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1'".$_operator_repl;
|
|
$sql = sisplet_query($istr);
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
if ((int)$vred_id > 0 || (int)$cond_id > 0) {
|
|
$istr = "INSERT INTO srv_condition_vre (cond_id, vre_id) VALUES ('$cond_id', '$vred_id')";
|
|
$sql = sisplet_query($istr);
|
|
if (!$sql) {
|
|
echo '<br>-4 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
|
|
}
|
|
return $cond_id;
|
|
}
|
|
}
|
|
# 6. multi radio
|
|
if ($tip == '6' ) {
|
|
# če je dvojni grid potem posebej polovimo vrednosti
|
|
list($enota) = mysqli_fetch_row(sisplet_query("SELECT enota FROM srv_spremenljivka WHERE id='$spr'"));
|
|
if($enota != 3) {
|
|
$vred_id=null;
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$vred_id = $variable['vr_id'];
|
|
}
|
|
}
|
|
}
|
|
$sql_string = "SELECT id FROM srv_grid WHERE spr_id='$spr' AND (variable = '".$vrednost."' OR other = '".$vrednost."')";
|
|
$sql_query = sisplet_query($sql_string);
|
|
if (mysqli_num_rows($sql_query) == 1 ) {
|
|
$sql_row = mysqli_fetch_assoc($sql_query);
|
|
$vrednost_id = $sql_row['id'];
|
|
}
|
|
} else {
|
|
$vred_id = $sequence;
|
|
# za dvojni grid moramo id polovit s pomočjo part
|
|
$_tmp = explode('_',$vrednost);
|
|
$vrednost = $_tmp[0];
|
|
$part = $_tmp[1];
|
|
$sql_string = "SELECT id FROM srv_grid WHERE spr_id='$spr' AND (variable = '".$vrednost."' OR other = '".$vrednost."') AND part = '$part'";
|
|
$sql_query = sisplet_query($sql_string);
|
|
if (mysqli_num_rows($sql_query) == 1 ) {
|
|
$sql_row = mysqli_fetch_assoc($sql_query);
|
|
$vrednost_id = $sql_row['id'];
|
|
}
|
|
}
|
|
|
|
|
|
if ($vred_id !== null && (int)$vred_id > 0) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, vre_id) VALUES ('$if_id', '$spr', '1', '$vred_id')"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', vre_id='$vred_id'";
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
|
|
#dodamo še v srv_grid
|
|
if ($cond_id > 0) {
|
|
$istr = "INSERT INTO srv_condition_grid (cond_id, grd_id) VALUES ('$cond_id', '".$vrednost_id."')";
|
|
$sql = sisplet_query($istr);
|
|
if (!$sql) {
|
|
echo '<br>-4 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
|
|
} else {
|
|
echo '<br>-5 :: ';
|
|
}
|
|
return $cond_id;
|
|
}
|
|
}
|
|
# 7. Number
|
|
if ($tip == '7' ) {
|
|
|
|
$vred_id=null;
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$grid_id = $vkey;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($grid_id !== null) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, grd_id, text) VALUES ('$if_id', '$spr', '1', '$grid_id', '$vrednost')"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', grd_id='$grid_id', text='$vrednost'";
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
return $cond_id;
|
|
}
|
|
}
|
|
# 16. multi checkbox
|
|
if ($tip == '16' ) {
|
|
$vred_id=null;
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$vred_id = $variable['vr_id'];
|
|
$grid_id = $variable['gr_id'];
|
|
}
|
|
}
|
|
}
|
|
if ($vrednost == 0) {
|
|
$_operator_str = ', operator';
|
|
$_operator_val = ", '1'";
|
|
$_operator_repl = ", operator = '1'";
|
|
}
|
|
|
|
if ($vred_id !== null && (int)$vred_id > 0) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, vre_id".$_operator_str.") VALUES ('$if_id', '$spr', '1', '$vred_id'".$_operator_val.")"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', vre_id='$vred_id'".$_operator_repl;
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
|
|
#dodamo še v srv_grid
|
|
if ($cond_id > 0 && $grid_id > 0) {
|
|
$istr = "INSERT INTO srv_condition_grid (cond_id, grd_id) VALUES ('$cond_id', '".$grid_id."')";
|
|
$sql = sisplet_query($istr);
|
|
if (!$sql) {
|
|
echo '<br>-4 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
|
|
} else {
|
|
echo '<br>-5 :: ';
|
|
}
|
|
return $cond_id;
|
|
}
|
|
}
|
|
# 17. razvrščanje ranking
|
|
if ($tip == '17' ) {
|
|
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$vred_id = $variable['vr_id'];
|
|
|
|
}
|
|
}
|
|
}
|
|
if ($vred_id !== null && (int)$vred_id > 0) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, vre_id) VALUES ('$if_id', '$spr', '1', '$vred_id')"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', vre_id='$vred_id'";
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
$grid_id = $_spr['options'][$vrednost];
|
|
#dodamo še v srv_grid
|
|
if ($cond_id > 0 && $grid_id > 0) {
|
|
$istr = "INSERT INTO srv_condition_grid (cond_id, grd_id) VALUES ('$cond_id', '".$grid_id."')";
|
|
$sql = sisplet_query($istr);
|
|
if (!$sql) {
|
|
echo '<br>-4 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
|
|
} else {
|
|
echo '<br>-5 :: ';
|
|
}
|
|
return $cond_id;
|
|
}
|
|
}
|
|
# 21. besedilo
|
|
# 18. vsota
|
|
if ($tip == '21' || $tip == '18') {
|
|
$vred_id=null;
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$vred_id = $variable['vr_id'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($vred_id !== null && (int)$vred_id > 0) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, vre_id, text) VALUES ('$if_id', '$spr', '1', '$vred_id', '$vrednost')"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', vre_id='$vred_id', text='$vrednost'";
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
return $cond_id;
|
|
}
|
|
}
|
|
|
|
# 19. multi text
|
|
# 20. multi number
|
|
if ($tip == '19' || $tip == '20') {
|
|
#pogledamo za katero vrednost iščemo s pomočjo sekvence
|
|
foreach ($_spr['grids'] AS $gkey=> $grid) {
|
|
foreach ($grid['variables'] AS $vkey => $variable) {
|
|
if ($variable['sequence'] == $sequence) {
|
|
$vred_id = $variable['vr_id'];
|
|
$grid_id = $variable['gr_id'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($vred_id !== null && (int)$vred_id > 0 && $grid_id > 0) {
|
|
$istr = "INSERT INTO srv_condition (if_id, spr_id, vrstni_red, vre_id, grd_id, text) VALUES ('$if_id', '$spr', '1', '$vred_id', '$grid_id', '$vrednost')"
|
|
. " ON DUPLICATE KEY UPDATE spr_id='$spr', vrstni_red = '1', grd_id='$grid_id', text='$vrednost'";
|
|
$sql = sisplet_query($istr);
|
|
|
|
if (!$sql) {
|
|
echo '<br>-3 :: '.$istr;
|
|
echo mysqli_error($GLOBALS['connect_db']);
|
|
}
|
|
$cond_id = mysqli_insert_id($GLOBALS['connect_db']);
|
|
return $cond_id;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function changeSessionInspect() {
|
|
session_start();
|
|
#Zamenjamo sejo
|
|
if (isset($_SESSION['enableInspect']) && $_SESSION['enableInspect'] == true) {
|
|
unset($_SESSION['enableInspect']);
|
|
} else {
|
|
$_SESSION['enableInspect'] = true;
|
|
}
|
|
session_commit();
|
|
|
|
#nastavimo inspect
|
|
if (isset($_SESSION['enableInspect']) && $_SESSION['enableInspect'] == true) {
|
|
$this->enableInspect = true;
|
|
} else {
|
|
# če ne preberemo iz profila
|
|
$this->enableInspect = false;
|
|
}
|
|
|
|
$this->displaySessionInspectCheckbox((isset($_POST['isAnaliza']) && (int)$_POST['isAnaliza'] == 1) ? true : false);
|
|
}
|
|
|
|
function DisplayLink($hideAdvanced = true) {
|
|
global $lang;
|
|
|
|
$css = ($this->enableInspect == SI_DEFAULT_PROFILE ? ' gray' : '');
|
|
if ($hideAdvanced == false || $this->enableInspect != SI_DEFAULT_PROFILE) {
|
|
echo '<li class="space"> </li>';
|
|
echo '<li>';
|
|
echo '<span class="as_link'.$css.'" id="link_inspect" title="' . $lang['srv_inspect_setting'] . '" onClick="show_inspect_settings();">' . $lang['srv_inspect_setting'] . '</span>'."\n";
|
|
echo '</li>';
|
|
|
|
}
|
|
}
|
|
function displaySessionInspectCheckbox($isAnaliza=false) {
|
|
global $lang;
|
|
if ($isAnaliza == true) {
|
|
echo '<input type="checkbox" id="session_inspect" '.($this->enableInspect == true ? ' checked="checekd"' : '').' onClick="changeSessionInspectAnaliza();">'.$lang['srv_inspect_setting'];
|
|
} else {
|
|
echo '<input type="checkbox" id="session_inspect" '.($this->enableInspect == true ? ' checked="checekd"' : '').' onClick="changeSessionInspect();">'.$lang['srv_inspect_setting'];
|
|
}
|
|
|
|
echo Help :: display('srv_crosstab_inspect');
|
|
}
|
|
|
|
function showInspectSettings() {
|
|
global $lang;
|
|
|
|
echo '<div class="popup_close"><a href="#" onClick="inspectCloseSettings(); return false;">✕</a></div>';
|
|
|
|
// Naslov
|
|
echo '<h2>'.$lang['srv_inspect_setting'].'</h2>';
|
|
|
|
if ( $this->enableInspect != SI_DEFAULT_PROFILE ) {
|
|
echo '<div id="not_default_setting">';
|
|
echo $lang['srv_not_default_setting'];
|
|
echo '</div><br class="clr displayNone">';
|
|
}
|
|
|
|
# Nastavitve za Inspect
|
|
echo '<p>'.$lang['srv_inspect_setting_link'].'</p>';
|
|
echo '<p>';
|
|
echo '<label>'.$lang['srv_inspect_setting_enabled'].'</label>';
|
|
echo ' <input id="enableInspect0" name="enableInspect" type="radio" value="0"' .
|
|
(($this->enableInspect == false) ? ' checked="checked" ' : '') . ' autocomplete="off"/>';
|
|
echo '<label for="enableInspect0">'.$lang['no'].'</label>';
|
|
|
|
echo ' <input id="enableInspect1" name="enableInspect" type="radio" value="1"' .
|
|
(($this->enableInspect == true) ? ' checked="checked" ' : '') . ' autocomplete="off"/>';
|
|
echo '<label for="enableInspect1">'.$lang['yes'].'</label>';
|
|
echo Help :: display('srv_crosstab_inspect');
|
|
echo '</p>';
|
|
echo '<p>';
|
|
echo '<div>';
|
|
echo '<span class="floatLeft">'.$lang['srv_inspect_goto_note'].'</span> ';
|
|
echo '<span class="floatLeft">';
|
|
echo '<label><input type="radio" name="inspectGoto" id="inspectGoto_'.SI_GOTO_ANALIZE.'" value="'.SI_GOTO_ANALIZE.'"'.($this->inspect_goto == SI_GOTO_ANALIZE ? ' checked="checked"' : '').' onchange="inspectRadioChange();return false;" autocomplete="off"/>'.$lang['srv_inspect_goto_'.SI_GOTO_ANALIZE].'</label><br/>';
|
|
echo '<label><input type="radio" name="inspectGoto" id="inspectGoto_'.SI_GOTO_VPOGLED.'" value="'.SI_GOTO_VPOGLED.'"'.($this->inspect_goto == SI_GOTO_VPOGLED ? ' checked="checked"' : '').' onchange="inspectRadioChange();return false;" autocomplete="off"/>'.$lang['srv_inspect_goto_'.SI_GOTO_VPOGLED].'</label> <br/>';
|
|
echo '<label><input type="radio" name="inspectGoto" id="inspectGoto_'.SI_GOTO_PODATKI.'" value="'.SI_GOTO_PODATKI.'"'.($this->inspect_goto == SI_GOTO_PODATKI ? ' checked="checked"' : '').' onchange="inspectRadioChange();return false;" autocomplete="off"/>'.$lang['srv_inspect_goto_'.SI_GOTO_PODATKI].'</label>';
|
|
echo '</span>';
|
|
echo '</div>';
|
|
echo'</p>';
|
|
echo'<br class="clr">';
|
|
echo '<p>';
|
|
echo '<div id="inspectListDiv" '.($this->inspect_goto != SI_GOTO_PODATKI ? ' class="displayNone"' : '').'>';
|
|
echo '<span>'.$lang['srv_inspect_setting_show_variables'].'</span>';
|
|
echo '<span id="inspectListSpr" class="as_link">';
|
|
$this->displayInspectVars();
|
|
echo '</span>';
|
|
echo '</div>';
|
|
echo '</p>';
|
|
|
|
echo '<span class="floatRight" title="'.$lang['srv_save_profile'].'"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="inspectSaveSettings(); return false;"><span>'.$lang['srv_save_profile'] . '</span></a></div></span>';
|
|
echo '<span class="floatRight spaceRight" title="'.$lang['srv_close_profile'].'"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="inspectCloseSettings(); return false;"><span>'.$lang['srv_close_profile'] . '</span></a></div></span>';
|
|
|
|
// cover Div
|
|
echo '<div id="inspect_cover_div"></div>'."\n";
|
|
|
|
}
|
|
|
|
function displayInspectVars() {
|
|
global $lang;
|
|
$vars = $_SESSION['dataSetting_profile'][$this->sid]['InspectListVars'];
|
|
|
|
if (is_array($vars) && count($vars) > 0 ) {
|
|
$stringSelect = "SELECT variable FROM srv_spremenljivka WHERE id IN (".implode(',',$_SESSION['dataSetting_profile'][$this->sid]['InspectListVars']).") ORDER BY vrstni_red";
|
|
|
|
$querySelect = sisplet_query($stringSelect);
|
|
$prefix = ' ';
|
|
while ( list($variable) = mysqli_fetch_row($querySelect) ) {
|
|
echo $prefix.$variable;
|
|
$prefix = ', ';
|
|
}
|
|
} else {
|
|
echo $lang['srv_inspect_no_variables'];
|
|
}
|
|
}
|
|
|
|
function showInspectListSpr() {
|
|
|
|
global $lang, $site_url;
|
|
$all_spr = Cache::cache_all_srv_spremenljivka($this->sid);
|
|
$vars = $_SESSION['dataSetting_profile'][$this->sid]['InspectListVars'];
|
|
echo '<div id="dsp_inspect_cover">';
|
|
echo '<div id="dsp_inspect_spr_select">';
|
|
|
|
echo '<span>'.$lang['srv_inspect_choose'].'</span>';
|
|
foreach ($all_spr AS $id => $spremenljivka) {
|
|
echo '<div class="dsp_inspect_var">';
|
|
echo '<input name="dsp_inspect_vars" id="dsp_inspect_var_'.$spremenljivka['id'].'" value="'.$spremenljivka['id'].'" type="checkbox"'
|
|
.(is_array($vars) && in_array($spremenljivka['id'],$vars) ? ' checked' : '').'>';
|
|
echo '<label for="dsp_inspect_var_'.$spremenljivka['id'].'">'.$spremenljivka['variable'].' - '.strip_tags($spremenljivka['naslov']).'</label>';
|
|
echo '</div>';
|
|
}
|
|
|
|
echo '</div>';
|
|
echo '<div class="inv_FS_btm">';
|
|
echo '<div id="navigationBottom" class="printHide">';
|
|
echo '<span id="dsp_inspect_cancel" class="floatLeft spaceLeft buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#"><span>'.$lang['srv_cancel'].'</span></a></span>';
|
|
echo '<span id="dsp_inspect_save" class="floatRight spaceRight buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#"><span>'.$lang['srv_zapri'].'</span></a></span>';
|
|
echo '<div class="clr" />';
|
|
echo '</div>';
|
|
|
|
#echo '</div>';
|
|
echo '</div>';
|
|
}
|
|
|
|
function saveInspectListVars() {
|
|
if (count($_POST['vars']) > 0 ) {
|
|
$_SESSION['dataSetting_profile'][$this->sid]['InspectListVars'] = $_POST['vars'];
|
|
} else {
|
|
unset($_SESSION['dataSetting_profile'][$this->sid]['InspectListVars']);
|
|
}
|
|
}
|
|
|
|
function saveSettings() {
|
|
if (isset($_POST['enableInspect']) && $_POST['enableInspect'] == 1 ) {
|
|
$this->enableInspect = true;
|
|
$_SESSION['enableInspect'] = true;
|
|
} else {
|
|
unset($_SESSION['enableInspect']);
|
|
$this->enableInspect = false;
|
|
}
|
|
|
|
$this->inspectGoto = (int)$_POST['inspectGoto'];
|
|
$_SESSION['inspect_goto'] = $this->inspectGoto;
|
|
}
|
|
|
|
|
|
function getConditionString() {
|
|
global $lang;
|
|
#preverimi ali imamo nastavljen pogoj za inspect
|
|
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
|
|
if ($if_id > 0) {
|
|
ob_start();
|
|
$b = new Branching($this->sid);
|
|
|
|
$b->display_if_label($if_id);
|
|
#$condition_label = mysqli_escape_string(ob_get_contents());
|
|
$condition_label = ob_get_contents();
|
|
ob_end_clean();
|
|
|
|
if ( $if_id > 0 && $condition_label != '') {
|
|
|
|
echo '<div id="conditionProfileNote">';
|
|
echo '<span class="floatLeft">'.$lang['srv_profile_data_is_filtred_zoom'].'</span>';
|
|
echo '<span class="floatLeft spaceLeft">'.$condition_label.'</span>';
|
|
// ali imamo napake v ifu
|
|
#TODO
|
|
# if ((int)self::$profiles[self :: $currentProfileId]['condition_error'] != 0) {
|
|
# echo '<br>';
|
|
# echo '<span style="border:1px solid #009D91; background-color: #34D0B6; padding:5px; width:auto;"><img src="img_0/error.png" /> ';
|
|
# echo '<span class="red strong">'.$lang['srv_profile_condition_has_error'].'</span>';
|
|
# echo '</span>';
|
|
# }
|
|
#
|
|
session_start();
|
|
global $site_url;
|
|
if (isset($_SESSION['inspectFromPodstran'][$this->sid])) {
|
|
$inspect_comeFrom = '\''.$site_url.'admin/survey/index.php?anketa='.$this->sid.'&a=analysis&m='.$_SESSION['inspectFromPodstran'][$this->sid].'\'';
|
|
unset($_SESSION['inspectFromPodstran'][$this->sid]);
|
|
} else {
|
|
$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
|
|
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
|
$inspect_comeFrom = '\''.$pageURL.'\'';
|
|
}
|
|
echo '<span class="as_link spaceLeft" id="link_condition_edit">'.$lang['srv_profile_edit'].'</span>';
|
|
echo '<span class="as_link spaceLeft" onclick="window.location=\'index.php?anketa='.$this->sid.'&a=data&m=quick_edit&quick_view=1\'">'.$lang['srv_zoom_link_whoisthis'].'</span>';
|
|
echo '<span class="as_link spaceLeft" onclick="doZoomFromInspect();return false">Segmentiraj'.$lang[''].'</span>';
|
|
echo '<span class="as_link spaceLeft" onclick="inspectRemoveCondition('.$inspect_comeFrom.');">'.$lang['srv_profile_remove'].'</span>';
|
|
echo '</div>';
|
|
echo '<br class="clr" />';
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function removeInspect() {
|
|
#preverimi ali imamo nastavljen pogoj za inspect
|
|
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
|
|
if ($if_id > 0) {
|
|
# odstranimo pogoj, srv_if
|
|
$delStr = "DELETE FROM srv_if WHERE if = '$if_id'";
|
|
sisplet_query($delStr);
|
|
|
|
# odstranimo condition profil: srv_condition profile
|
|
$delStr = "DELETE FROM srv_condition_profiles WHERE sid='".$this->sid."' AND type='inspect' AND if_id = '$if_id'";
|
|
sisplet_query($delStr);
|
|
|
|
#odstranimo zapis za inspect
|
|
SurveyUserSetting :: getInstance()->removeSettings('inspect_if_id');
|
|
}
|
|
}
|
|
|
|
function generateAwkCondition() {
|
|
global $global_user_id;
|
|
|
|
#preverimi ali imamo nastavljen pogoj za inspect
|
|
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
|
|
if ($if_id > 0) {
|
|
SurveyConditionProfiles :: Init($this->sid, $global_user_id);
|
|
return SurveyConditionProfiles:: generateAwkCondition($if_id);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public function getInspectVariables() {
|
|
global $global_user_id;
|
|
$vars = array();
|
|
#preverimi ali imamo nastavljen pogoj za inspect
|
|
$if_id = (int)SurveyUserSetting :: getInstance()->getSettings('inspect_if_id');
|
|
if ($if_id > 0) {
|
|
$sql = sisplet_query("SELECT spr_id, vre_id FROM srv_condition WHERE if_id = '$if_id'");
|
|
while (list($spr_id, $vre_id) = mysqli_fetch_row($sql)) {
|
|
if ((int)$vre_id > 0) {
|
|
$vars[] = $spr_id.'_'.$vre_id;
|
|
} else {
|
|
$vars[] = $spr_id;
|
|
}
|
|
}
|
|
}
|
|
return $vars;
|
|
}
|
|
} |