2020-08-14 13:36:36 +02:00
< ? php
/* Class skribi za nastavitve missingov ,
* najprej na nivoju sistema .
* potem na nivoju ankete
*
* prav tako skrbi za missinge pri izpolnjevanju ankete in lovljenju podatkov , kakor tudi analizah
*
* v srv_anketa na anketi nastavimo missing_values_type = 1 , kadar imamo missinge nastavljene na nivoju ankete
*
* # neodgovori (type = 1):
* - 1 - ni odgovoril
* - 2 - preskok ( if )
* - 3 - prekinjeno
* - 4 - naknadno vprašanje
*
* # neopredeljeni odgovori (type = 2)
* - 99 Ne vem
* - 98 Zavrnil
* - 97 Neustrezno
*
* # ostali so uporabniško določeni (type = 3)
* - 96 Drugo .....
*
*
*
* Created on 21.9 . 2010 ( Gorazd Veselič
*/
class SurveyMissingValues
{
private static $anketa = null ; # trenutna anketa
private static $srv_old_missing = 1 ; # ali imamo misinge na star način
private static $sysNeodgovori = array (); # array z sistemskimi neodgovori
private static $sysNeopredeljeni = array (); # array z sistemskimi neopredeljenimi
private static $sysUserSet = array (); # array z sistemskimi uporabniško nastavljenimi
private static $missing_values_type = 0 ; # Nivo missingov: 0 - sistemski, 1 - uporabniško nastavljen
private static $mySqlErrNo = null ; # ali imamo mysql napako
/**
* konstruktor
*
* @ param mixed $anketa
*/
function __construct ( $anketa = 0 ) {
2021-10-19 13:01:22 +02:00
2020-08-14 13:36:36 +02:00
if ( self :: $anketa == null ) {
2021-10-19 13:01:22 +02:00
if (( int ) $anketa > 0 ) {
self :: $anketa = ( int ) $anketa ;
}
elseif ( isset ( $_GET [ 'anketa' ]) && ( int ) $_GET [ 'anketa' ] > 0 ) {
2020-08-14 13:36:36 +02:00
self :: $anketa = $_GET [ 'anketa' ];
2021-10-19 13:01:22 +02:00
}
elseif ( isset ( $_POST [ 'anketa' ]) && ( int ) $_POST [ 'anketa' ] > 0 ) {
2020-08-14 13:36:36 +02:00
self :: $anketa = $_POST [ 'anketa' ];
}
2021-10-19 13:01:22 +02:00
2020-08-14 13:36:36 +02:00
# polovimo nastavitve ankete če obstaja
if ( self :: $anketa != null && ( int ) self :: $anketa > 0 ) {
SurveyInfo :: getInstance () -> SurveyInit ( self :: $anketa );
SurveyInfo :: getInstance () -> resetSurveyData ();
self :: $missing_values_type = SurveyInfo :: getInstance () -> getSurveyColumn ( 'missing_values_type' ) == 1 ? 1 : 0 ;
# če še nismo nastavili manjkajočih vrednosti jih prepišemo iz sistemskih
if (( int ) self :: $missing_values_type == 0 ) {
self :: SetUpSurvyeMissingValues ();
}
}
self :: Init ();
}
}
/** Inicializacija , prebere sistemske vrednoasti iz baze
*
*/
static function Init () {
# če nimamo missingov dodamo sistemske
$countSystem = " SELECT count(*) FROM srv_missing_values WHERE sid=' " . self :: $anketa . " ' " ;
list ( $cntMissing ) = mysqli_fetch_row ( sisplet_query ( $countSystem ));
if (( int ) $cntMissing == 0 ) {
self :: useSystemMissingValues ();
}
# preberemo sistemske nastavitve
self :: selectSysNeodgovori ();
self :: selectSysNeopredeljeni ();
self :: selectSysUserSet ();
}
# AJAX funkcije
/** Ajax handler
*
*/
public function ajax () {
if ( $_GET [ 'a' ] == 'sysMissingValuesChangeMode' ) {
$_mode = $_POST [ 'mode' ];
if ( $_mode == 'normal' ) {
self :: displayNormalMode ( $_mode );
}
if ( $_mode == 'edit' ) {
self :: sysMissingValuesChangeMode ( $_mode );
}
if ( $_mode == 'new' ) {
self :: sysMissingValuesChangeMode ( $_mode );
}
}
if ( $_GET [ 'a' ] == 'sysMissingValuesSave' ) {
self :: SaveSystemFilters ( $_POST [ 'id' ], $_POST [ 'filter' ], $_POST [ 'text' ]);
self :: Init ();
$_mode = 'edit' ;
self :: sysMissingValuesChangeMode ( $_mode );
}
if ( $_GET [ 'a' ] == 'sysMissingValuesAdd' ) {
self :: AddSystemFilters ( $_POST [ 'filter' ], $_POST [ 'text' ], $_POST [ 'filter' ]);
self :: Init ();
$_mode = 'edit' ;
self :: sysMissingValuesChangeMode ( $_mode );
}
if ( $_GET [ 'a' ] == 'sysMissingValuesDelete' ) {
self :: DeleteSystemFilters ( $_POST [ 'id' ]);
self :: Init ();
$_mode = 'edit' ;
self :: sysMissingValuesChangeMode ( $_mode );
}
if ( $_GET [ 'a' ] == 'changeSurveyMissingSettings' ) {
self :: saveMisingValueTypeForSurvey ();
self :: displayMissingForSurvey ();
}
if ( $_GET [ 'a' ] == 'useSystemMissingValues' ) {
self :: useSystemMissingValues ();
self :: displayMissingForSurvey ();
}
if ( $_GET [ 'a' ] == 'saveSurveyMissingValue' ) {
self :: saveSurveyMissingValue ();
self :: displayMissingForSurvey ();
}
if ( $_GET [ 'a' ] == 'srv_missing_confirm_delete' ) {
self :: deleteMissingForSurvey ();
self :: displayMissingForSurvey ();
}
if ( $_GET [ 'a' ] == 'srv_missing_add_new' ) {
self :: displayAddMissingValue ();
}
if ( $_GET [ 'a' ] == 'srv_missing_confirm_add' ) {
self :: addSurveyFilters ();
}
if ( $_GET [ 'a' ] == 'srv_missing_display' ) {
self :: displayMissingForSurvey ();
}
}
/* polovi sistemske neodgovore ,
* type = 1
*/
private static function selectSysNeodgovori () {
self :: $sysNeodgovori = array ();
$str_select = " SELECT filter,text FROM srv_sys_filters WHERE type = 1 " ;
$qry_select = sisplet_query ( $str_select );
while ( $row_select = mysqli_fetch_assoc ( $qry_select )) {
self :: $sysNeodgovori [ $row_select [ 'filter' ]] = $row_select [ 'text' ];
}
}
/* polovi sistemske neopredeljene ,
* type = 2
*/
private static function selectSysNeopredeljeni () {
self :: $sysNeopredeljeni = array ();
$str_select = " SELECT filter,text FROM srv_sys_filters WHERE type = 2 " ;
$qry_select = sisplet_query ( $str_select );
while ( $row_select = mysqli_fetch_assoc ( $qry_select )) {
self :: $sysNeopredeljeni [ $row_select [ 'filter' ]] = $row_select [ 'text' ];
}
}
/* polovi sistemske uporabniško nastavljene ,
* type = 3
*/
private static function selectSysUserSet () {
self :: $sysUserSet = array ();
$str_select = " SELECT filter,text FROM srv_sys_filters WHERE type = 3 " ;
$qry_select = sisplet_query ( $str_select );
while ( $row_select = mysqli_fetch_assoc ( $qry_select )) {
self :: $sysUserSet [ $row_select [ 'filter' ]] = $row_select [ 'text' ];
}
}
/** polovimo missinge za anketo
* če obstaja nastavitev za anketo , ( TODO )
* če ne vzamemo privzete sistenmske misinge
*
*
* @ var unknown_type
*/
private static $_systemFiltersByType = array ();
static function GetSystemFlterByType ( $type , $forceSystem = false ) {
global $lang ;
if ( is_array ( $type )) {
$type = ( string ) implode ( ',' , $type );
$_type = " type IN ( " . $type . " ) " ;
} else {
$_type = " type = ' " . $type . " ' " ;
}
if ( isset ( self :: $_systemFiltersByType [ $type ])) {
return self :: $_systemFiltersByType [ $type ];
} else {
$result = array ();
# preverimo iz katere tabele lovimo lahko imamo na nivoju ankete ali na nivoju sistema
if (( int ) self :: $missing_values_type == 1 && $forceSystem == false ) {
$stringSystemSetting_filters = " SELECT value AS filter, text FROM srv_missing_values WHERE sid=' " . self :: $anketa . " ' AND " . $_type . " AND active = 1 ORDER BY type ASC, value ASC " ;
} else {
$stringSystemSetting_filters = " SELECT filter, text FROM srv_sys_filters WHERE " . $_type . " ORDER BY filter ASC " ;
}
$sqlSystemSetting_filters = sisplet_query ( $stringSystemSetting_filters );
while ( $rowSystemSetting_filters = mysqli_fetch_assoc ( $sqlSystemSetting_filters ) )
{
# naredimo prevode:
$result [ $rowSystemSetting_filters [ 'filter' ]] = $lang [ 'srv_mv_' . $rowSystemSetting_filters [ 'text' ]] != '' ? $lang [ 'srv_mv_' . $rowSystemSetting_filters [ 'text' ]] : $rowSystemSetting_filters [ 'text' ];;
}
self :: $_systemFiltersByType [ $type ] = $result ;
return self :: $_systemFiltersByType [ $type ];
}
}
# urejanje sistemskih missingov
/* Prikaže osnovni okvir za urejanje missingov
*
*/
static public function SystemFilters () {
global $lang ;
echo '<fieldset>' ;
echo '<legend>' . $lang [ 'srv_filtri' ] . '</legend>' ;
echo '<div class="nastavitveSpan1" style="height:auto; float:left;"><label>' . $lang [ 'srv_filtri_text' ] . ':</label></div>' ;
echo '<div id="sys_missing_values" style="display:block; float:left; width:auto; margin:0px 0px 5px 5px; padding: 0px; 5px;">' ;
self :: displayNormalMode ();
echo '</div>' ;
echo '</fieldset>' ;
}
/** Prikaže navaden način misingov - predogled
*
* @ param $_mode
*/
private static function displayNormalMode ( $_mode = null ) {
global $lang ;
//echo '<a href="#" onClick="sysFilterEditMode(\'edit\'); return false;">';
echo '<a href="#" onClick="sysMissingValuesChangeMode(\'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: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>' ;
# neodgovori
if ( count ( self :: $sysNeodgovori ) > 0 ) {
foreach ( self :: $sysNeodgovori as $key => $text ) {
echo '<div id="sysfilter_div_' . $key . '" style="clear:both; padding-bottom:0px; height:1.2em;">' ;
echo '<div id="sysfilter_filter_' . $key . '" class="spr_sysFilter1" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' . $key . '</div>' ;
echo '<div id="sysfilter_text_' . $key . '" class="spr_sysFilter1" style="width:250px; float:left;">' . $text . '</div>' ;
echo '</div>' ;
}
}
# neopredeljeni
if ( count ( self :: $sysNeopredeljeni ) > 0 ) {
foreach ( self :: $sysNeopredeljeni as $key => $text ) {
echo '<div id="sysfilter_div_' . $key . '" style="clear:both; padding-bottom:0px; height:1.2em;">' ;
echo '<div id="sysfilter_filter_' . $key . '" class="spr_sysFilter2" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' . $key . '</div>' ;
echo '<div id="sysfilter_text_' . $key . '" class="spr_sysFilter2" style="width:250px; float:left;">' . $text . '</div>' ;
echo '</div>' ;
}
}
# uporabniški
if ( count ( self :: $sysUserSet ) > 0 ) {
foreach ( self :: $sysUserSet as $key => $text ) {
echo '<div id="sysfilter_div_' . $key . '" style="clear:both; padding-bottom:0px; height:1.2em;">' ;
echo '<div id="sysfilter_filter_' . $key . '" class="spr_sysFilter3" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' . $key . '</div>' ;
echo '<div id="sysfilter_text_' . $key . '" class="spr_sysFilter3" style="width:250px; float:left;">' . $text . '</div>' ;
echo '</div>' ;
}
}
}
/** Prikaže edit mode za misinge
*
* @ param unknown_type $mode
*/
private static function sysMissingValuesChangeMode ( $mode = '' ) {
global $lang ;
echo '<a href="/" onClick="sysMissingValuesChangeMode(\'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: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>' ;
# neodgovori
if ( count ( self :: $sysNeodgovori ) > 0 ) {
foreach ( self :: $sysNeodgovori as $key => $text ) {
echo '<div id="sysMissingValues_div_' . $key . '" style="clear:both; padding:5px; height:1.2em">' ;
echo ' <div id="sysMissingValues_filter_' . $key . '" class="" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' ;
echo ' <input id="sysMissingValues_filter_input_' . $key . '" type="text" value="' . $key . '" title="' . $key . '" size="6" maxlength="6" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo ' <div id="sysMissingValues_text_' . $key . '" class="" style="width:250px; float:left;">' ;
echo ' <input id="sysMissingValues_text_input_' . $key . '" type="text" value="' . $text . '" title="' . $text . '" size="45" maxlength="100" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo '</div>' ;
}
}
# neopredeljeni
if ( count ( self :: $sysNeopredeljeni ) > 0 ) {
foreach ( self :: $sysNeopredeljeni as $key => $text ) {
echo '<div id="sysMissingValues_div_' . $key . '" style="clear:both; padding:5px; height:1.2em">' ;
echo ' <div id="sysMissingValues_filter_' . $key . '" class="" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' ;
echo ' <input id="sysMissingValues_filter_input_' . $key . '" type="text" value="' . $key . '" title="' . $key . '" size="6" maxlength="6" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo ' <div id="sysMissingValues_text_' . $key . '" class="" style="width:250px; float:left;">' ;
echo ' <input id="sysMissingValues_text_input_' . $key . '" type="text" value="' . $text . '" title="' . $text . '" size="45" maxlength="100" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo '</div>' ;
}
}
# User defined
if ( count ( self :: $sysUserSet ) > 0 ) {
foreach ( self :: $sysUserSet as $key => $text ) {
echo '<div id="sysMissingValues_div_' . $key . '" style="clear:both; padding:5px; height:1.2em">' ;
echo ' <div id="sysMissingValues_filter_' . $key . '" style="width:50px; float:left; text-align:left; padding-right:15px; text-align:right;">' ;
echo ' <input id="sysMissingValues_filter_input_' . $key . '" type="text" value="' . $key . '" title="' . $key . '" size="6" maxlength="6" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo ' <div id="sysMissingValues_text_' . $key . '" class="" style="width:250px; float:left;">' ;
echo ' <input id="sysMissingValues_text_input_' . $key . '" type="text" value="' . $text . '" title="' . $text . '" size="45" maxlength="100" onBlur="sysMissingValuesSave(' . $key . ')" autocomplete="off">' ;
echo ' </div>' ;
echo '<div id="sysMissingValues_edit_' . $key . '" class="" style="width:100px; float:left;">' ;
echo '<a href="#" onClick="sysMissingValuesDelete(' . $key . '); return false;">' ;
echo '<img id="sysMissingValues_delete_' . $key . '" src="img_0/delete_red.png" alt="' . $lang [ 'srv_filtri_izbrisi_filter' ] . '" style="vertical-align:text-bottom " />' ;
echo '</a>' ;
echo '</div>' ;
echo '</div>' ;
}
}
echo '<div id="sysMissingValues_new" style="padding-top:10px;">' ;
if ( $mode == 'new' )
{
echo '<div id="sysMissingValues_div_add" style="clear:both; padding:5px; height:1.2em">' ;
echo '<div id="sysMissingValues_filter_add" class="" style="width:50px; float:left; text-align:left; padding-right:15px;">' ;
echo '<input id="sysMissingValues_filter_input_add" type="text" value="' . $filter [ 'filter' ] . '" title="' . $filter [ 'filter' ] . '" size="6" maxlength="6" autocomplete="off">' ;
echo '</div>' ;
echo '<div id="sysMissingValues_text_add" class="" style="width:250px; float:left;">' ;
echo '<input id="sysMissingValues_text_input_add" type="text" value="' . $filter [ 'text' ] . '" title="' . $filter [ 'text' ] . '" size="45" maxlength="100" autocomplete="off">' ;
echo '</div>' ;
echo '<div class="" style="width:50px; float:left;">' ;
echo '<a href="#" onClick="sysMissingValuesAdd(); return false;"><img id="sysMissingValues_add_img" src="icons/icons/accept.png" alt="' . $lang [ 'srv_novfilter' ] . '" style="vertical-align:text-bottom " /></a>' ;
echo '</div>' ;
} else {
echo '<a href="#" onClick="sysMissingValuesChangeMode(\'new\'); return false;"><span class="faicon add small"></span> ' . $lang [ 'srv_novfilter' ] . '</a>' ;
}
echo '</div>' ;
// pohendlamo error: duplicate
if ( self :: $mySqlErrNo == 1062 )
{
echo '<div id="error" class="red">' ;
echo $lang [ 'srv_duplicateEntry' ];
echo '</div>' ;
}
}
/** Doda sistemski missing
*
* @ param $filter
* @ param $text
* @ param $fid
*/
static function AddSystemFilters ( $filter , $text , $fid ) {
global $global_user_id ;
self :: $mySqlErrNo = null ;
$insertString = " INSERT INTO srv_sys_filters (fid,filter,text,uid,type) " .
" VALUES (' " . $fid . " ', ' " . $filter . " ', ' " . $text . " ', ' " . $global_user_id . " ', '3'); " ;
$mySqlResult = sisplet_query ( $insertString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
}
/** Izbriše sistemski missing
*
* @ param $id
*/
static function DeleteSystemFilters ( $id ) {
self :: $mySqlErrNo = null ;
$deleteString = " DELETE FROM srv_sys_filters WHERE filter = ' " . $id . " ' AND type = '3' " ;
$mySqlResult = sisplet_query ( $deleteString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
}
/** Shrani sistemski missing
*
* @ param $id
* @ param $filter
* @ param $text
*/
static function SaveSystemFilters ( $id , $filter , $text ) {
self :: $mySqlErrNo = null ;
$updateString = " UPDATE srv_sys_filters " .
" SET filter = ' " . $filter . " ', text = ' " . $text . " ' " .
" WHERE filter = ' " . $id . " ' " ;
$mySqlResult = sisplet_query ( $updateString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
}
/** Vrne manjkajoče vrednosti za anketo
* # če ni nastavljeno na nivoju ankete vrne sistemske nastavitve
*
*/
static public function GetUnsetValuesForSurvey ( $type = array ( 2 , 3 )) {
# TODO preverit ali je na nivoju ankete če ne na nivoju sistema
return self :: GetSystemFlterByType ( $type );
}
/** Vrne neodgovore za anketo
* # če ni nastavljeno na nivoju ankete vrne sistemske nastavitve
*
*/
static public function GetMissingValuesForSurvey ( $type = array ( 1 )) {
# TODO preverit ali je na nivoju ankete če ne na nivoju sistema
return self :: GetSystemFlterByType ( $type );
}
static public function GetSurveyMissingValues ( $anketa_id = null ) {
if ( $anketa_id == null ) {
$anketa_id = self :: $anketa ;
}
$result = array ();
if ( $anketa_id != null && $anketa_id > 0 ) {
$stringSurveyMissingValues = " SELECT * FROM srv_missing_values WHERE sid =' " . $anketa_id . " ' AND active = '1' ORDER BY type ASC, systemValue DESC,value ASC " ;
$sqlSurveyMissingValues = sisplet_query ( $stringSurveyMissingValues );
while ( $row = mysqli_fetch_assoc ( $sqlSurveyMissingValues ) ) {
$result [ $row [ 'type' ]][] = array ( 'value' => $row [ 'value' ], 'text' => $row [ 'text' ], 'defSysVal' => $row [ 'systemValue' ]);
}
}
return $result ;
}
static public function displayMissingForSurvey () {
global $lang ;
self :: displayLeftNavigation ( 'start' );
$si_mv = SurveyInfo :: getInstance () -> getSurveyColumn ( 'missing_values_type' ) == 1 ? '1' : '0' ;
echo '<fieldset>' ;
echo '<legend>' . $lang [ 'srv_survey_missing_title' ] . ':</legend>' ;
2022-01-18 17:02:47 +01:00
echo '<p class="bottom16">' . $lang [ 'srv_survey_missing_text' ] . ':</p>' ;
2020-08-14 13:36:36 +02:00
$_survey_missing_values = self :: GetSurveyMissingValues ();
if ( self :: $mySqlErrNo == '1062' ) {
echo '<br/><span class="red">' . $lang [ 'srv_survey_missing_error1' ] . '</span>' ;
}
if ( count ( $_survey_missing_values ) > 0 ) {
2022-01-18 17:02:47 +01:00
echo '<table id="missing_value_table">' ;
//Table header
echo '<tr>' ;
echo '<th class="vrednost">' . $lang [ 'srv_filter_vrednost' ] . '</th>' ;
echo '<th>' . $lang [ 'srv_label' ] . '</th>' ;
echo '<th></th>' ;
2020-08-14 13:36:36 +02:00
echo '</tr>' ;
2022-01-18 17:02:47 +01:00
2020-08-14 13:36:36 +02:00
foreach ( $_survey_missing_values as $type => $type_missing_values ) {
foreach ( $type_missing_values AS $type_missing_value ) {
$key = $type_missing_value [ 'value' ];
$text = $type_missing_value [ 'text' ];
$sysValue = $type_missing_value [ 'defSysVal' ];
2022-01-18 17:02:47 +01:00
echo '<tr>' ;
2020-08-14 13:36:36 +02:00
echo '<td>' ;
echo '<input name="mv_value_input" id="mv_value_' . $type . '_' . $key . '" type="text" value="' . $key . '" class="mv_value_input">' ;
echo '</td>' ;
echo '<td>' ;
echo '<input name="mv_text_input" id="mv_text_' . $type . '_' . $key . '" type="text" value="' . $text . '" class="mv_text_input">' ;
echo '</td>' ;
echo '<td>' ;
2022-01-18 17:02:47 +01:00
echo '<span class="faicon trash empty blue" name="mv_delete_img" id="mv_img_' . $type . '_' . $key . '" title="' . $lang [ 'srv_filtri_izbrisi_filter' ] . '"/>' ;
2020-08-14 13:36:36 +02:00
echo '</td>' ;
echo '</tr>' ;
}
}
echo '</table>' ;
}
if ( $si_mv == '0' ) {
echo '<span class="mv_link_disabled">' . $lang [ 'srv_survey_missing_default' ] . '</span><br/>' ;
} else {
2022-01-18 17:02:47 +01:00
echo '<span class="pointer blue" name="mv_add_img" id="mv_add_img"><span class="faicon plus_circle link-right"></span>' . $lang [ 'srv_survey_missing_add' ] . '</span>' ;
echo '<div class="button_holder top16 bottom0">' ;
echo '<button id="link_use_sistem_mv" class="medium white-black" onClick="useSystemMissingValues(); return false;">' . $lang [ 'srv_survey_missing_default' ] . '</button>' ;
echo '</div>' ;
2020-08-14 13:36:36 +02:00
}
echo '</div>' ;
echo '</fieldset>' ;
echo '<br class="clr" />' ;
echo '</div>' ;
self :: displayLeftNavigation ();
}
/* shranimo tip missingov za anketo
*
*/
static private function saveMisingValueTypeForSurvey () {
if ( self :: $anketa ) {
$missing_values_type = ( isset ( $_POST [ 'missing_values_type' ]) && $_POST [ 'missing_values_type' ] == '1' ) ? '1' : '0' ;
$updateString = " UPDATE srv_anketa SET missing_values_type = ' " . $missing_values_type . " ' WHERE id = ' " . self :: $anketa . " ' " ;
$mySqlResult = sisplet_query ( $updateString );
}
#uprejtamo timestamp
Common :: updateEditStamp ();
SurveyInfo :: getInstance () -> resetSurveyData ();
}
/* Na nivoju ankete nastavimo enake majkajoče vrednosti kot so sistemske
*
*/
static private function useSystemMissingValues () {
if ( self :: $anketa ) {
# najprej pobrišemo vse missinge ki so nastavljeni za obstoječo anketo
$deleteString = " DELETE FROM srv_missing_values WHERE sid = ' " . self :: $anketa . " ' " ;
sisplet_query ( $deleteString );
# nato prekopiramo sistemske missinge v anketo
$sf_1 = self :: GetSystemFlterByType ( array ( 1 ), true );
$sf_2 = self :: GetSystemFlterByType ( array ( 2 ), true );
$sf_3 = self :: GetSystemFlterByType ( array ( 3 ), true );
if ( ( count ( $sf_1 ) + count ( $sf_2 ) + count ( $sf_3 ) ) > 0 ) {
$insertString = " INSERT INTO srv_missing_values (sid,type,value,text,active,systemValue) VALUES " ;
$prefix = '' ;
foreach ( $sf_1 AS $key => $value ) {
$insertString .= $prefix . " ( ' " . self :: $anketa . " ', '1', ' $key ', ' " . addslashes ( $value ) . " ', '1',' $key ') " ;
$prefix = ', ' ;
}
foreach ( $sf_2 AS $key => $value ) {
$insertString .= $prefix . " ( ' " . self :: $anketa . " ', '2', ' $key ', ' " . addslashes ( $value ) . " ', '1',' $key ') " ;
$prefix = ', ' ;
}
foreach ( $sf_3 AS $key => $value ) {
$insertString .= $prefix . " ( ' " . self :: $anketa . " ', '3', ' $key ', ' " . addslashes ( $value ) . " ', '1',' $key ') " ;
$prefix = ', ' ;
}
$mySqlResult = sisplet_query ( $insertString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
}
#uprejtamo timestamp
Common :: updateEditStamp ();
}
}
private static function saveSurveyMissingValue () {
list ( $_mv , $_what , $_type , $_old_value ) = explode ( '_' , $_POST [ 'el_id' ]);
$new_value = str_replace ( '_' , '' , $_POST [ 'new_value' ]);
if ( isset ( $_type ) && $_type != '' &&
( $_what == 'text' || $_what == 'value' ) &&
isset ( $_old_value ) && $_old_value != '' && is_numeric ( $_old_value ) &&
isset ( $new_value ) && $new_value != '' && is_numeric ( $new_value ) &&
isset ( self :: $anketa ) && self :: $anketa > 0 ) {
$updateString = " UPDATE srv_missing_values " .
" SET $_what = ' " . $new_value . " ' " .
" WHERE sid = ' " . self :: $anketa . " ' AND type=' " . $_type . " ' AND value = ' " . $_old_value . " ' " ;
$mySqlResult = sisplet_query ( $updateString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
# updejtamo še srv_vrednost, če smo slučajno imeli že nastavljen missing
$selStr = " SELECT v.id FROM srv_vrednost v, srv_spremenljivka s, srv_grupa g WHERE v.spr_id=s.id AND s.gru_id=g.id AND g.ank_id=' " . self :: $anketa . " ' AND v.other=' $_old_value ' " ;
list ( $vre_id ) = mysqli_fetch_row ( sisplet_query ( $selStr ));
if (( int ) $vre_id > 0 ) {
$updateVreString = " UPDATE srv_vrednost SET variable = ' $new_value ', other=' $new_value ' WHERE id =' $vre_id ' " ;
$sqlVreResult = sisplet_query ( $updateVreString );
self :: $mySqlErrNo = mysqli_errno ( $GLOBALS [ 'connect_db' ]);
}
#uprejtamo timestamp
Common :: updateEditStamp ();
}
}
private static function deleteMissingForSurvey () {
list ( $_mv , $_what , $_type , $_value ) = explode ( '_' , $_POST [ 'delete_id' ]);
if ( isset ( $_type ) && $_type != '' &&
$_what == 'img' &&
isset ( $_value ) && $_value != '' &&
isset ( self :: $anketa ) && self :: $anketa > 0 ) {
$deleteString = " DELETE FROM srv_missing_values " .
" WHERE sid = ' " . self :: $anketa . " ' AND type=' " . $_type . " ' AND value = ' " . $_value . " ' " ;
$mySqlResult = sisplet_query ( $deleteString );
#uprejtamo timestamp
Common :: updateEditStamp ();
}
}
private static function SetUpSurvyeMissingValues () {
self :: useSystemMissingValues ();
$updateString = " UPDATE srv_anketa SET missing_values_type = '1' WHERE id = ' " . self :: $anketa . " ' " ;
$mySqlResult = sisplet_query ( $updateString );
SurveyInfo :: getInstance () -> resetSurveyData ();
#uprejtamo timestamp
Common :: updateEditStamp ();
}
private function displayAddMissingValue () {
global $lang ;
echo '<div id="mv_add_quick">' ;
echo '<span>' . $lang [ 'srv_filter_add_note' ] . '</span>' ;
echo '<br /><br />' ;
echo '<table class="mv_tbl">' ;
echo '<tr>' ;
echo '<th style="width:50px;">' ;
2022-01-18 17:02:47 +01:00
echo ' <i style="color:gray;text-align:right">' . $lang [ 'srv_filter_vrednost' ] . 'test</i>' ;
2020-08-14 13:36:36 +02:00
echo '</th>' ;
echo '<th style="width:250px;">' ;
echo ' <i style="color:gray;">' . $lang [ 'srv_filter_variabla' ] . '</i>' ;
echo '</th>' ;
echo '<th> </th>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<th style="width:50px;">' ;
echo '<input id="mv_add_filter" type="text" size="6" maxlength="6" autocomplete="off">' ;
echo '</th>' ;
echo '<th style="width:250px;">' ;
echo '<input id="mv_add_text" type="text" size="45" maxlength="100" autocomplete="off">' ;
echo '</th>' ;
echo '</tr>' ;
echo '</table>' ;
echo '<br class="clr" />' ;
echo '<span class="floatRight spaceRight buttonwrapper"><a class="ovalbutton ovalbutton_orange" href="#" onclick="addSurveyMissingValueConfirm(); return false;"><span>' . $lang [ 'add' ] . '</span></a></span>' ;
echo '<span class="floatRight spaceRight buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onclick="addSurveyMissingValueCancel(); return false;"><span>' . $lang [ 'srv_cancel' ] . '</span></a></span>' ;
echo '<br class="clr" />' ;
echo '</div>' ;
}
private function addSurveyFilters () {
if ( isset ( $_POST [ 'mv_add_filter' ]) && trim ( $_POST [ 'mv_add_filter' ]) != " "
&& isset ( $_POST [ 'mv_add_text' ]) && trim ( $_POST [ 'mv_add_text' ]) != " " ) {
$insertString = " INSERT INTO srv_missing_values (sid,type,value,text,active) VALUES ( ' " . self :: $anketa . " ', '3', ' " . $_POST [ 'mv_add_filter' ] . " ', ' " . addslashes ( $_POST [ 'mv_add_text' ]) . " ', '1') ON DUPLICATE KEY UPDATE value=' " . $_POST [ 'mv_add_filter' ] . " ', text=' " . addslashes ( $_POST [ 'mv_add_text' ]) . " ', active='1' " ;
$mySqlResult = sisplet_query ( $insertString );
if ( ! $mySqlResult ) {
echo 'Napaka! ' ;
return ;
} else {
#updejtamo timestamp
Common :: updateEditStamp ();
echo 'true' ;
return ;
}
} else {
echo 'Napaka! Polja ne smejo biti prazna' ;
return ;
}
}
private static function displayLeftNavigation ( $what = null ) {
if ( $_REQUEST [ 'a' ] != 'missing' ) {
if ( $what == 'start' ) {
$sa = new SurveyAdmin ( self :: $anketa );
2022-01-18 17:02:47 +01:00
echo '<div class="layout_left_item">' ;
2020-08-14 13:36:36 +02:00
$sa -> showGlobalSettingsLinks ();
$sa -> showAdditionalSettingsLinks ();
echo '</div>' ;
}
2022-01-18 17:02:47 +01:00
2020-08-14 13:36:36 +02:00
}
}
}
?>