421 lines
14 KiB
PHP
421 lines
14 KiB
PHP
<?php
|
|
// star class. Nasomesti ga class.SurveyMissingValues
|
|
|
|
/*
|
|
* Created on 20.5.2009
|
|
*
|
|
*/
|
|
|
|
class Setting
|
|
{
|
|
static private $instance;
|
|
|
|
// nastavitve sistema
|
|
static private $sysSetting = array();
|
|
|
|
// nastavitve ankete
|
|
static private $srvSetting = array();
|
|
|
|
// nastavitve uporabnika
|
|
static private $usrSetting = array();
|
|
|
|
// userId
|
|
static private $uid = null;
|
|
|
|
static private $mySqlResult = null;
|
|
static private $mySqlErrNo = null;
|
|
|
|
// konstrutor
|
|
protected function __construct() {}
|
|
// kloniranje
|
|
final private function __clone() {}
|
|
|
|
/** Poskrbimo za samo eno instanco razreda
|
|
*
|
|
*/
|
|
static function getInstance()
|
|
{
|
|
if(!self::$instance)
|
|
{
|
|
self::$instance = new Setting();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
/** inicializacija */
|
|
|
|
static function Init( $_userId = null )
|
|
{
|
|
if ( $_userId )
|
|
{ self::$uid = $_userId; }
|
|
self::refreshData();
|
|
}
|
|
|
|
|
|
// nastavimo nov User Id
|
|
static function setUID( $_userId )
|
|
{
|
|
if ( $_userId )
|
|
{ self::$uid = $_userId; }
|
|
$this->refreshData();
|
|
}
|
|
|
|
// osvežimo podatke nastavitev
|
|
static function refreshData()
|
|
{
|
|
// nastavitve sistema
|
|
self::getSystemSetting();
|
|
// nastavitve ankete
|
|
|
|
// nastavitve uporabika
|
|
}
|
|
|
|
static function getSystemSetting()
|
|
{
|
|
//$stringSystemSetting = "SELECT * FROM srv_settng "
|
|
|
|
}
|
|
|
|
/** @desc: polovi sistemske filtre */
|
|
private static $_systemFilters = array();
|
|
private static $_systemFiltersArray;
|
|
static function GetSystemFilters($filter=null)
|
|
{
|
|
if (!$filter) {
|
|
if (isset(self::$_systemFiltersArray)) {
|
|
return self::$_systemFiltersArray;
|
|
}
|
|
else {
|
|
$result = array();
|
|
$stringSystemSetting_filters = "SELECT * FROM srv_sys_filters ORDER BY type, filter ASC";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
while ( $rowSystemSetting_filters = mysqli_fetch_assoc($sqlSystemSetting_filters) )
|
|
{
|
|
$result[] = $rowSystemSetting_filters;
|
|
}
|
|
self::$_systemFiltersArray = $result;
|
|
return self::$_systemFiltersArray;
|
|
}
|
|
}
|
|
else {
|
|
if (isset(self::$_systemFilters[$filter]))
|
|
return self::$_systemFilters[$filter];
|
|
else
|
|
{
|
|
$stringSystemSetting_filters = "SELECT * FROM srv_sys_filters where filter = '".$filter."'";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
$result = mysqli_fetch_assoc($sqlSystemSetting_filters);
|
|
self::$_systemFilters[$filter] = $result;
|
|
return $result;
|
|
}
|
|
}
|
|
}
|
|
|
|
// vrne array z sistemskimi filtri
|
|
private static $_systemFiltersValues;
|
|
static function GetSystemFiltersValues()
|
|
{
|
|
if (isset(self::$_systemFiltersValues)) {
|
|
return self::$_systemFiltersValues;
|
|
}
|
|
else {
|
|
$result = array();
|
|
$stringSystemSetting_filters = "SELECT filter FROM srv_sys_filters ORDER BY type, filter ASC";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
while ( $rowSystemSetting_filters = mysqli_fetch_assoc($sqlSystemSetting_filters) )
|
|
{
|
|
$result[$rowSystemSetting_filters['filter']] = $rowSystemSetting_filters['filter'];
|
|
}
|
|
self::$_systemFiltersValues = $result;
|
|
return self::$_systemFiltersValues;
|
|
}
|
|
}
|
|
|
|
private static $_systemFiltersByType = array();
|
|
static function GetSystemFlterByType($type)
|
|
{
|
|
if (isset(self::$_systemFiltersByType[$type]))
|
|
return self::$_systemFiltersByType[$type];
|
|
else {
|
|
$result = array();
|
|
$stringSystemSetting_filters = "SELECT * FROM srv_sys_filters WHERE type = '".$type."' ORDER BY filter ASC";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
while ( $rowSystemSetting_filters = mysqli_fetch_assoc($sqlSystemSetting_filters) )
|
|
{
|
|
$result[] = $rowSystemSetting_filters;
|
|
}
|
|
self::$_systemFiltersByType[$type] = $result;
|
|
return self::$_systemFiltersByType[$type];
|
|
}
|
|
}
|
|
|
|
/** desc: vrnemo sistemsko privzete nastavtive filtrov
|
|
* (v opisnih statistikah so vsi filtri vključeni, v frekvencah pa izključeni)
|
|
*/
|
|
private static $_systemFiltersDefaultValues = array();
|
|
static function GetSystemFlterDefaultValues($fid)
|
|
{
|
|
if (isset(self::$_systemFiltersDefaultValues[$fid]))
|
|
return self::$_systemFiltersDefaultValues[$fid];
|
|
else {
|
|
$result = array('means'=>false, 'crosstab'=>false, 'frequencies'=>false, 'descriptives'=>true);
|
|
self::$_systemFiltersByType[$fid] = $result;
|
|
return self::$_systemFiltersByType[$fid];
|
|
}
|
|
}
|
|
|
|
|
|
// vrne true če je $key v tabeli z filtri
|
|
private static $_systemFiltersValue;
|
|
static function isSystemFiltersValue($key)
|
|
{
|
|
$stringSystemSetting_filters = "SELECT count(id) as cnt FROM srv_sys_filters where filter = '".$key."'";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
$row = mysqli_fetch_assoc($sqlSystemSetting_filters);
|
|
return $row['cnt'];
|
|
}
|
|
|
|
static function AddSystemFilters( $filter, $text, $fid)
|
|
{
|
|
$insertString = "INSERT INTO srv_sys_filters (fid,filter,text,uid,type) ".
|
|
"VALUES ('".$fid."', '".$filter."', '".$text."', '".self::$uid."', '3');";
|
|
self::$mySqlResult = sisplet_query($insertString);
|
|
self::$mySqlErrNo = mysqli_errno($GLOBALS['connect_db']);
|
|
}
|
|
static function DeleteSystemFilters( $id)
|
|
{
|
|
$deleteString = "DELETE FROM srv_sys_filters WHERE id = '".$id."'";
|
|
self::$mySqlResult = sisplet_query($deleteString);
|
|
self::$mySqlErrNo = mysqli_errno($GLOBALS['connect_db']);
|
|
}
|
|
static function SaveSystemFilters($id,$filter,$text)
|
|
{
|
|
$updateString = "UPDATE srv_sys_filters " .
|
|
"SET filter = '".$filter."', text = '".$text."' ".
|
|
"WHERE id = '".$id."'";
|
|
self::$mySqlResult = sisplet_query($updateString);
|
|
self::$mySqlErrNo = mysqli_errno($GLOBALS['connect_db']);
|
|
}
|
|
|
|
private static $_systemSysVarFlterData = array();
|
|
static function GetSystemSysVarFlterData($id)
|
|
{
|
|
if (isset(self::$_systemSysVarFlterData[$id])) {
|
|
return self::$_systemSysVarFlterData[$id];
|
|
}
|
|
else {
|
|
$stringSystemSetting_filters = "SELECT * FROM srv_sys_filters WHERE id = '".$id."'";
|
|
$sqlSystemSetting_filters = sisplet_query($stringSystemSetting_filters );
|
|
$result = mysqli_fetch_assoc($sqlSystemSetting_filters);
|
|
self::$_systemSysVarFlterData[$id] = $result;
|
|
return self::$_systemSysVarFlterData[$id];
|
|
}
|
|
}
|
|
|
|
/** Hendla prikaz filtrov v nastavitvah
|
|
*
|
|
*/
|
|
static function DisplaySystemFilters($mode='normal')
|
|
{
|
|
global $lang;
|
|
global $s;
|
|
$filtri = self::GetSystemFilters();
|
|
if ( $mode=='normal' )
|
|
{
|
|
echo '<a href="#" onClick="sysFilterEditMode(\'edit\'); return false;">';
|
|
echo '<span class="faicon edit small"></span>'
|
|
.$lang['srv_settings_filter_edit_mode']. '</a>';
|
|
echo '<div class="clr"></div>';
|
|
echo '<div style="clear:both; padding:5px; height:1.2em">';
|
|
|
|
echo '<div style="width:40px; float:left; text-align:left; padding-right:15px; text-align:right">';
|
|
echo '<i style="color:gray; text-align:right">'.$lang['srv_filter_id'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '<div style="width:50px; float:left; text-align:left; padding-right:15px;">';
|
|
echo '<i style="color:gray;text-align:right">'.$lang['srv_filter_vrednost'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '<div class="" style="width:250px; float:left; color: gray">';
|
|
echo '<i style="color:gray;">'.$lang['srv_filter_variabla'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
|
|
foreach ( $filtri as $key => $filter)
|
|
{
|
|
echo '<div id="sysfilter_div_'.$filter['id'].'" style="clear:both; padding-bottom:0px; height:1.2em;">';
|
|
echo '<div id="sysfilter_filter_'.$filter['id'].'" class="spr_sysFilter'.$filter['type'].'" style="width:40px; float:left; text-align:left; padding-right:15px; color:gray; text-align:right;">'.$filter['fid'].'</div>';
|
|
echo '<div id="sysfilter_filter_'.$filter['id'].'" class="spr_sysFilter'.$filter['type'].'" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">'.$filter['filter'].'</div>';
|
|
echo '<div id="sysfilter_text_'.$filter['id'].'" class="spr_sysFilter'.$filter['type'].'" style="width:250px; float:left;">'.$filter['text'].'</div>';
|
|
echo '</div>';
|
|
}
|
|
}
|
|
else
|
|
if ( $mode=='edit' || $mode=='new')
|
|
{
|
|
echo '<a href="/" onClick="sysFilterEditMode(\'normal\'); return false;">';
|
|
echo '<span class="faicon mapca anketa small"></span>'
|
|
.$lang['srv_settings_filter_view_mode']. '</a>';
|
|
|
|
echo '<div style="clear:both; padding:5px; height:1.2em">';
|
|
|
|
echo '<div style="width:40px; float:left; text-align:left; padding-right:15px; text-align:right">';
|
|
echo '<i style="color:gray; text-align:right">'.$lang['srv_filter_id'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '<div style="width:50px; float:left; text-align:left; padding-right:15px;">';
|
|
echo '<i style="color:gray;">'.$lang['srv_filter_vrednost'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '<div class="" style="width:250px; float:left; color: gray">';
|
|
echo '<i style="color:gray;">'.$lang['srv_filter_variabla'].'</i>';
|
|
echo '</div>';
|
|
|
|
echo '</div>';
|
|
foreach ( $filtri as $key => $filter)
|
|
{
|
|
|
|
echo '<div id="sysfilter_div_'.$filter['id'].'" style="clear:both; padding:5px; height:1.2em">';
|
|
|
|
echo '<div id="sysfilter_filter_'.$filter['id'].'" class="" style="width:40px; float:left; text-align:left; padding-right:15px; color:gray; text-align:right;">'.$filter['fid'].'</div>';
|
|
|
|
echo '<div id="sysfilter_filter_'.$filter['id'].'" class="" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">';
|
|
echo '<input id="sysfilter_filter_input_'.$filter['id'].'" type="text" value="'.$filter['filter'].'" title="'.$filter['filter'].'" size="6" maxlength="6">';
|
|
echo '</div>';
|
|
|
|
echo '<div id="sysfilter_text_'.$filter['id'].'" class="" style="width:250px; float:left;">';
|
|
echo '<input id="sysfilter_text_input_'.$filter['id'].'" type="text" value="'.$filter['text'].'" title="'.$filter['text'].'" size="45" maxlength="100">';
|
|
echo '</div>';
|
|
|
|
if ( $filter['type'] == 3)
|
|
{
|
|
echo '<div id="sysfilter_edit_'.$filter['id'].'" class="" style="width:100px; float:left;">';
|
|
echo '<a href="/" onClick="sysFilterDelete('.$filter['id'].'); return false;">';
|
|
echo '<img id="sysfilter_delete_'.$filter['id'].'" src="img_'.$s->skin.'/delete_red.png" alt="'.$lang['srv_filtri_izbrisi_filter'].'" style="vertical-align:text-bottom " />';
|
|
echo '</a>';
|
|
echo '</div>';
|
|
}
|
|
echo '</div>';
|
|
echo '<script>';
|
|
echo '$(document).ready(function() {';
|
|
echo '$("#sysfilter_delete_'.$filter['id'].'").click(function(e) {});';
|
|
echo '$("#sysfilter_filter_input_'.$filter['id'].'").blur(function(e) {sysFilterSave('.$filter['id'].'); return false;});';
|
|
echo '$("#sysfilter_text_input_'.$filter['id'].'").blur(function(e) {sysFilterSave('.$filter['id'].'); return false;});';
|
|
echo '$("#sysfilter_extra_'.$filter['id'].'").click(function(e) {sysFilterExtraSetting('.$filter['id'].'); return false;});';
|
|
|
|
echo '});';
|
|
echo '</script>';
|
|
}
|
|
echo '<div class="clr"></div>';
|
|
// pohendlamo error: duplicate
|
|
if (self::$mySqlErrNo == 1062)
|
|
{
|
|
echo '<div id="error" class="red">';
|
|
echo $lang['srv_duplicateEntry'];
|
|
echo '</div>';
|
|
}
|
|
|
|
echo '<div id="sysfilter_new" style="padding-top:10px;">';
|
|
if ($mode == 'new')
|
|
{
|
|
echo '<div id="sysfilter_div_add" style="clear:both; padding:5px; height:1.2em">';
|
|
|
|
echo '<div id="sysfilter_filter_add" style="width:40px; float:left; text-align:left; padding-right:15px;">';
|
|
echo '<input id="sysfilter_fid_input_add" type="text" value="'.$filter['fid'].'" title="'.$filter['fid'].'" size="6" maxlength="6">';
|
|
echo '</div>';
|
|
|
|
echo '<div id="sysfilter_filter_add" class="" style="width:50px; float:left; text-align:left; padding-right:15px;">';
|
|
echo '<input id="sysfilter_filter_input_add" type="text" value="'.$filter['filter'].'" title="'.$filter['filter'].'" size="6" maxlength="6">';
|
|
echo '</div>';
|
|
|
|
echo '<div id="sysfilter_text_add" class="" style="width:250px; float:left;">';
|
|
echo '<input id="sysfilter_text_input_add" type="text" value="'.$filter['text'].'" title="'.$filter['text'].'" size="45" maxlength="100">';
|
|
echo '</div>';
|
|
|
|
echo '<div class="" style="width:50px; float:left;">';
|
|
echo '<img id="sysfilter_add_img" src="icons/icons/accept.png" alt="'.$lang['srv_novfilter'].'" style="vertical-align:text-bottom " />';
|
|
echo '</div>';
|
|
}
|
|
else
|
|
echo '<img id="sysfilter_new_img" src="img_'.$s->skin.'/add.png" alt="'.$lang['srv_novfilter'].'" style="vertical-align:text-bottom " />'.$lang['srv_novfilter'];
|
|
echo '</div>';
|
|
echo '<script>';
|
|
echo '$(document).ready(function() {';
|
|
echo '$("#sysfilter_new_img").click(function(e) {sysFilterEditMode(\'new\'); return false;});';
|
|
echo '$("#sysfilter_add_img").click(function(e) {sysFilterEditMode(\'add\'); return false;});';
|
|
echo '});';
|
|
echo '</script>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @desc polovimo nastavitev survey sistema
|
|
*/
|
|
private static $_sysMiscSetting = array();
|
|
function getSysMiscSetting($what=null)
|
|
{
|
|
if (isset(self::$_sysMiscSetting[$what])) {
|
|
return self::$_sysMiscSetting[$what];
|
|
}
|
|
else
|
|
{
|
|
$result = null;
|
|
if (is_string($what))
|
|
{
|
|
$stringSelect = "SELECT value FROM srv_misc WHERE what = '".$what."'";
|
|
$sqlSelect = sisplet_query($stringSelect);
|
|
$rowSelect = mysqli_fetch_array($sqlSelect);
|
|
if (mysqli_num_rows($sqlSelect) > 0)
|
|
$result = $rowSelect['value'];
|
|
else
|
|
$result = '';
|
|
}
|
|
if($result == ''&&$what == 'export_data_type'){
|
|
$result = 2;
|
|
}
|
|
self::$_sysMiscSetting[$what] = $result;
|
|
return self::$_sysMiscSetting[$what];
|
|
}
|
|
}
|
|
/**
|
|
* @desc shranimo nastavitev survey sistema
|
|
*/
|
|
function setSysMiscSetting($what=null, $value=null)
|
|
{
|
|
if ( $what && $value )
|
|
{
|
|
if ( is_string($what) && is_string($value) )
|
|
{
|
|
$stringInsert = "INSERT INTO srv_misc (what, value) VALUES ('".$what."', '".$value."') ON DUPLICATE KEY UPDATE value = '".$value."'";
|
|
$sqlInsert = sisplet_query($stringInsert);
|
|
return mysqli_affected_rows($GLOBALS['connect_db']);
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
}
|
|
/*
|
|
function getTableNextAutoIncrement($tableName)
|
|
{
|
|
$next_increment = 0;
|
|
$qShowStatus = "SHOW TABLE STATUS LIKE '$tableName'";
|
|
$qShowStatusResult = sisplet_query($qShowStatus) or die ( "Query failed: " . mysqli_error($GLOBALS['connect_db']) . "<br/>" . qShowStatus );
|
|
|
|
|
|
while ($row = mysqli_fetch_assoc($qShowStatusResult)) {
|
|
$next_increment = $row['Auto_increment'];
|
|
}
|
|
mysqli_free_result($qShowStatusResult);
|
|
return $next_increment;
|
|
|
|
|
|
}
|
|
*/
|
|
?>
|