';
// nazaj na administrativnega
$file = '../../lang/'.$lang_admin.'.php';
include($file);
echo '
';
// jezik nastavimo na nastavitev za respondente, ker ta text dejansko nastavljamo
$file = '../../lang/'.$lang_resp.'.php';
include($file);
// Pri gumbih ne prikazujemo editorja
$this->extra_translation('srv_nextpage');
$this->extra_translation('srv_nextpage_uvod');
$this->extra_translation('srv_prevpage');
$this->extra_translation('srv_lastpage');
$this->extra_translation('srv_forma_send');
$this->extra_translation('srv_potrdi');
$this->extra_translation('srv_konec');
$this->extra_translation('srv_remind_sum_hard', 1);
$this->extra_translation('srv_remind_sum_soft', 1);
$this->extra_translation('srv_remind_num_hard', 1);
$this->extra_translation('srv_remind_num_soft', 1);
$this->extra_translation('srv_remind_hard', 1);
$this->extra_translation('srv_remind_soft', 1);
$this->extra_translation('srv_remind_hard_-99', 1);
$this->extra_translation('srv_remind_soft_-99', 1);
$this->extra_translation('srv_remind_hard_-98', 1);
$this->extra_translation('srv_remind_soft_-98', 1);
$this->extra_translation('srv_remind_hard_-97', 1);
$this->extra_translation('srv_remind_soft_-97', 1);
$this->extra_translation('srv_remind_hard_multi', 1);
$this->extra_translation('srv_remind_soft_multi', 1);
$this->extra_translation('srv_remind_captcha_hard', 1);
$this->extra_translation('srv_remind_captcha_soft', 1);
$this->extra_translation('srv_remind_email_hard', 1);
$this->extra_translation('srv_remind_email_soft', 1);
$this->extra_translation('srv_alert_number_exists', 1);
$this->extra_translation('srv_alert_number_toobig', 1);
$this->extra_translation('srv_ranking_avaliable_categories', 1);
$this->extra_translation('srv_ranking_ranked_categories', 1);
$this->extra_translation('srv_question_respondent_comment', 1);
$this->extra_translation('srv_continue_later', 1);
$this->extra_translation('srv_continue_later_txt', 1);
$this->extra_translation('srv_continue_later_email', 1);
$this->extra_translation('srv_dropdown_select', 1);
$this->extra_translation('srv_wrongcode', 1);
$this->extra_translation('user_bye_textA', 1);
$this->extra_translation('srv_survey_non_active', 1);
$this->extra_translation('srv_survey_deleted', 1);
$this->extra_translation('srv_survey_non_active_notActivated', 1);
$this->extra_translation('srv_survey_non_active_notStarted', 1);
$this->extra_translation('srv_survey_non_active_expired', 1);
$this->extra_translation('srv_survey_non_active_voteLimit', 1);
echo '
';
// nastavimo jezik nazaj
$file = '../../lang/'.$lang_admin.'.php';
include($file);
echo '
';
echo '';
echo '
';
echo '
';
// Gumb za ponastavitev prevoda v bazi pobriše že nastavljene prevode za izbran jezik
echo '
';
echo '
'.$lang['lang'].'';
}
/*Forma*/
if ($_GET['a'] == 'forma') {
}
/*Nastavitve prikaza za mobilnike*/
if ($_GET['a'] == 'mobile_settings') {
SurveySetting::getInstance()->Init($this->anketa);
echo '
';
echo ''.$lang['srv_mobile_settings_title'].' ';
// Prikaz slik pri mobilnikih (default da)
$mobile_friendly = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_friendly');
echo ''.$lang['srv_settings_mobile_friendly'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
$display = ($mobile_friendly == 1) ? '' : ' display: none;';
echo '';
// Prikaz slik pri mobilnikih (default da)
$hide_mobile_img = SurveySetting::getInstance()->getSurveyMiscSetting('hide_mobile_img');
echo ''.$lang['srv_settings_mobile_img'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Prilagoditev tabel pri mobilnikih
$mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables');
echo ''.$lang['srv_settings_mobile_tables'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['srv_settings_mobile_tables_slide'].' ';
echo ' '.$lang['no'].' ';
echo '
';
echo ' ';
}
/*Metapodatki (Parapodatki)*/
if ($_GET['a'] == 'metadata') {
SurveySetting::getInstance()->Init($this->anketa);
$ip = SurveySetting::getInstance()->getSurveyMiscSetting('survey_ip');
$ip_show = SurveySetting::getInstance()->getSurveyMiscSetting('survey_show_ip');
$browser = SurveySetting::getInstance()->getSurveyMiscSetting('survey_browser');
$referal = SurveySetting::getInstance()->getSurveyMiscSetting('survey_referal');
$date = SurveySetting::getInstance()->getSurveyMiscSetting('survey_date');
echo '
';
echo ''.$lang['srv_sledenje'].' ';
// Preverimo ce je vklopljen modul za volitve - potem ne pustimo nobenih preklopov
$voting_disabled = '';
$voting_disabled_class = '';
if(SurveyInfo::getInstance()->checkSurveyModule('voting')){
$voting_disabled = ' disabled';
$voting_disabled_class = ' class="gray"';
echo ''.$lang['srv_voting_warning_paradata'].'
';
}
echo ''.$lang['srv_metadata_desc'].'
';
echo ''.$lang['srv_sledenje_browser'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
echo ''.$lang['srv_sledenje_referal'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
echo ''.$lang['srv_sledenje_date'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
echo ' ';
echo '
';
echo '
';
echo ''.$lang['srv_sledenje_ip_title'].' ';
echo ''.$lang['srv_sledenje_ip'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
if($ip == 0 && $ip_show != 1)
echo ''.$lang['srv_sledenje_ip_alert'].'
';
echo ' ';
if($ip == 0 && ($admin_type == 0 || $admin_type == 1)){
echo ''.$lang['srv_show_ip'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
if($ip_show == 1)
echo ''.$lang['srv_show_ip_alert'].'
';
}
echo ' ';
// Povezovanje identifikatorjev s podatki - samo za admine in ce so vklopljena email vabila
if ($admin_type == 0 && SurveyInfo::getInstance()->checkSurveyModule('email')) {
echo '
';
echo '
';
echo ''.$lang['srv_sledenje_identifikatorji_title'].' '.Help::display('srv_email_with_data').' ';
echo ''.$lang['srv_sledenje_identifikatorji'].': ';
echo ' '.$lang['no'].' ';
echo ' '.$lang['yes'].' ';
if($row['show_email'] == 1)
echo ''.$lang['srv_show_mail_with_data3'].'
';
echo ' ';
}
}
/* Nastavitve pdf/rtf izvozov */
if ($_GET['a'] == 'export_settings') {
SurveySetting::getInstance()->Init($this->anketa);
// Nastavitve za izpis vprasalnika
echo '
';
echo ''.$lang['srv_export_survey_settings'].' ';
// Številčenje vprašanj (default da)
$export_numbering = SurveySetting::getInstance()->getSurveyMiscSetting('export_numbering');
echo ''.$lang['srv_nastavitveStevilcenje'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Prikaz pogojev (default da)
$export_show_if = SurveySetting::getInstance()->getSurveyMiscSetting('export_show_if');
echo ''.$lang['srv_export_if'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Prikazi uvoda (default ne)
$export_show_intro = SurveySetting::getInstance()->getSurveyMiscSetting('export_show_intro');
echo ''.$lang['srv_export_intro'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
echo '
';
// Nastavitve za izpis odgovorov respondentov
echo '
';
echo ''.$lang['srv_export_results_settings'].' ';
/* // Tip izvoza (0->navaden-default, 1->dolg, 2->kratek)
$export_data_type = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_type');
echo ''.$lang['srv_displaydata_type'].': ';
echo '';
echo ' ' . $lang['srv_displaydata_type0'] . ' ';
echo ' ' . $lang['srv_displaydata_type1'] . ' ';
echo ' ' . $lang['srv_displaydata_type2'] . ' ';
echo ' ';
echo Help :: display('displaydata_pdftype'); */
// Tip izvoza (1->dolg oz. razsirjen, 2->kratek oz. skrcen)
$export_data_type = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_type');
echo ''.$lang['srv_displaydata_type'].': ';
echo '';
echo ' ' . $lang['srv_displaydata_type2'] . ' ';
echo ' ' . $lang['srv_displaydata_type1'] . ' ';
//echo ' ' . $lang['srv_displaydata_type2'] . ' ';
echo ' ';
echo Help :: display('displaydata_pdftype');
echo ' ';
// Številčenje vprašanj (default da)
$export_data_numbering = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_numbering');
echo ''.$lang['srv_nastavitveStevilcenje'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Prikaz recnuma (default da)
$export_data_show_recnum = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_show_recnum');
echo ''.$lang['srv_export_show_recnum'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Prikaz pogojev (default da)
$export_data_show_if = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_show_if');
echo ''.$lang['srv_export_if'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Page break med posameznimi respondenti (default ne)
$export_data_PB = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_PB');
echo ''.$lang['srv_export_pagebreak'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Izpusti vprasanja brez odgovora (default ne)
$export_data_skip_empty = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_skip_empty');
echo ''.$lang['srv_export_skip_empty'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Izpusti podvprasanja brez odgovora (default ne)
$export_data_skip_empty_sub = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_skip_empty_sub');
echo ''.$lang['srv_export_skip_empty_sub'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' ';
echo ' ';
// Landscape postavitev izvoza (default ne)
/* $export_data_landscape = SurveySetting::getInstance()->getSurveyMiscSetting('export_data_landscape');
echo ''.$lang['srv_export_landscape'].': ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no'].' '; */
echo ' ';
}
/* Nastavitve GDPR */
if ($_GET['a'] == A_GDPR) {
$gdpr = new GDPR();
$gdpr->displayGDPRSurvey($this->anketa);
}
if ($_GET['a'] != 'jezik' && $_GET['a'] != 'trajanje' && $_GET['a'] != A_GDPR) {
//echo '
'.$lang['srv_prestevilci'].'
';
echo '
';
echo '
';
echo '
';
}
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo '';
}
function anketa_nastavitve_mail() {
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
/* Globalne nastavitve ankete: veljajo za celoto anketo ne glede na uporabnika*/
$row = SurveyInfo::getInstance()->getSurveyRow();
$http_referer = parse_url($_SERVER['HTTP_REFERER']); //If yes, parse referrer
$referer_url = $http_referer['query'];
$show_back_button = false;
if(preg_match('/anketa='.$this->anketa.'&a='.A_INVITATIONS.'/', $referer_url) || $_GET['show_back'] == 'true')
$show_back_button = true;
echo '
'.$lang['srv_email_setting_title'].' ';
echo '';
echo '';
echo '
';
echo '
';
echo '
';
if (preg_match('/anketa='.$this->anketa.'&a='.A_INVITATIONS.'/', $referer_url) || $show_back_button) {
//echo '
';
}
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
}
/**
* funkcija, ki prikaze polja za nastavitev ekstra prevodov
*
*/
function extra_translation ($text, $editor = 0) {
global $lang;
global $admin_lang;
global $resp_lang;
$lang_id = (int)$_GET['lang_id'];
if ($lang_id > 0)
$lang_id = '_'.$lang_id;
else
$lang_id = '';
$value = SurveySetting::getInstance()->getSurveyMiscSetting('srvlang_'.$text.$lang_id);
if ($value == '') $value = $lang[$text];
$onclick = 'onclick="inline_jezik_edit(\'srvlang_'.$text.$lang_id.'\');"';
// Popravimo text za naslednjo stran na uvodu
$next_uvod = '';
if($text == 'srv_nextpage_uvod')
$next_uvod = $lang_id == '' ? $admin_lang['srv_nextpage_uvod_desc'] : $resp_lang['srv_nextpage_uvod_desc'];
echo '
'.($lang_id==''?$admin_lang[$text]:$resp_lang[$text]).' '.($text == 'srv_nextpage_uvod' ? '('.$next_uvod.') ' : '').' ';
echo '
'.$lang[$text].' ';
echo '
'.$value.'
';
if($editor == 1)
echo '
';
echo '
';
echo '
';
}
function anketa_nice_links () {
echo '
';
$sql = sisplet_query("SELECT l.link, a.id, a.naslov FROM srv_nice_links l, srv_anketa a WHERE a.id=l.ank_id ORDER BY l.link ASC");
while ($row = mysqli_fetch_array($sql)) {
echo '
'.$row['link'].' '.$row['naslov'].'
';
}
echo '
';
}
/**
* prikaze ankete z administrativnim dostopom za pomoč
*
*/
function anketa_admin () {
global $lang;
echo '
';
$sql = sisplet_query("SELECT srv_anketa.id, srv_anketa.naslov, users.email FROM srv_anketa, users WHERE users.id=srv_anketa.insert_uid AND dostop_admin >= DATE(NOW()) ORDER BY edit_time DESC");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
while ($row = mysqli_fetch_array($sql)) {
echo '
'.$row['naslov'].' ('.$row['email'].')
';
}
echo '
';
}
/**
* prikaze izbrisanje ankete
*
*/
function anketa_deleted () {
global $lang;
echo '
';
$sql = sisplet_query("SELECT srv_anketa.id, srv_anketa.naslov, users.email FROM srv_anketa, users WHERE users.id=srv_anketa.insert_uid AND active='-1' ORDER BY edit_time DESC");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
while ($row = mysqli_fetch_array($sql)) {
echo '
'.$row['naslov'].' ('.$row['email'].') '.$lang['srv_restore'].'
';
}
echo '
';
}
/**
* prikaze izbrisanje podatke
*
*/
function data_deleted () {
global $lang;
echo '
';
$sql = sisplet_query("SELECT a.id, a.naslov, users.email, COUNT(u.id) AS deleted FROM srv_anketa a, srv_user u, users WHERE u.deleted='1' AND u.ank_id=a.id AND users.id=a.insert_uid GROUP BY a.id ORDER BY edit_time DESC");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
while ($row = mysqli_fetch_array($sql)) {
echo '
'.$row['naslov'].' ('.$row['email'].') '.$lang['srv_restore'].' ('.$row['deleted'].')
';
}
echo '
';
}
// online urejanje CSS datoteke
function anketa_editcss() {
$st = new SurveyTheme($this->anketa);
$st->edit_css();
}
function anketa_vabila() {
global $lang;
if ($_GET['m'] == '' || $_GET['m'] == 'settings') {
$this->anketa_vabila_nastavitve();
} elseif ($_GET['m'] == 'url') {
$this->anketa_vabila_url();
}
}
function anketa_vabila_nastavitve() {
global $lang, $site_url, $global_user_id;
$row = SurveyInfo::getInstance()->getSurveyRow();
$d = new Dostop();
echo '
';
echo '';
echo ' ';
echo ' ';
echo ' ';
echo '';
# če ni aktivna damo opozorilo
echo '';
# Opozorilo o napakah
$sd = new SurveyDiagnostics($this->anketa);
$sd->doDiagnostics();
$diagnostic = $sd->getDiagnostic();
if (is_array($diagnostic) && count($diagnostic) > 0)
echo ''.$lang['srv_publication_survey_warnings'].'
>> ';
// Aktivacija ankete
echo '';
$this->anketa_aktivacija_note();
echo' ';
echo ' ';
# Povezave, lepi linki...
echo '';
# Linki, lepi linki
$this->niceUrlSettings();
echo ' ';
// Napredne URL povezave
echo '';
//echo '
'.$lang['srv_publication_advanced_url'].' ';
echo '
';
echo '
'.$lang['srv_publication_advanced_url_text'].'
';
echo '
';
echo ' ';
// Individualizirana vabila
echo '';
//echo '
'.$lang['srv_publication_invitations'].' ';
echo '
';
echo '
'.$lang['srv_publication_invitations_text'].'
';
echo '
';
echo ' ';
/* # Opozorilo o napakah
echo '';
$sd = new SurveyDiagnostics($this->anketa);
$sd->doDiagnostics();
$diagnostic = $sd->getDiagnostic();
if (is_array($diagnostic) && count($diagnostic) > 0) {
echo '';
$this->anketa_diagnostika_note($sd, $d->checkDostopSub('test'));
echo' ';
}
echo ' ';*/
echo ' ';
echo '';
echo '';
echo ' ';
$base_url = $site_url.'admin/survey/index.php?anketa='.$this->anketa;
# preberomo osnovne nastavitve
$row = SurveyInfo::getInstance()->getSurveyRow();
echo ''.($row['active']==0 ? $lang['srv_default_setting_unactive'] : $lang['srv_default_setting']).' ';
// Ce imamo dostop do zavihka urejanje
if($d->checkDostopSub('edit')){
# Trajanje
$starts = explode('-',$row['starts']);
$starts = $starts[2].'.'.$starts[1].'.'.$starts[0];
$expire = explode('-',$row['expire']);
$expire = $expire[2].'.'.$expire[1].'.'.$expire[0];
echo ''.$lang['srv_starts'].':'.$starts.'
';
if ( $row['expire'] == PERMANENT_DATE ) {
#trajna
echo ''.$lang['srv_trajna_anketa'].':'.($row['expire'] == PERMANENT_DATE ? $lang['yes'] : $lang['no']).'
';
} else {
echo ''.$lang['srv_expire'].':'.$expire.'
';
}
// Skin ankete
if ($row['skin_profile'] == 0) {
$skin_name = $row['skin'];
}
else {
$sqla = sisplet_query("SELECT name FROM srv_theme_profiles WHERE id = '".$row['skin_profile']."'");
$rowa = mysqli_fetch_array($sqla);
$skin_name = $rowa['name'];
}
//echo ''.$lang['srv_themes'].':'.$row['skin'].'
';
echo ''.$lang['srv_themes'].':'.$skin_name.'
';
# Jezik
$lang_old = $lang;
$lang_admin = (int)$row['lang_admin'];
$lang_resp = (int)$row['lang_resp'];
$lang_array = array();
$lang_array[0] = $lang['srv_language_not_set'];
// Preberemo razpoložljive jezikovne datoteke
if ($dir = opendir('../../lang')) {
while (($file = readdir($dir)) !== false) {
if ($file != '.' AND $file != '..') {
if (is_numeric(substr($file, 0, strpos($file, '.')))) {
$i = substr($file, 0, strpos($file, '.'));
$file = '../../lang/'.$i.'.php';
if (file_exists($file)) {
include($file);
$lang_array[$i] = $lang['language'];
}
}
}
}
}
// nastavimo jezik nazaj
/*$file = '../../lang/'.$lang_admin.'.php';
if (file_exists($file)) {
include($file);
}*/
$lang = $lang_old;
$resp_change_lang = SurveySetting::getInstance()->getSurveyMiscSetting('resp_change_lang');
//echo ''.$lang['srv_language_admin_1'].':
';
echo ''.$lang['srv_language_admin_0'].':'.$lang_array[$lang_admin].' / '.$lang_array[$lang_resp].'
';
#obveščanje
// jezikovni linki
$p = new Prevajanje($this->anketa);
$p->dostop();
$jeziki = $p->get_all_translation_langs();
if (count($jeziki) > 0) {
echo '' . $lang['srv_trans_lang'] . ': ';
$i = 0;
foreach ($jeziki AS $key => $val) {
if ($i++ != 0) echo ', ';
echo ''.$val.' ';
}
echo '
';
}
#piškotki
echo ''.$lang['srv_cookie'].':'.$lang['srv_cookie_'.$row['cookie']].'
';
echo ''.$lang['srv_cookie_return'].':'.($row['cookie_return'] == 0 ? $lang['srv_cookie_return_start'] : $lang['srv_cookie_return_middle']).'
';
#more - več
echo ''.$lang['srv_more'].'
';
echo ''.$lang['srv_less'].'
';
echo '';
}
// Nimamo dostopa do zavihka urejanje - ni nobenih linkov
else{
# Trajanje
$starts = explode('-',$row['starts']);
$starts = $starts[2].'.'.$starts[1].'.'.$starts[0];
$expire = explode('-',$row['expire']);
$expire = $expire[2].'.'.$expire[1].'.'.$expire[0];
echo ''.$lang['srv_starts'].': '.$starts.'
';
if ( $row['expire'] == PERMANENT_DATE ) {
#trajna
echo ''.$lang['srv_trajna_anketa'].': '.($row['expire'] == PERMANENT_DATE ? $lang['yes'] : $lang['no']).'
';
} else {
echo ''.$lang['srv_expire'].': '.$expire.'
';
}
echo ''.$lang['srv_themes'].': '.$row['skin'].'
';
# Jezik
$lang_old = $lang;
$lang_admin = (int)$row['lang_admin'];
$lang_resp = (int)$row['lang_resp'];
$lang_array = array();
$lang_array[0] = $lang['srv_language_not_set'];
// Preberemo razpoložljive jezikovne datoteke
if ($dir = opendir('../../lang')) {
while (($file = readdir($dir)) !== false) {
if ($file != '.' AND $file != '..') {
if (is_numeric(substr($file, 0, strpos($file, '.')))) {
$i = substr($file, 0, strpos($file, '.'));
$file = '../../lang/'.$i.'.php';
if (file_exists($file)) {
include($file);
$lang_array[$i] = $lang['language'];
}
}
}
}
}
// nastavimo jezik nazaj
/*$file = '../../lang/'.$lang_admin.'.php';
if (file_exists($file)) {
include($file);
}*/
$lang = $lang_old;
$resp_change_lang = SurveySetting::getInstance()->getSurveyMiscSetting('resp_change_lang');
echo ''.$lang['srv_language_admin_0'].': '.$lang_array[$lang_admin].' / '.$lang_array[$lang_resp].'
';
#obveščanje
// jezikovni linki
$p = new Prevajanje($this->anketa);
$jeziki = $p->get_all_translation_langs();
if (count($jeziki) > 0) {
echo '' . $lang['srv_trans_lang'] . ': ';
$i = 0;
foreach ($jeziki AS $key => $val) {
if ($i++ != 0) echo ', ';
echo ''.$val.' ';
}
echo '
';
}
#piškotki
echo ''.$lang['srv_cookie'].': '.$lang['srv_cookie_'.$row['cookie']].'
';
echo ''.$lang['srv_cookie_return'].': '.($row['cookie_return'] == 0 ? $lang['srv_cookie_return_start'] : $lang['srv_cookie_return_middle']).'
';
#more - več
echo ''.$lang['srv_more'].'
';
echo ''.$lang['srv_less'].'
';
echo '';
if ($row['cookie'] > -1) {
# če je piškotek dlje kot do konca nakete lahko izbere tudi druge možnosti
echo '
'.$lang['srv_return_finished'].': '.($row['return_finished'] == 1 ? $lang['srv_return_finished_yes'] : $lang['srv_return_finished_no']).'
';
} else {
# ker je piškotek samo do konca ankete se ne more vrnit ali urejat
echo '
'.$lang['srv_return_finished'].': '. $lang['srv_return_finished_no'] .'
';
}
echo '
'.$lang['srv_multilang'].': '.($row['multilang'] == 1 ? $lang['yes'] : $lang['no'] ).'
';
echo '
'.$lang['srv_user'].': ';
if ($row['user_from_cms'] == 1) {
echo $lang['srv_respondent'];
} elseif ($row['user_from_cms'] == 2) {
echo $lang['srv_vnasalec'];
} elseif ($row['user_from_cms'] == 0) {
echo $lang['no1'];
}
echo '
';
echo '
'.$lang['srv_block_ip'].': ';
if ($row['block_ip'] == 0) {
echo $lang['no1'];
} elseif ($row['block_ip'] == 10) {
echo '10 min';
} elseif ($row['block_ip'] == 20) {
echo '20 min';
} elseif ($row['block_ip'] == 60) {
echo '60 min';
} elseif ($row['block_ip'] == 720) {
echo '12 '.$lang['hour_hours2'];
} elseif ($row['block_ip'] == 1440) {
echo '24 '.$lang['hour_hours2'];
}
echo '
';
# user from cms
if ($row['user_from_cms']>0) {
echo '
'.$lang['srv_user_cms_show'].': '.($lang['srv_user_cms_email']).'
';
}
echo '
'.$lang['srv_vote_limit'].': '.($row['vote_limit'] == 0 ? $lang['no'] : $lang['yes']).'
';
echo '
'.$lang['srv_vote_count'].': '.($row['vote_limit'] == 0 ? '/' : $row['vote_count']).'
';
# Obveščanje
// preberemo nastavitve alertov
$sqlAlert = sisplet_query("SELECT * FROM srv_alert WHERE ank_id = '".$this->anketa."'");
if (mysqli_num_rows($sqlAlert) > 0) {
$rowAlert = mysqli_fetch_assoc($sqlAlert);
} else {
SurveyAlert::getInstance()->Init($anketa, $global_user_id);
$rowAlert = SurveyAlert::setDefaultAlertBeforeExpire();
}
$alert_finish = array();
$alert_expire = array();
$alert_delete = array();
$alert_active = array();
if ($rowAlert['finish_respondent'] == 1) {
$alert_finish[] = $lang['srv_alert_respondent'];
}
if ($rowAlert['finish_respondent_cms'] == 1) {
$alert_finish[] = $lang['srv_alert_respondent_cms'];
}
if ($rowAlert['finish_author'] == 1) {
$alert_finish[] = $lang['srv_info_author'];
}
if ($rowAlert['finish_other'] == 1) {
$alert_finish[] = $lang['email_prejemniki'];
}
if ($rowAlert['expire_author'] == 1) {
$alert_expire[] = $lang['srv_info_author'];
}
if ($rowAlert['expire_other'] == 1) {
$alert_expire[] = $lang['email_prejemniki'];
}
if ($rowAlert['delete_author'] == 1) {
$alert_delete[] = $lang['srv_info_author'];
}
if ($rowAlert['delete_other'] == 1) {
$alert_delete[] = $lang['email_prejemniki'];
}
if ($rowAlert['active_author'] == 1) {
$alert_active[] = $lang['srv_info_author'];
}
if ($rowAlert['active_other'] == 1) {
$alert_active[] = $lang['email_prejemniki'];
}
echo '
'.$lang['srv_alert_completed_2'].': '.(count($alert_finish) ? implode(',',$alert_finish) : $lang['no']).'
';
echo '
'.$lang['srv_alert_expired_2'].': '.(count($alert_expire) ? implode(',',$alert_expire) : $lang['no']).'
';
echo '
'.$lang['srv_alert_active_2'].': '.(count($alert_active) ? implode(',',$alert_active) : $lang['no']).'
';
echo '
'.$lang['srv_alert_delete_2'].': '.(count($alert_delete) ? implode(',',$alert_delete) : $lang['no']).'
';
echo '
';
}
echo ' ';
echo ' ';
echo '';
echo ' ';
echo ' ';
echo '
';
}
function niceUrlSettings() {
global $lang, $site_url, $global_user_id;
$p = new Prevajanje($this->anketa);
$p->dostop();
$lang_array = $p->get_all_translation_langs();
$link = SurveyInfo::getSurveyLink();
$preview_disableif = SurveySetting::getInstance()->getSurveyMiscSetting('preview_disableif');
$preview_disablealert = SurveySetting::getInstance()->getSurveyMiscSetting('preview_disablealert');
$preview_displayifs = SurveySetting::getInstance()->getSurveyMiscSetting('preview_displayifs');
$preview_displayvariables = SurveySetting::getInstance()->getSurveyMiscSetting('preview_displayvariables');
$preview_hidecomment = SurveySetting::getInstance()->getSurveyMiscSetting('preview_hidecomment');
$preview_options = ''.($preview_disableif==1?'&disableif=1':'').($preview_disablealert==1?'&disablealert=1':'').($preview_displayifs==1?'&displayifs=1':'').($preview_displayvariables==1?'&displayvariables=1':'').($preview_hidecomment==1?'&hidecomment=1':'').'';
echo '
'.$lang['srv_publication_base_title'].' ';
// Predogled url
echo '';
// Test url
if($this->survey_type > 1){
echo '';
echo '
' . $lang['srv_survey_testdata2'] . ' ';
echo '('.$lang['srv_testdata_text'].')
';
echo '
'.$lang['url'] . ': ' . $link . '&preview=on&testdata=on'.$preview_options;
echo ' ()
';
echo '
';
}
// Navaden url
echo '';
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
' . $lang['srv_survey_real'] . ' ';
echo '('.$lang['srv_survey_real_savedata'].')
';
echo '
' . $lang['url'] . ': ';
$p->include_lang($p->lang_resp);
$base_lang_resp = $lang['language'];
$p->include_base_lang();
$link1 = $site_url.'a/'.Common::encryptAnketaID($this->anketa);
echo ''.$link1.' '.(count($lang_array) > 0 ? ' - '.$base_lang_resp : '').' ';
// Zlistamo vse lepe url-je
$sqll = sisplet_query("SELECT id, link FROM srv_nice_links WHERE ank_id = '$this->anketa' ORDER BY id ASC");
while ($rowl = mysqli_fetch_assoc($sqll)) {
$link_nice = $site_url . $rowl['link'];
echo '';
echo ''.$link_nice.' '.(count($lang_array) > 0 ? ' - '.$base_lang_resp : '').' ';
//echo ''.$site_url.$rowl['link'].' ';
//echo ' ';
}
// Imamo vec linkov za skupine
$ss = new SurveySkupine($this->anketa);
$spr_id = $ss->hasSkupine();
if($spr_id > 0){
$vrednosti = $ss->getVrednosti($spr_id);
foreach($vrednosti as $vrednost){
$link_skupine = isset($vrednost['nice_url']) ? $vrednost['nice_url'] : $vrednost['url'];
echo '
';
echo ''.$link_skupine.' '.(count($lang_array) > 0 ? ' - '.$base_lang_resp : '').' - '.$vrednost['naslov'].' ';
}
}
// Imamo vec linkov za jezike
if (count($lang_array) > 0) {
foreach ($lang_array AS $lang_id => $lang_name) {
echo '
';
echo ''.$link.'?language='.$lang_id.' - '.$lang_name.' ';
if($spr_id > 0){
foreach($vrednosti as $vrednost){
$link_skupine = isset($vrednost['nice_url']) ? $vrednost['nice_url'] : $vrednost['url'];
echo '
';
echo ''.$link_skupine.'&language='.$lang_id.' - '.$lang_name.' - '.$vrednost['naslov'].' ';
}
}
}
}
echo '';
echo '';
echo '
';
// Okno za dodajanje lepega url-ja
echo '
'.$lang['srv_nice_url'].' ';
// Zlistamo vse lepe url-je
$sqll = sisplet_query("SELECT id, link FROM srv_nice_links WHERE ank_id = '$this->anketa' ORDER BY id ASC");
while ($rowl = mysqli_fetch_assoc($sqll)) {
echo '';
echo ''.$site_url.$rowl['link'].' ';
// Remove nice url
echo ' ';
echo ' ';
}
echo ' ';
// Preverimo, ce je funkcionalnost v paketu, ki ga ima uporabnik
$userAccess = UserAccess::getInstance($global_user_id);
if(!$userAccess->checkUserAccess($what='nice_url')){
$userAccess->displayNoAccess($what='nice_url');
}
else{
// Gumb za dodajanje lepega linka
//echo '';
if (isset($_GET['error'])) {
// Prekratek lep url
if(strlen($_GET['error']) <= 2)
echo ''.$_GET['error'].' '.$lang['srv_nice_url_short'].' ';
// Predolg lep url
elseif(strlen($_GET['error']) > 20)
echo ''.$_GET['error'].' '.$lang['srv_nice_url_long'].' ';
// Ze obstaja
else
echo ''.$_GET['error'].' '.$lang['srv_nice_url_taken'].' ';
}
echo ' ';
}
echo ' ';
echo '';
}
function anketa_vabila_url() {
echo '
';
echo '';
echo '';
$this->displayInvSurveyEmbed();
// Embed v popup je zaenkrat disablan zaradi cross domain omejitev browserjev
//$this->displayInvSurveyPopup();
echo ' ';
echo '';
$this->displayInvSurveyLink();
echo ' ';
echo ' ';
echo '
';
}
function displayInvSurveyEmbed() {
global $lang;
echo '
';
echo ''.$lang['srv_embed_title'].': ';
echo ''.$lang['srv_embed_js'].Help :: display('srv_embed_js').'
';
echo '
';
echo ''.$lang['srv_embed_fixed'].Help :: display('srv_embed_fixed').'
';
echo '
';
echo ' ';
if ($_GET['js'] == 'open') {
?>
}
}
function displayInvSurveyPopup() {
global $lang;
echo '
';
echo ''.$lang['srv_popup_title'].': ';
echo ''.$lang['srv_embed_js'].Help :: display('srv_popup_js').'
';
echo '';
echo ' ';
}
function displayInvSurveyLink() {
global $lang, $site_url, $admin_type;
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
';
echo '' . $lang['srv_user_base_url'] . ' ';
echo '
' . $lang['srv_anketa_href'] . '
';
echo ' '.$lang['srv_anketa_href_text'].'
';
echo '
' . $lang['srv_anketa_href_count'] . '
';
echo ' '.$lang['srv_anketa_href_count_text'].'
';
echo ' ';
// Prikaz QR kode
$img = 'classes/phpqrcode/imgs/code'.$this->anketa.'.png';
QRcode::png(SurveyInfo::getSurveyLink(), $img, 'L', 4, 2);
echo '' . $lang['srv_qr_code'] . '
';
# echo ''.$lang['srv_qr_code'].': ';
echo '
';
echo '
';
echo '
';
// Prikaz ikon za deljenje (FB, twitter...)
echo ''.$lang['srv_share'].': ';
?>
';
echo ' ';
}
/**
* nastavitve za obveščanje na email
*
*/
function email_nastavitve ($show_fieldset = true) {
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
$row = SurveyInfo::getInstance()->getSurveyRow();
# echo '
';
// če ni aktivna damo opozorilo
echo '
';
echo '
';
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
#echo '
';
}
/**
* vrne kodo ankete, ki se jo uporabi za embed
*
*/
function getEmbed ($js = true) {
global $site_url;
$link = SurveyInfo::getSurveyLink();
SurveyInfo::getInstance()->SurveyInit($this->anketa);
$row = SurveyInfo::getInstance()->getSurveyRow();
//return '<iframe id="1ka" src="'.$site_url.'main/survey/index.php?anketa='.$this->anketa.'" scrolling="auto" frameborder="0" width="100%"></iframe><script type="text/javascript">function r(){var a=window.location.hash.replace("#","");if(a.length==0)return;document.getElementById("1ka").style.height=a+"px";window.location.hash=""};window.setInterval(\\\'r()\\\',100);</script>';
$iframe = '
';
$javascript = '';
if ($js)
return htmlentities($iframe.$javascript, ENT_QUOTES);
else
return htmlentities($iframe, ENT_QUOTES);
}
/**
* vrne kodo ankete, ki se jo uporabi za popup embed
*
*/
function getPopup () {
global $site_url;
$link = SurveyInfo::getSurveyLink().'&popup=1';
SurveyInfo::getInstance()->SurveyInit($this->anketa);
$row = SurveyInfo::getInstance()->getSurveyRow();
$javascript = '';
// Dodatek ce bomo delali se naprej popup embed (cross domain problem)
//if(window.addEventListener){window.addEventListener("message", function(e){if(e.data == "closePopup"){document.getElementById("popup_iframe").remove();document.getElementById("popup_div").remove();}});}
return htmlentities($javascript, ENT_QUOTES);
}
/**
* @desc prika?e nastavitve alerta za formo
*/
function alert_nastavitve() {//OSTANE
global $lang;
global $site_url;
global $admin_type;
global $app_settings;
$anketa = $this->anketa;
/* moznosti:
* 'complete' -> obvsetilo o izpolnjeni anketi (respondent, respondent iz cms, avtor + dostop, dodatn-emaili)
* 'delete' -> obvestilo o izbrisani anketi (avtor + dostop, dodatni -emaili)
* 'active' -> obvestilo o aktivnosti, neaktivnosti ankete (avtor + dostop, dodatni -emaili)
* 'expire' -> obvestilo o izteku ankete (avtor + dostop, dodatni -emaili)
* 'email_server' -> nastavitve mail streznika
*/
if ( isset($_GET['m']) && $_GET['m'] != "") {
$tab = $_GET['m'];
}
else {
$tab = $_GET['m'] = 'complete';
}
// preberemo nastavitve alertov
$sqlAlert = sisplet_query("SELECT * FROM srv_alert WHERE ank_id = '$anketa'");
if (!$sqlAlert)
echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sqlAlert) > 0) {
$rowAlert = mysqli_fetch_array($sqlAlert);
}
else {
SurveyAlert::getInstance()->Init($anketa, $global_user_id);
$rowAlert = SurveyAlert::setDefaultAlertBeforeExpire();
}
$days = $rowAlert['expire_days'];
$sqlS = sisplet_query("SELECT id, expire, survey_type, insert_uid, DATE_SUB(expire,INTERVAL $days DAY) as newdate FROM srv_anketa WHERE id = '$anketa'");
if (!$sqlS) echo mysqli_error($GLOBALS['connect_db']);
$rowS = mysqli_fetch_array($sqlS);
$rowAlert['newdate'] = $rowS['newdate'];
$sqlu = sisplet_query("SELECT email FROM users WHERE id = '$rowS[insert_uid]'");
$rowu = mysqli_fetch_array($sqlu);
$MailReply = $rowu['email'];
$custom_alert = array();
$sql_custom_alert = sisplet_query("SELECT uid, type FROM srv_alert_custom WHERE ank_id = '$this->anketa'");
while ($row_custom_alert = mysqli_fetch_array($sql_custom_alert)) {
$custom_alert[$row_custom_alert['type']][$row_custom_alert['uid']] = 1;
}
if ($tab == 'complete') {
//echo '
' . $lang['srv_alert_title'] . ' '."\n";
echo '
';
} else if ($tab == 'expired') {
global $site_path, $global_user_id;
//echo '
' . $lang['srv_alert_expired_title'] . ' '."\n";
echo '
' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ' '. "\n";
echo ' ' . $lang['srv_alert_expired_time_title'] . ' '. "\n";
echo $lang['srv_alert_expire_days1'];
echo ' ';
echo $lang['srv_alert_expire_days2'];
echo $lang['srv_alert_expire_expire_at'] . $rowS['expire'].''.$lang['at'].'00:00 ';
echo $lang['srv_alert_expire_note_at'] . ''.$rowAlert['newdate'].' '.$lang['at'].'01:00 ';
echo ' ';
echo ' ';
echo ' '. "\n";
echo ' ' . $lang['srv_alert_prejemnik'] . ' '. "\n";
echo ' ';
echo '';
$this->display_alert_label('expire_author',($rowAlert['expire_author'] == 1));
echo '
';
echo '' . $lang['email_prejemniki'] . $lang['email_one_per_line'] . '
';
echo '';
echo '' . $lang['email'] . ': ' .
' ' . $rowAlert['expire_other_emails'] . ' ' .
'
';
echo ' ';
echo '';
echo ' ';
echo '';
echo '' . $lang['srv_alert_oblika'] . ' ';
echo '';
echo '
' . $lang['subject'] . ':
';
if ($rowAlert['expire_text'] != ''){
$text = $rowAlert['expire_text'];
}
else{
// Podpis
$signature = Common::getEmailSignature();
$text = nl2br($lang['srv_alert_expire_text'].$signature);
}
// prikaze editor za ne-spremenljivko (za karkoli druzga pac)
echo '
' . $lang['text'] . ': ';
echo ' ' . $text . ' ';
echo '
';
echo '
';
echo '';
echo '
';
echo $lang['srv_alert_instruction1'];
echo $lang['srv_alert_instruction4'];
echo '
';
echo '
';
echo ' ';
echo ' ';
echo ' ';
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo ' ';
} else if ($tab == 'active') {
//echo '
' . $lang['srv_alert_active_title'] . ' '."\n";
echo '
' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ''. "\n";
echo '' . $lang['srv_alert_prejemnik'] . ' '. "\n";
echo ' ';
echo '';
$this->display_alert_label('active_author',($rowAlert['active_author'] == 1));
echo '
';
echo '' . $lang['email_prejemniki'] . $lang['email_one_per_line'] . '
';
echo '';
echo '' . $lang['email'] . ': ';
echo '' . $rowAlert['active_other_emails'] . ' ' .
'
';
echo ' ';
echo '';
echo ' ';
echo '';
echo '' . $lang['srv_alert_oblika'] . ' ';
echo '';
echo '
' . $lang['srv_alert_oblika_deactivate_note'] . '
';
echo '
' . $lang['subject'] . ': ';
echo '
';
if ($rowAlert['active_text0'] != '') {
$text0 = $rowAlert['active_text0'];
}
else {
// Podpis
$signature = Common::getEmailSignature();
$text0 = nl2br($lang['srv_alert_active_text0'].$signature);
}
// prikaze editor za ne-spremenljivko (za karkoli druzga pac)
echo '
' . $lang['text'] . ': ';
echo ' ' . $text0 . ' ';
echo '
';
echo '
';
echo '
' . $lang['srv_alert_oblika_activate_note'] . '
';
echo '
' . $lang['subject'] . ': ';
echo '
';
if ($rowAlert['active_text1'] != '') {
$text1 = $rowAlert['active_text1'];
}
else {
// Podpis
$signature = Common::getEmailSignature();
$text1 = nl2br($lang['srv_alert_active_text1'].$signature);
}
echo '
' . $lang['text'] . ': ';
echo ' ' . $text1 . ' ';
echo '
';
echo '
';
echo '';
echo '
';
echo $lang['srv_alert_instruction1'];
echo $lang['srv_alert_instruction5'];
echo '
';
echo '
';
echo ' ';
echo ' ';
echo ' ';
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo ' ';
} else if ($tab == 'delete') {
//echo '
' . $lang['srv_alert_delete_title'] . ' '."\n";
echo '
' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ' ' . "\n";
echo ''. "\n";
echo '' . $lang['srv_alert_prejemnik'] . ' '. "\n";
echo ' ';
echo '';
$this->display_alert_label('delete_author',($rowAlert['delete_author'] == 1));
echo '
';
echo '' . $lang['email_prejemniki'] . $lang['email_one_per_line'] . '
';
echo '';
echo '' . $lang['email'] . ': ';
echo '' . $rowAlert['delete_other_emails'] . ' ';
echo '
';
echo ' ';
echo '';
echo ' ';
echo '';
echo '' . $lang['srv_alert_oblika'] . ' ';
echo '';
echo '
' . $lang['subject'] . ':
';
if ($rowAlert['delete_text'] != '') {
$text = $rowAlert['delete_text'];
}
else {
// Podpis
$signature = Common::getEmailSignature();
$text = nl2br($lang['srv_alert_delete_text'].$signature);
}
// prikaze editor za ne-spremenljivko (za karkoli druzga pac)
echo '
' . $lang['text'] . ': ';
echo ' ' . $text . ' ';
echo '
';
echo '
';
echo '';
echo '
';
echo $lang['srv_alert_instruction1'];
echo $lang['srv_alert_instruction5'];
echo '
';
echo '
';
echo ' ';
echo ' ';
echo ' ';
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo ' ';
} else if ($tab == 'email_server') {
// Gorenje tega nima
if (!Common::checkModule('gorenje') && $admin_type == '0')
$this->viewServerSettings();
} else {
print_r($tab);
}
?>
';
echo '
'.$lang['srv_user_base_email_server_settings'].' ';
$row = SurveyInfo::getInstance()->getSurveyRow();
// Opozorilo, ce imamo vklopljena vabila, da gre za iste nastavitve
$isEmail = (int)SurveyInfo::getInstance()->checkSurveyModule('email');
if($isEmail)
echo '
'.$lang['srv_email_server_settings_warning'].'
';
echo '
' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n";
echo ' ' . "\n\r";
$MA = new MailAdapter($this->anketa);
// Dostop za posiljanje mailov preko 1ka serverja
$enabled1ka = ( $MA->is1KA() || (($admin_type == 0) && ($mysql_database_name == 'www1kasi' || $mysql_database_name == 'test1kasi' || $mysql_database_name == 'real1kasi' || $mysql_database_name == '1kaarnessi')) ) ? true : false;
echo '';
echo ''.$lang['srv_email_setting_select_server'].' ';
echo ' is1KA() ? 'checked ="checked" ' : '').' '.($enabled1ka ? '' : ' disabled="disabled"').' onclick="$(\'#send_mail_mode1, #send_mail_mode2\').hide();$(\'#send_mail_mode0\').show();">';
echo $lang['srv_email_setting_adapter0']. ' ';
// Google smtp je viden samo starim, kjer je ze vklopljen
if($MA->isGoogle()){
echo ' isGoogle() ? 'checked ="checked" ' : '').' onclick="$(\'#send_mail_mode0, #send_mail_mode2\').hide(); $(\'#send_mail_mode1\').show();">';
echo $lang['srv_email_setting_adapter1'].' ';
}
echo ' isSMTP() ? 'checked ="checked" ' : '').' onclick="$(\'#send_mail_mode0, #send_mail_mode1\').hide(); $(\'#send_mail_mode2\').show();">';
echo $lang['srv_email_setting_adapter2'].' ';
echo Help :: display('srv_mail_mode');
echo '
';
#1KA
$enkaSettings = $MA->get1KASettings($raziskave=true);
echo 'is1KA() ? ' class="displayNone"' : '').'>';
echo '
'.$lang['srv_email_setting_settings'].' ';
echo '
';
# from
echo '
'.$lang['srv_email_setting_from'].''.$enkaSettings['SMTPFrom'].' ';
echo '
';
# replyTo
echo '
'.$lang['srv_email_setting_reply'].' ';
echo '
';
echo '
';
#GMAIL - Google
$enkaSettings = $MA->getGoogleSettings();
echo 'isGoogle() ? ' class="displayNone"' : '').'>';
echo '
'.$lang['srv_email_setting_adapter1_note'].' ';
echo '
'.$lang['srv_email_setting_settings'].' ';
# from
echo '
'.$lang['srv_email_setting_from'].' ';
echo '
';
# replyTo
echo '
'.$lang['srv_email_setting_reply'].' ';
echo '
';
#Password
echo '
'.$lang['srv_email_setting_password'].' ';
echo '
';
echo '
';
#SMTP
$enkaSettings = $MA->getSMTPSettings();
echo '';
echo ' ';
echo '';
echo '
';
// Gumb shrani
echo '
';
// Gumb preveri nastavitve
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
}
/**
* @desc poslje maile userjem iz baze
*/
function usermailing() {//OSTANE
global $lang;
global $site_url;
global $site_path;
global $global_user_id;
// preverimo aktivnost
//$sql = sisplet_query("SELECT active FROM srv_anketa WHERE id = '$this->anketa'");
//$row = mysqli_fetch_array($sql);
$row = SurveyInfo::getInstance()->getSurveyRow();
// ce ne postamo ali ce anketa ni aktivna
if (!isset ($_POST['mailto']) || ($row['active'] != 1)) {
echo '
';
echo '
';
$sa = new SurveyAdmin(1, $this->anketa);
$sa->show_mailto_users('all', null);
echo '
';
echo '
';
} else { // pošljemo emaile
$errorMsg = null;
//v odvisnosti od statusa polovimo emaile
$mailto_radio = $_POST['mailto'];
$mailto_status = (isset ($_POST['mailto_status']) && count($_POST['mailto_status']) > 0) ? implode(",", $_POST['mailto_status']) : null;
$sa = new SurveyAdmin(1, $this->anketa);
$arrayMailtoSqlString = $sa->getMailtoSqlString($mailto_radio, $mailto_status);
$errorMsg = $arrayMailtoSqlString['errorMsg'];
$sqlString = $arrayMailtoSqlString['sqlString'];
// preberemo tekst za trenutno anketo
$subject = "";
$text = "";
$sql_userbase_email = sisplet_query("SELECT * FROM srv_userbase_setting WHERE ank_id = '$this->anketa'");
if (mysqli_num_rows($sql_userbase_email) > 0) {
// anketa že ima nastavljen text
$row_userbase_email = mysqli_fetch_array($sql_userbase_email);
} else {
// anketa še nima nastavljenega teksta, preberemo privzetega (id=1) iz tabele srv_userbase_invitations
$sql_userbase_invitations = sisplet_query("SELECT * FROM srv_userbase_invitations WHERE id = 1");
$row_userbase_email = mysqli_fetch_array($sql_userbase_invitations);
}
if ($row_userbase_email['replyto'] == '') {
$sqluu = sisplet_query("SELECT email FROM users WHERE id = '$global_user_id'");
$rowuu = mysqli_fetch_array($sqluu);
$row_userbase_email['replyto'] = $rowuu['email'];
}
// poiščemo sistemske spremenljivke iz vsebine
preg_match_all( "/#(.*?)#/s", $row_userbase_email['text'], $sisVars);
// poiščemo sistemske spremenljivke iz vsebine
$sisVars =$sisVars[1];
// Poiščemo še sistemske spremenljivke iz ankete
$sqlSistemske = sisplet_query("SELECT s.id, s.naslov, s.variable FROM srv_spremenljivka s, srv_grupa g WHERE s.sistem='1' AND s.gru_id=g.id AND g.ank_id='".$this->anketa."' ORDER BY g.vrstni_red, s.vrstni_red");
if (mysqli_num_rows($sqlSistemske) > 0) {
while ($rowSistemske = mysqli_fetch_assoc($sqlSistemske)) {
if (!isset($sisVars[strtoupper($rowSistemske['variable'])]))
$sisVars[] = strtoupper($rowSistemske['variable']);
}
}
$sql_userbase = sisplet_query("SELECT MAX(b.tip) AS tip FROM srv_userbase b, srv_user u WHERE b.usr_id=u.id AND u.ank_id='$this->anketa'");
if (!$sql_userbase)
echo mysqli_error($GLOBALS['connect_db']);
$row_userbase = mysqli_fetch_array($sql_userbase);
$tip = $row_userbase['tip'] + 1;
if ($errorMsg == null) {
$sql = sisplet_query($sqlString);
// preprečimo izisovanje warningov
$warnings_msg = "";
$send_success = array ();
$send_errors = array ();
// ob_start();
// $htmlContent = ob_get_contents();
// ob_start();
$cnt = 0;
while ($row = mysqli_fetch_array($sql)) {
// dodamo sistemske spremenljivke in poiščemo njihove vrednosti
$userSysData = array();
foreach ( $sisVars as $sysVar ) {
$sqlUser = sisplet_query("SELECT d.text FROM srv_data_text".$this->db_table." d, srv_spremenljivka s , srv_grupa g
WHERE d.spr_id=s.id AND d.usr_id='" . $row['id'] . "' AND
s.variable = '".strtolower($sysVar)."' AND g.ank_id='" . $this->anketa . "' AND s.sistem = 1 AND s.gru_id=g.id
");
if (!$sqlUser)
echo mysqli_error($GLOBALS['connect_db']);
$rowUser = mysqli_fetch_assoc($sqlUser);
if ($rowUser['text'] != null)
$userSysData[strtolower($sysVar)] = $rowUser['text'];
}
$email = $userSysData['email'];
if (trim($email) != '' && $email != null) {
// shranimo komu in kdaj je kdo poslal mail
sisplet_query("INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES ('$row[id]', '$tip', NOW(), '" . $this->uid() . "')");
$url = SurveyInfo::getSurveyLink() . '?code=' . $row['pass'] . '';
if (trim($row['pass']) != '') {
$unsubscribe = $site_url . 'admin/survey/unsubscribe.php?anketa=' . $this->anketa . '&code=' . $row['pass'] . '';
} else {
$unsubscribe = $site_url . 'admin/survey/unsubscribe.php?anketa=' . $this->anketa . '&email=' . trim($email) . '&uid='.$row['id'];
}
// zamenjamo sistemske vrednosti
$content = $row_userbase_email['text'];
// za staro verzijo
$content = str_replace('[URL]', '#URL#', $content);
$content = str_replace('[CODE]', '#CODE#', $content);
$content = str_replace(array (
'#URL#',
'#CODE#',
), array (
'
' . $url . ' ',
$row['pass'],
), $content);
$content = str_replace('#UNSUBSCRIBE#', '
'.$lang['user_bye_hl'].' ', $content);
// poiščemo prestale variable katere je potrebno zamenjati v vsebini
preg_match_all( "/#(.*?)#/s", $content, $toReplace);
foreach ($toReplace[0] as $key => $seed) {
$content = str_replace($toReplace[0][$key], $userSysData[strtolower($toReplace[1][$key])],$content);
}
$subject = $row_userbase_email['subject'];
try
{
$MA = new MailAdapter($this->anketa, $type='alert');
$MA->addRecipients($email);
if ($cnt++ == 0)
{ # en mail pošljemo tudi na enklikanketa
$MA->addRecipients('enklikanketa@gmail.com');
}
$resultX = $MA->sendMail(stripslashes($content), $subject);
}
catch (Exception $e)
{
}
if ($resultX) {
$status = 1; // poslalo ok
$send_success[] = $email;
} else {
$status = 2; // ni poslalo
$send_errors[] = $email;
}
// nastavimo status
sisplet_query("INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES ('$row[id]', '$tip', '$status', NOW())");
# laststatus updejtamo samo če je bil pred tem status 0 - email še ni poslan ali 2 - napaka pri pošiljanju maila
sisplet_query("UPDATE srv_user SET last_status = '$status' WHERE id = '$row[id]' AND last_status IN (0,2)");
}
// počistimo warninge
// ob_end_clean();
// echo $htmlContent;
}
echo '
Spodnje sporočilo: ' . $row_userbase_email['subject'] . ',
' . $row_userbase_email['text'] . '
';
if (count($send_success) > 0) {
echo '
je bilo uspešno poslano na naslednje naslove: ';
foreach ($send_success as $email) {
echo $email . ",
";
}
}
if (count($send_errors) > 0) {
echo '
ni bilo uspešno poslano. Pri pošiljanju na naslednje naslove je prišlo do napake: ';
foreach ($send_errors as $email) {
echo $email . ",
";
}
}
//echo '
Done';
// izpipemo warninge na koncu
} else {
echo '
' . $errorMsg . '
';
}
}
}
/**
* @desc prikaze tab Socialna omrezja
*/
function SN_Settings() {
global $lang;
global $site_url;
global $site_path;
echo '
';
echo '' . $lang['srv_splosna_navodila'] . ' ';
echo ''.$lang['srv_social_settings_text1'].'
';
echo ''.$lang['srv_social_settings_text2'].'
';
echo ''.$lang['srv_social_settings_text3'].'
';
echo ''.$lang['srv_social_settings_text4'].'
';
echo ''.$lang['srv_social_settings_text5'].' http://www.1ka.si/a/3510 ,
';
echo ''.$lang['srv_social_settings_text6'].' '.$lang['srv_library'].' '.$lang['srv_social_settings_text7'].'
';
echo ''.$lang['edit2'].' '.$lang['srv_social_settings_text8'].'
';
echo ' ';
// Omrežja so sestavljane vprašanja. Začnejo se iz generatorja imen (name generator). S tem respondent (ego) navede objekte, prijatelje - alterje. , s katerim pridobimo imena pzanke in vprašanj. Druga kompnenta je zanka, ki za vse alterje določenega ega sproži enaka vprašanja. Dretja komponenta so vprašanja. Primer omrežja je tukaj, http://www.1ka.si/a/3510, vprašalnik pa najdemo v knjižnjic med Primerov 1KA anket http://www.1ka.si/admin/survey/index.php?a=knjiznica
}
/**
* @desc prikaze tab arhivi
*/
function arhivi() {//OSTANE
global $lang;
echo '
';
echo '' . $lang['srv_questionnaire_archives'] . ' ';
echo '' . $lang['srv_backup_label'] . '
';
echo ''.$lang['srv_note'].':
';
echo ' ';
echo ' ';
// Seznam ustvarjenih arhivov
$sql = sisplet_query("SELECT a.id, a.naslov, a.intro_opomba, a.insert_time, a.edit_time, CONCAT(i.name, ' ', i.surname) AS insert_name, CONCAT(e.name, ' ', e.surname) AS edit_name FROM srv_anketa a, users i, users e WHERE a.insert_uid=i.id AND a.edit_uid=e.id AND a.backup = '$this->anketa' AND a.active>='0' ORDER BY a.insert_time DESC");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sql) > 0)
echo '' . $lang['srv_backup_list'] . ': ';
while ($row = mysqli_fetch_array($sql)) {
echo '';
}
echo ' ';
}
function arhivi_data() {
global $lang;
echo '
';
echo '' . $lang['srv_arhiv_data'] . ' ';
echo '' . $lang['srv_backup_data_label'] . '
';
echo ' ';
echo ' ';
$backups = array();
if ($handle = opendir( dirname(__FILE__) . '/SurveyBackup/' )) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$file = explode('-', $entry);
if ($file[0] == $this->anketa) {
$backups[] = $entry;
}
}
}
closedir($handle);
}
if (count($backups) > 0) {
echo '' . $lang['srv_backup_data_list'] . ': ';
foreach ($backups AS $file) {
$e = explode('-', $file);
$e[2] = str_replace('.1ka', '', $e[2]);
echo ''.$e[1].' '.$e[2].' - '.$lang['srv_anketarestoredata'].' ';
}
echo ' ';
}
echo ' ';
}
function arhivi_testdata() {
global $lang;
$str_testdata = "SELECT count(*) FROM srv_user WHERE ank_id='".$this->anketa."' AND (testdata='1' OR testdata='2')";
$query_testdata = sisplet_query($str_testdata);
list($testdata) = mysqli_fetch_row($query_testdata);
$str_testdata_auto = "SELECT count(*), add_date, add_uid FROM srv_testdata_archive WHERE ank_id='".$this->anketa."' GROUP BY add_date";
$query_testdata_auto = sisplet_query($str_testdata_auto);
$auto_testdata = array();
while (list($_cnt, $_date, $_uid) = mysqli_fetch_row($query_testdata_auto) ) {
$testdata_auto+=$_cnt;
$auto_testdata[] = $cnt;
}
echo '
';
echo ''.$lang['srv_arhiv_testdata'].' ';
echo $lang['srv_archive_test_data_count'].(int)$testdata;
if ($testdata_auto > 0) {
echo $lang['srv_archive_test_data_auto'].(int)$testdata_auto;
}
echo ' ';
}
function arhivi_survey() {
global $lang;
// Uvoz/izvoz samo ankete - po novem je uvoz pri kreiranju ankete
if($_GET['m'] == 'survey'){
echo '
';
echo ''.$lang['srv_survey_archives_ie_title'].' ';
echo ''.$lang['srv_survey_archives_note_survey'].'
';
// Izvoz
echo '';
echo ''.$lang['srv_survey_archives_export'].' ';
echo ' '.$lang['srv_survey_archives_export_text'];
echo ''.$lang['srv_survey_archives_export_save'].' ';
echo '
';
echo ' ';
// Uvoz
/*echo '';
echo ''.$lang['srv_survey_archives_import'].' ';
echo ' '.$lang['srv_survey_archives_import_text'];
echo ''.$lang['srv_survey_archives_import_import'].' ';
echo ' ';
echo '
'.$lang['srv_arhiv_datoteka_save_txt2'].':
'.$lang['srv_arhiv_datoteka_restore_help'].'
';
echo '';*/
echo ' ';
}
// Uvoz/izvoz ankete s podatki - po novem je uvoz pri kreiranju ankete
else{
echo '
';
echo ''.$lang['srv_survey_archives_ie_data_title'].' ';
echo ''.$lang['srv_survey_archives_note_survey_data'].'
';
// Izvoz
echo '';
echo ''.$lang['srv_survey_archives_export'].' ';
echo ' '.$lang['srv_survey_archives_export_text'];
echo ''.$lang['srv_survey_archives_export_save'].' ';
echo '
';
echo ' ';
// Uvoz
/*echo '';
echo ''.$lang['srv_survey_archives_import'].' ';
echo ' '.$lang['srv_survey_archives_import_text'];
echo ''.$lang['srv_survey_archives_import_import'].' ';
echo ' ';
echo '
'.$lang['srv_arhiv_datoteka_save_txt2'].':
'.$lang['srv_arhiv_datoteka_restore_help'].'
';
echo '';*/
echo ' ';
}
}
// Preveri ce gre za prvo popravljanje podatkov in ce da, potem ustvari arhiv podatkov
function checkFirstDataChange($inserted=false){
global $connect_db;
$sql = sisplet_query('SELECT count(*) AS cnt FROM srv_tracking'.$this->db_table.' WHERE ank_id=\''.$this->anketa.'\'
AND (`get` LIKE \'%edit_data%\'
OR (`get` LIKE \'%a: "data", m: "quick_edit"%\' AND `get` LIKE \'%post: "1"%\')
OR (`get` LIKE \'%a: "dataCopyRow"%\')
OR (`get` LIKE \'%a: "dataDeleteMultipleRow"%\')
OR (`get` LIKE \'%a: "dataDeleteRow"%\')
OR (`get` LIKE \'%urejanje: "1"%\' AND status=\'4\'))
ORDER BY datetime DESC');
$row = mysqli_fetch_array($sql);
// Naredimo arhiv podatkov
if($row['cnt'] == 0 || ($inserted && $row['cnt'] == 1)){
SurveyCopy::setSrcSurvey($this->anketa);
SurveyCopy::setSrcConectDb($connect_db);
SurveyCopy::saveArrayFile($data=true);
}
}
/**
* @desc skopira anketo
*/
function anketa_copy($anketa = 0) {//OSTANE
// stara kopija kode je v classu class.SurveyCopy.php na dnu :)
global $connect_db;
if ($anketa > 0)
$this->anketa = $anketa;
$site = $_GET['site'];
SurveyCopy :: setSrcSurvey($this->anketa);
SurveyCopy :: setSrcConectDb($connect_db);
SurveyCopy :: setDestSite($site);
$new_anketa_id = SurveyCopy :: doCopy();
$napake = SurveyCopy :: getErrors();
if (count($napake) > 0)
print_r($napake);
if (!$new_anketa_id)
die("Can not create new survey!");
if (!$site || $site == 0)
return $new_anketa_id;
elseif ($site != -1)
header("Refresh:1; url=index.php?anketa=$this->anketa&a=arhivi");
}
/**
* @desc kreira backup (skopira celotno anketo v novo)
*/
function backup_create($NoRedirect = false) {//OSTANE
$anketa = $this->anketa_copy();
sisplet_query("UPDATE srv_anketa SET backup='$this->anketa', active='0', naslov = CONCAT( naslov, ' ', DAY(NOW()), '.', MONTH(NOW()), '.', YEAR(NOW()) ), intro_opomba='{$_POST['intro_opomba']}' WHERE id='$anketa'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
if ($NoRedirect == false) {
header("Refresh:1; url=index.php?anketa=$this->anketa&a=arhivi");
//header("Location: index.php?anketa=$this->anketa&a=arhivi");
}
}
/**
* @desc kreira backup in da obvestilo o uspešnosti (skopira celotno anketo v novo)
*/
function backup_create_popup() {//OSTANE
global $lang;
$anketa = $this->anketa_copy();
sisplet_query("UPDATE srv_anketa SET backup='$this->anketa', active='0', naslov = CONCAT( naslov, ' ', DAY(NOW()), '.', MONTH(NOW()), '.', YEAR(NOW()) ) WHERE id='$anketa'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
if ($anketa > 0 || true) {
echo $lang['srv_backup_create_popup_ok'];
}
echo '
'.$lang['srv_backup_create_popup_view'].' ';
echo '
'.$lang['srv_backup_create_popup_close'].' ';
}
/**
* @desc prenese arhivsko anketo v folderje
*/
function backup_restore() {//OSTANE
$row = SurveyInfo::getInstance()->getSurveyRow();
$active = 0;
$backup = 0;
$sql = sisplet_query("UPDATE srv_anketa SET active='$active', backup='$backup' WHERE id = '$this->anketa'");
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
header("Location: index.php?anketa=$this->anketa");
}
/**
* prikaze tab z opcijami za vnos
*/
function vnos () {
global $lang;
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
'.$lang['settings'].' ';
echo ''.$lang['srv_vnos_navodila'].'
';
/*echo '';
echo '
';
echo '
';
echo '' . $lang['srv_cookie'] . ' ';*/
//prepoznaj uporabnika iz sispleta
echo '' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo '' . $lang['srv_mass_input'] . ': ';
echo ' ' . $lang['srv_mass_input_1'] . ' ' . "\n\r";
echo ' ' . $lang['srv_mass_input_0'] . ' ' . "\n\r";
echo ' ';
echo ' ';
echo ' ';
echo ' ';
echo '
';
echo '
';
echo '';
echo ' ';
echo '
';
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
}
/**
* @desc prikaze tab za uporabnost - nastavitve
*/
function uporabnost() {
global $site_url;
global $lang;
SurveySetting::getInstance()->Init($this->anketa);
if (count($_POST) > 0 && (isset($_POST['uporabnost_link']) || isset($_POST['uporabnost_razdeli']))) {
$uporabnost_link = $_POST['uporabnost_link'];
$uporabnost = $_POST['uporabnost'];
sisplet_query("UPDATE srv_anketa SET uporabnost_link = '$uporabnost_link' WHERE id = '$this->anketa'");
$sqlg = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id = '$this->anketa'");
while ($rowg = mysqli_fetch_array($sqlg)) {
if ( isset($_POST['uporabnost_link_'.$rowg['id']])) {
SurveySetting::getInstance()->setSurveyMiscSetting('uporabnost_link_'.$rowg['id'], $_POST['uporabnost_link_'.$rowg['id']]);
}
}
if (isset($_POST['uporabnost_razdeli'])) {
SurveySetting::getInstance()->setSurveyMiscSetting('uporabnost_razdeli', $_POST['uporabnost_razdeli']);
}
// vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
}
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
'.$lang['settings'].' ';
echo '';
if ($row['uporabnost_link'] == '')
$row['uporabnost_link'] = 'http://';
echo ''.$lang['srv_uporabnost_link'].'
';
echo ''.$lang['srv_uporabnost_warning'].'
';
echo 'Link:
';
$uporabnost_razdeli = SurveySetting::getInstance()->getSurveyMiscSetting('uporabnost_razdeli');
echo ''.$lang['srv_uporabnost_razdeli'].': '.$lang['srv_vodoravno'].' '.$lang['srv_navpicno'].' ('.$lang['srv_razdeli_dodatno'].')
';
echo ' ';
echo '
';
echo '
'.$lang['srv_uporabnost_nadaljne'].' ';
echo ''.$lang['srv_uporabnost_link_stran'].'
';
$sqlg = sisplet_query("SELECT id, naslov FROM srv_grupa WHERE ank_id = '$this->anketa' ORDER BY vrstni_red ASC");
while ($rowg = mysqli_fetch_array($sqlg)) {
$link = SurveySetting::getInstance()->getSurveyMiscSetting('uporabnost_link_'.$rowg['id']);
if ($link == '')
$link = 'http://';
echo ''.$rowg['naslov'].':
';
}
echo '';
echo '
';
//echo '
';
echo '
';
echo '';
echo ' ';
echo '
';
echo '
';
echo '';
/*echo '
'.$lang['srv_upora_dodatno'].' ';
echo '' . $lang['srv_upora_text'] . '
';
echo ''.$lang['srv_primer'].'
';
echo '
';
echo '';*/
}
/**
* @desc prikaze vnose v anketo
*/
function displayIzvozi() {
global $lang, $site_url, $global_user_id;
$sdf = SurveyDataFile::get_instance();
$sdf->init($this->anketa);
$headFileName = $sdf->getHeaderFileName();
$dataFileName = $sdf->getDataFileName();
$dataFileStatus = $sdf->getStatus();
if ($dataFileStatus== FILE_STATUS_NO_DATA
|| $dataFileStatus == FILE_STATUS_NO_FILE
|| $dataFileStatus == FILE_STATUS_SRV_DELETED){
Common::noDataAlert();
return false;
}
if ($_GET['m'] == 'excel') {
echo '
';
} else if($_GET['m'] == 'excel_xls') {
echo ' ';
} else if($_GET['m'] == 'txt') {
echo ' ';
} else if($_GET['m'] == 'spss') {
echo ' ';
} else if($_GET['m'] == 'sav') {
echo ' ';
}
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '';
echo '
';
if($_GET['m'] != 'export_PDF'){
echo '';
echo '' . $lang['srv_dsp_link'] . ' ';
echo ' ';
}
// profili statusov
SurveyStatusProfiles :: Init($this->anketa);
SurveyStatusProfiles :: DisplayLink(false);
# div za profile variabel
SurveyVariablesProfiles :: Init($this->anketa, $global_user_id);
SurveyVariablesProfiles :: DisplayLink(false,false);
SurveyConditionProfiles :: Init($this->anketa, $global_user_id);
SurveyConditionProfiles::DisplayLink(false);
# div za profile časov
SurveyTimeProfiles :: Init($this->anketa, $global_user_id);
SurveyTimeProfiles::DisplayLink(false,true);
echo ' ';
echo '
';
if($_GET['m'] != 'export_PDF'){
if(session_id() == '')
session_start();
echo '';
// Izvozi identifikatorje
echo '
'.$lang['srv_export_hidden_system']
.'';
echo Help::display('exportSettings');
echo '
';
// Izvozi podatke
echo '
'.$lang['srv_export_only_data']
.'';
echo '
';
// Izvozi podatke in parapodatke
echo '
'.$lang['srv_export_full_meta']
.'';
echo Help::display('srv_export_full_meta');
echo '
';
echo '
';
echo '
';
echo '
';
}
# v odvisnosti od $_GET['m'] prikazemo podstran
if (!$_GET['m'] || $_GET['m'] == M_EXPORT_EXCEL) {
echo ''.$lang['srv_lnk_excel'].' ';
echo $lang['srv_izvoz_Excel_note'];
echo $lang['srv_izvoz_Excel_note_2'];
echo ''.$lang['srv_izvoz_Excel_settings'].'
';
echo '';
echo ''.$lang['srv_expor_excel_cell_delimiter'].' ';
echo ' '.$lang['srv_expor_excel_cell_delimiter1'].' ';
echo ' '.$lang['srv_expor_excel_cell_delimiter2'].' ';
echo '
';
echo '';
echo '
';
echo '';
echo $lang['srv_export_replace1'].' ';
echo $lang['srv_export_replace2'].' ';
echo ' ';
echo '
';
echo '';
echo '';
echo $lang['srv_export_replace1'].' ';
echo $lang['srv_export_replace2'].' ';
echo ' ';
echo '
';
echo '';
echo '';
echo ' '.$lang['srv_export_texts'].' ';
echo '
';
echo '
';
} elseif ($_GET['m'] == M_EXPORT_EXCEL_XLS) {
echo ''.$lang['srv_lnk_excel_xls'].' ';
echo $lang['srv_izvoz_Excel_xls_note'];
echo $lang['srv_izvoz_Excel_xls_note_2'];
echo ' ';
}
elseif ($_GET['m'] == M_EXPORT_SPSS) {
echo ''.$lang['srv_lnk_spss'].' ';
echo $lang['srv_izvoz_SPSS_faq'];
echo $lang['srv_izvoz_SPSS_note'];
echo ' ';
}
elseif ($_GET['m'] == M_EXPORT_SAV) {
echo ''.$lang['srv_lnk_sav'].' ';
echo $lang['srv_izvoz_SAV_note'];
echo ' ';
}
elseif ($_GET['m'] == M_EXPORT_TXT) {
echo ''.$lang['srv_lnk_txt'].' ';
echo $lang['srv_izvoz_txt_note'];
echo ' ';
}
elseif ($_GET['m'] == 'export_PDF') {
$pageBreak = isset($_GET['pageBreak']) ? $_GET['pageBreak'] : 0;
$type = isset($_GET['type']) ? $_GET['type'] : 0;
$if = isset($_GET['if']) ? $_GET['if'] : 0;
$font = isset($_GET['font']) ? $_GET['font'] : 12;
echo ''.$lang['srv_export_questionnare_0'].' ';
echo '';
echo $lang['srv_export_questionnare_1'].' ';
echo $lang['srv_export_questionnare_2'];
echo '
';
# PDF in RTF izvoz rezultatov
echo '';
echo '' . $lang['srv_lnk_PDF/RTF'] . ' ';
echo '' .
' PDF - (Adobe Acrobat) ';
echo ' ';
echo '';
echo ' DOC - (Microsoft Word) ';
echo ' ';
//vsak resp na svoji strani
echo '';
echo '' . $lang['settings'] . ' ';
echo '' . $lang['srv_export_pagebreak'] . ': ';
echo '' . $lang['yes'] . ' ';
echo '' . $lang['no1'] . ' ';
//dolg/kratek izpis vprasanj v pdf
echo ' ';
echo '' . $lang['srv_displaydata_type'] . ': ';
echo '' . $lang['srv_displaydata_type0'] . ' ';
echo '' . $lang['srv_displaydata_type1'] . ' ';
echo '' . $lang['srv_displaydata_type2'] . ' ';
//prikaz if-ov
echo ' ';
echo '' . $lang['srv_export_if'] . ': ';
echo '' . $lang['yes'] . ' ';
echo '' . $lang['no1'] . ' ';
//velikost fonta
echo ' ';
echo '' . $lang['srv_export_font'] . ': ';
echo '';
for($i=8; $i<16; $i+=2){
echo ''.$i.' ';
}
echo ' ';
//echo '' . $lang['yes'] . ' ';
echo ' ';
}
echo ' ';
}
/**
* @desc prikaze vnose v anketo
* /
function displayVnosi() {//OSTANE
global $lang;
$row = SurveyInfo::getInstance()->getSurveyRow();
if ($_GET['m'] == 'SN_izvozi') {
echo '
' . "\n\r";
//Excel izvozi
echo '
';
echo 'EXCEL IZVOZI ';
echo '';
echo '';
echo '
';
// echo '
';
echo $lang['srv_izvoz_Excel_note'] . '
';
echo '
';
echo ' ';
echo '
';
//SPSS izvozi
echo '
';
echo 'SPSS IZVOZI ZA EGE ';
// echo 'Ker se pri nekaterih SPSS verzijah pri izvozu podatkov pojavljajo tezave, je treba izvoz datoteke s podatki opraviti v EXCELu, nato pa s spodnjimi SPSS datotekami s strukturami (sintaksami) podatke uvoziti v SPSS iz EXCELa.
';
echo '';
echo '';
echo '
';
// echo '
';
echo $lang['srv_izvoz_SPSS_note'] . '
';
echo '
';
echo ' ';
// EGO
echo '
';
echo '
';
echo 'SPSS IZVOZI ZA ALTERJE ';
echo ' ';
} else { // data iz baze
echo '
' . "\n\r";
$this->displayData();
echo '
';
}
}
*/
/**
* @desc prikaze podatke v tabeli
*/
function displayData() {
global $lang;
global $site_url;
//include_once ('DisplaySurveyData.php');
$dsd = new DisplaySurveyData($this->anketa);
$dsd->display();
}
/**
* @desc Vrne ID trenutnega uporabnika (ce ni prijavljen vrne 0)
*/
function uid() {
global $global_user_id;
return $global_user_id;
}
/**
* @desc Vrne vse uporabnike iz baze
*/
static function db_select_users() {
return sisplet_query("SELECT name, surname, id, email FROM users ORDER BY name ASC");
}
/**
* @desc Vrne vse nepobrisane uporabnike iz baze
*/
private static function db_select_users_forLevel($anketa = null) {
global $global_user_id, $admin_type;
// tip admina: 0=>admin, 1=>manager, 2=>clan, 3=>user
switch ( $admin_type ) {
// admin vidi vse
case 0:
return sisplet_query("SELECT name, surname, id, email FROM users WHERE status!='0' ORDER BY name ASC");
break;
// manager vidi ljudi pod sabo
case 1:
if ($anketa === null)
return sisplet_query("SELECT a.name, a.surname, a.id, a.email FROM users a, srv_dostop_manage m WHERE a.status!='0' AND m.manager='" .$global_user_id ."' AND m.user=a.id");
else
return sisplet_query("SELECT a.name, a.surname, a.id, a.email FROM users a, srv_dostop_manage m WHERE a.status!='0' AND m.manager='" .$global_user_id ."' AND m.user=a.id UNION SELECT u.name, u.surname, u.id, u.email FROM users u, srv_dostop d WHERE d.ank_id='$anketa' AND d.uid=u.id");
break;
case 2:
case 3:
// TODO // clani in userji lahko vidijo samo tiste ki so jim poslali maile in so se registrirali
// ce smo v urejanju nastavitve ankete vidijo vse, ki so dodeljeni anketi, da jim lahko nastavijo
if ($anketa === null)
return sisplet_query("SELECT name, surname, id, email FROM users WHERE 1 = 0");
else
return sisplet_query("SELECT u.name, u.surname, u.id, u.email FROM users u, srv_dostop d WHERE u.status!='0' AND d.ank_id='$anketa' AND d.uid=u.id");
break;
}
return null;
}
function display_dostop_users($show_all=0){
global $global_user_id, $admin_type, $lang;
$avtorRow = SurveyInfo::getInstance()->getSurveyRow();
// Prikazemo samo userje ki lahko urejajo anketo
if($show_all == 0){
echo '
' . "\n";
$sql1 = sisplet_query("SELECT u.name, u.surname, u.id, u.email FROM users u, srv_dostop d WHERE d.ank_id='$this->anketa' AND d.uid=u.id");
while ($row1 = mysqli_fetch_array($sql1)) {
// Da ga ne pocistimo ce je disablan (sam sebe ne more odstranit in avtorja se ne sme odstranit)
if($avtorRow['insert_uid'] == $row1['id'] || $global_user_id == $row1['id'])
echo '
' . "\n";
echo '
' . "\n";
echo '';
echo ' ';
echo $row1['name'] . ($avtorRow['insert_uid'] == $row1['id'] ? ' (' . $lang['author'] . ')' : '') . ' ' . "\n";
echo ' ';
echo '
' . "\n";
}
}
// Prikazemo vse userje, ki jih lahko uporabnig dodaja
else{
$sql1 = $this->db_select_users_forLevel($this->anketa);
if ( mysqli_num_rows($sql1) > 0 ) {
echo '
'.$lang['srv_dostop_show_all'].' ';
echo '
'.$lang['srv_dostop_hide_all'].' ';
echo '
' . "\n";
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT ank_id, uid FROM srv_dostop WHERE ank_id='$this->anketa' AND uid='$row1[id]'");
$checked = (mysqli_num_rows($sql2) > 0) ? ' checked="checked"' : '';
// Da ga ne pocistimo ce je disablan (sam sebe ne more odstranit in avtorja se ne sme odstranit)
if($avtorRow['insert_uid'] == $row1['id'] || $global_user_id == $row1['id'])
echo '
' . "\n";
echo '
' . "\n";
echo '';
echo ' ' . "\n";
echo $row1['name'] . ($avtorRow['insert_uid'] == $row1['id'] ? ' (' . $lang['author'] . ')' : '') . ' ';
if ($checked != '')
echo ' ';
echo '
' . "\n";
}
}
}
}
/**
* @desc Vrne podatke o uporabniku
*/
static function db_select_user($uid) {
return sisplet_query("SELECT name, surname, id, email FROM users WHERE id='$uid'");
}
/** Preveri ali uporabnik ustreza minimalni zahtevi statusa
*
* @param $minimum_role_request minimalna zahteva (lahko podamo kot array posamezno)
* @return true/false
*/
function user_role_cehck($minimum_role_request = U_ROLE_ADMIN) {
global $admin_type;
if (is_array($minimum_role_request) && count($minimum_role_request) > 0) { // ce podamo kot array preverimo za vsak zapis posebej
foreach ($minimum_role_request as $role) {
if ($admin_type == $role)
return true;
}
} else {
if ($admin_type <= $minimum_role_request)
return true;
}
return false;
}
var $getSurvey_type = null;
function getSurvey_type($sid) {
if ($this->getSurvey_type != null)
return $this->getSurvey_type;
// polovimo tip ankete
$str_survey_type = sisplet_query("SELECT survey_type FROM srv_anketa WHERE id = '" . $sid . "'");
$row_survey_type = mysqli_fetch_assoc($str_survey_type);
$this->getSurvey_type = $row_survey_type['survey_type'];
return $this->getSurvey_type;
}
/**
* TODO ???
*
* @param mixed $what
* @param mixed $isChecked
* $forma - pri hitirh nastavitvah forme prikazemo nekje krajsi text
*/
function display_alert_label($what, $isChecked = false, $forma = false) {
global $lang, $global_user_id;
$custom_alert = array();
$sql_custom_alert = sisplet_query("SELECT uid, type FROM srv_alert_custom WHERE ank_id = '$this->anketa'");
while ($row_custom_alert = mysqli_fetch_array($sql_custom_alert)) {
$custom_alert[$row_custom_alert['type']][$row_custom_alert['uid']] = 1;
}
switch ($what) {
case 'finish_respondent_language': // respondent ki je zakljucil anketo v drugem jeziku (mu omogocimo nastavljanje custom maila za obvescanje)
if ($isChecked) {
$p = new Prevajanje($anketa);
$p->dostop();
$jeziki = $p->get_all_translation_langs();
if(!empty($jeziki)){
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
';
foreach($jeziki as $key => $jezik){
echo '
'.$lang['srv_alert_respondent'].' - '.$jezik;
echo ' ';
echo ' ';
}
}
}
break;
case 'finish_respondent': // respondent ki je zakljucil anketo
if ($isChecked) {
// preverimo ali obszaja sistemska spremenljivka email če ne jo dodamo
$sqlEmail = sisplet_query("SELECT s.sistem, s.variable, s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.sistem='1' AND s.variable='email' AND s.gru_id=g.id AND g.ank_id='$this->anketa'");
$sqlIme = sisplet_query("SELECT s.sistem, s.variable, s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.sistem='1' AND s.variable='ime' AND s.gru_id=g.id AND g.ank_id='$this->anketa'");
// ce sta dodani obe sistemski spremenljivki je fse ok
$email_ok = $ime_ok = false;
if ( mysqli_num_rows($sqlEmail) > 0 && mysqli_num_rows($sqlIme) > 0) {
$email_ok = $ime_ok = true;
} else {
// manjka ena ali obe potrebni sistemski spremenljivki
// email je nujen, zato ga dodamo avtomatsko
if ( mysqli_num_rows($sqlEmail) == 0 ) {
//dodamo email
$sa = new SurveyAdmin(1, $this->anketa);
if (in_array('email',$sa->alert_add_necessary_sysvar( array('email') , false))) {
$email_ok = true;
}
// email v tem primeru spremenimo da je viden, ker gre za alert
$sqlEmail = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.sistem='1' AND s.variable='email' AND s.gru_id=g.id AND g.ank_id='$this->anketa'");
$rowEmail = mysqli_fetch_array($sqlEmail);
sisplet_query("UPDATE srv_spremenljivka SET visible='1' WHERE id = '$rowEmail[id]'");
// emailu po novem nastavimo preverjanje pravilnosti emaila in mehko opozorilo na to preverjanje
$v = new Vprasanje($this->anketa);
$v->spremenljivka = $rowEmail['id'];
$v->set_email($reminder=1);
} else {
// email je ze dodan damo tekst za ok
$email_ok = true;
}
// preverimo še za ime
if ( mysqli_num_rows($sqlIme) == 0 ) {
} else{
$ime_ok = true;
}
}
if($forma)
echo '
'.$lang['srv_alert_anketiranec'].' ';
else
echo '
'.$lang['srv_alert_respondent'].' ';
if ($email_ok && $ime_ok) {
echo $lang['srv_alert_respondent_note_ok_email_ime'];
echo '
' . "\n\r";
echo '
';
$sql1 = sisplet_query("SELECT finish_respondent_if FROM srv_alert WHERE ank_id='$this->anketa'");
$row1 = mysqli_fetch_array($sql1);
echo '
';
if ($row1['finish_respondent_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['finish_respondent_if']); }
} else {
if ($ime_ok) {
// pomeni da email ni ok! napaka
echo $lang['srv_alert_respondent_note_notok_email'];
} else {
// email je ok, ime ni, uporabnika fprasamo ali hoce se ime
echo $lang['srv_alert_respondent_note_ok_email'];
echo '
';
$sql1 = sisplet_query("SELECT finish_respondent_if FROM srv_alert WHERE ank_id='$this->anketa'");
$row1 = mysqli_fetch_array($sql1);
echo '
';
if ($row1['finish_respondent_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['finish_respondent_if']); }
if(!$forma){
echo $lang['srv_alert_respondent_note_ime'];
echo '
'.$lang['srv_alert_respondent_note_link'].'' . "\n\r";
}
}
}
// preverimo sistemske nastavitve in spremenljivke ime
} else {
if($forma)
echo '
'.$lang['srv_alert_anketiranec'].' ';
else
echo '
'.$lang['srv_alert_respondent'].' ';
}
break;
case 'finish_respondent_cms': // respondent prepoznan iz CMS ko je izpolnil anketo
//respondent iz cms
//pri hitrih nastavitvah forme prikazemo drug text
if($forma)
echo '
'.$lang['srv_alert_anketiranec_cms'].' ';
else
echo '
'.$lang['srv_alert_respondent_cms'].' ';
if ($isChecked) {
// preverimo sistemske nastavitve in spremenljivke
//$sqlCMS = sisplet_query("SELECT user_from_cms FROM srv_anketa WHERE id='$this->anketa'");
//$rowCMS = mysqli_fetch_assoc($sqlCMS);
$rowCMS = SurveyInfo::getInstance()->getSurveyRow();
if ($rowCMS['user_from_cms'] > 0) {
echo $lang['srv_alert_respondent_cms_note_ok'];
echo '
' . "\n\r";
echo '
';
$sql1 = sisplet_query("SELECT finish_respondent_cms_if FROM srv_alert WHERE ank_id='$this->anketa'");
$row1 = mysqli_fetch_array($sql1);
echo '
';
if ($row1['finish_respondent_cms_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['finish_respondent_cms_if']); }
} else {
echo $lang['srv_alert_respondent_cms_note'];
echo '
'.$lang['srv_alert_respondent_cms_note_link'].'' . "\n\r";
}
}
break;
case 'finish_author': // obveščanje ob izpolnjeni anketi
case 'expire_author': // obveščanje ob poteku ankete
case 'active_author': // obveščanje ob aktivaciji/deaktivaciej ankete
case 'delete_author': // obveščanje ob izbrisu ankete
// avtor ankete
if($forma)
echo '
'.$lang['srv_alert_author2'].' ';
else
echo '
'.$lang['srv_alert_author'].' ';
if ($isChecked) {
//$sql = sisplet_query("SELECT insert_uid, edit_uid FROM srv_anketa WHERE id='$this->anketa'");
//$row = mysqli_fetch_assoc($sql);
$b = null;
$row = SurveyInfo::getInstance()->getSurveyRow();
echo '
';
if ($what == 'finish_author')
$db_field = 'alert_complete';
else if ($what == 'expire_author')
$db_field = 'alert_expire';
else if ($what == 'active_author')
$db_field = 'alert_active';
else if ($what == 'delete_author')
$db_field = 'alert_delete';
// polovimo avtorja - novo kjer se ga lahko tudi izklopi (zaenkrat samo pri koncani anketi)
if($what == 'finish_author'){
$sqlAuthor = $this->db_select_user($row['insert_uid']);
$rowAuthor = mysqli_fetch_array($sqlAuthor);
$sql1 = sisplet_query("SELECT *, uid AS id FROM srv_dostop WHERE ank_id='$this->anketa' AND uid='".$row['insert_uid']."'");
$row1 = mysqli_fetch_array($sql1);
// Ce smo ravno z ajaxom vklopili obvescanje avtorja, ga tudi aktiviramo
if(isset($_POST['checked']) && isset($_POST['what']) && $_POST['what']=='finish_author'){
$checked = ($_POST['checked'] == true) ? ' checked="checked" ' : '';
}
else{
$checked = ($row1[$db_field] == '1') ? ' checked="checked" ' : '';
}
echo '
' . "\n\r";
echo '' . $rowAuthor['name'] . ' (' . $lang['author'] . ': '.$rowAuthor['email']. ')' . ' ' . "\n\r";
if ($what == 'finish_author') {
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
}
echo '' . "\n\r";
}
// polovimo avtorja pri ostalih obvestilih
else{
$sqlAuthor = $this->db_select_user($row['insert_uid']);
$rowAuthor = mysqli_fetch_array($sqlAuthor);
$sql1 = sisplet_query("SELECT *, uid AS id FROM srv_dostop WHERE ank_id='$this->anketa' AND uid='".$row['insert_uid']."'");
$row1 = mysqli_fetch_array($sql1);
echo '
' . "\n\r";
echo '' . $rowAuthor['name'] . ' (' . $lang['author'] . ': '.$rowAuthor['email']. ')' . ' ' . "\n\r";
if ($what == 'finish_author') {
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
}
echo '' . "\n\r";
}
// polovimo ostale userje ki imajo dostop
$sql1 = sisplet_query("SELECT u.id, u.name, u.surname, u.email, dostop.".$db_field.", dostop.alert_complete_if FROM users as u "
." RIGHT JOIN (SELECT sd.uid, sd.".$db_field.", sd.alert_complete_if FROM srv_dostop as sd WHERE sd.ank_id='".$this->anketa."') AS dostop ON u.id = dostop.uid WHERE u.id != '".$row['insert_uid']."'");
while ($row1 = mysqli_fetch_assoc($sql1)) {
if ($row1['id']) { // se zgodi da je prazno za metauserje
// avtor je vedno chekiran
$checked = ( $row1[$db_field] == '1') ? ' checked="checked"' : '';
echo '
' . "\n\r";
echo '' . $row1['name'] . ' ('.$row1['email'].') ' . "\n\r";
if ($what == 'finish_author') {
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
}
echo '' . "\n\r";
}
}
}
break;
}
}
/**
* TODO ???
*
* @param mixed $row
*/
function showUserCodeSettings($row = null) {
global $lang;
if ($row == null) {
$row = SurveyInfo::getInstance()->getSurveyRow();
}
$disabled = true;
$disabled2 = false;
if (SurveyInfo::getInstance()->checkSurveyModule('email') || SurveyInfo::getInstance()->checkSurveyModule('phone')){
$disabled = false;
}
if ($row['usercode_skip'] == 1) {
$disabled2 = true;
}
#echo '
';
echo '
' . $lang['usercode_skip'] . Help::display('usercode_skip') . ':';
echo '' . $lang['no1'] . ' ' . "\n\r";
echo '' . $lang['yes'] . ' ' . "\n\r";
echo '' . $lang['srv_setting_onlyAuthor'] . ' ' . "\n\r";
echo ' ';
echo '
';
echo '
';
#echo '
';
echo '
' . $lang['usercode_required'] . help::display('usercode_required') . ': ';
echo '' . $lang['no1'] . ' ' . "\n\r";
echo '' . $lang['yes'] . ' ' . "\n\r";
echo ' ';
echo '
';
echo '
';
$nagovorText = ($row['usercode_text'] && $row['usercode_text'] != null && $row['usercode_text'] != "") ? $row['usercode_text'] : $lang['srv_basecode'];
#echo ' ';
echo '' . $lang['usercode_text'] . ': ';
echo ' ' . $nagovorText . ' ' . "\n\r";
echo ' ';
echo '
';
}
/**
* TODO ???
*
* @param mixed $row
*/
function respondenti_iz_baze($row = null, $show_fieldset=true) {
global $lang;
global $admin_type;
if ($row == null) {
$row = SurveyInfo::getInstance()->getSurveyRow();
}
/* aktivnost vec ni pogoj za vklop email vabil:
* - omogočiti aktiviranje emial zavihka, četudi je anketa neaktivna (preprečiti pa pošijanje emailov če je ankete neaktivna)
*/
if ($admin_type <= 1) {
$_cssDisabled = '';
$_disabled = '';
} else {
$_cssDisabled = ' gray';
$_disabled = ' disabled="disabled"';
}
echo '
' . "\n\r";
echo '
' . "\n\r";
echo '
' . "\n\r";
if ($show_fieldset) {
echo '
';
echo '' . $lang['srv_user_base_vabila'] . ' ';
} else {
echo '3. ' . $lang['srv_user_base_vabila'] . '
';
}
if ($_cssDisabled == '' && $_disabled == '') {
echo '' . $lang['srv_user_base_email'] . ': ';
echo ' checkSurveyModule('email') ? ' checked="checked"' : '') . ' onChange="//handleUserCodeSetting();" '.$_disabled.'/>' . $lang['yes'] . ' ' . "\n\r";
echo ' checkSurveyModule('email') ? ' checked="checked"' : '') . ' onChange="//handleUserCodeSetting();" '.$_disabled.'/>' . $lang['no1'] . ' ' . "\n\r";
echo ' ';
}
// dodatne nastavitve za pošiljanje kode pri izpolnjevanju ankete
if ($_GET['a'] == 'vabila' || $_GET['a'] == 'email' ) {
echo '';
$this->showUserCodeSettings($row);
echo '
';
}
if ($admin_type > 1)
echo ''.$lang['srv_user_base_user_note'].'';
if ($show_fieldset) {
echo ' ';
}
}
/**
* TODO ???
*
*/
function anketa_aktivacija_note() {
global $lang;
$row = SurveyInfo::getInstance()->getSurveyRow();
if ($row['active'] == 0) {
echo $lang['srv_url_survey_not_active'];
echo '
' . "\n\r";
echo ' ';
echo ' ';
echo ' ' . $lang['srv_anketa_setActive'] . ' ';
echo ' ' . "\n\r";
echo ' ' . "\n\r";
} else {
echo $lang['srv_url_intro_active'];
echo '
' . "\n\r";
echo ' ';
echo ' ';
echo ' ' . $lang['srv_anketa_setNoActive'] . ' ';
echo ' ' . "\n\r";
echo ' ' . "\n\r";
}
}
function anketa_diagnostika_note($diagnostics,$show_link = false) {
global $lang;
$diagnostics->printNote($show_link);
}
/**
* @desc prikaze dropdown z nastavitvami ankete (globalne, za celo 1ko) -- Prva stran -> Nastavitve -> Sistemske nastavitve
*/
function anketa_nastavitve_system() {
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
/* ** Sistemske nastavitve: mora biti admin da ima dostop *** */
echo '
' . "\n\r";
if ($admin_type == 0) {
echo '
' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo '';
echo '' . $lang['settings'] . ' ';
$result = sisplet_query("SELECT value FROM misc WHERE what='SurveyDostop'");
list ($SurveyDostop) = mysqli_fetch_row($result);
$result = sisplet_query("SELECT value FROM misc WHERE what='SurveyCookie'");
list ($SurveyCookie) = mysqli_fetch_row($result);
$result = sisplet_query("SELECT value FROM misc WHERE what='SurveyExport'");
list ($SurveyExport) = mysqli_fetch_row($result);
$result = sisplet_query("SELECT value FROM misc WHERE what='SurveyForum'");
list ($SurveyForum) = mysqli_fetch_row($result);
echo '' . $lang['SurveyDostop'] . ': ';
?>
>=$lang['forum_admin']?>
>=$lang['forum_manager']?>
>=$lang['forum_clan']?>
>=$lang['forum_registered']?>
' . $lang['SurveyCookie'] . ': ';
?>
>=$lang['without']?>
>=$lang['srv_cookie_0']?>
>=$lang['srv_cookie_1']?>
>=$lang['srv_cookie_2']?>
' . $lang['SurveyExport'] . ': ';
?>
>=$lang['forum_admin']?>
>=$lang['forum_manager']?>
>=$lang['forum_clan']?>
>=$lang['forum_registered']?>
' . $lang['SurveyForum'] . ': ';
?>
echo ''.$lang['without'].' ';
$sqlf = sisplet_query("SELECT id, naslov FROM forum WHERE parent = '0'");
while ($rowf = mysqli_fetch_array($sqlf)) {
echo ''.$rowf['naslov'].' ';
}
?>
';
echo '' . $lang['srv_edithelp'] . ' ';
echo '' . $lang['srv_edithelp'] . ' '.Help::display('srv_window_help').': ';
Help :: edit_toggle();
echo '';
//echo '
' . "\n\r";
echo ' ';
$smv = new SurveyMissingValues();
$smv->SystemFilters();
// save gumb
echo '
';
echo '
';
// div za prikaz uspešnosti shranjevanja
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
} else {
echo $lang['srv_settingsSystemNoRights'];
}
echo '
' . "\n\r";
}
/**
* nastavitve predvidenih casov za komponente ankete in vprasanj iz katerih se nato racuna celotna dolzina vprasanj in ankete
*
*/
function anketa_nastavitve_predvidenicasi () {
global $lang;
echo '
';
echo $lang['srv_predvidenicasi_help'];
echo '
';
echo ''.$lang['srv_stran'].' ';
echo ''.$lang['srv_timing_page'].': s
';
echo ' ';
echo ''.$lang['srv_vprasanja'].' ';
echo '';
echo ' ';
echo '';
echo ' ';
echo ' ';
echo '
';
}
/** prikaze div da so nastavitve shranjene in ga nato skrije
*
*/
function displaySuccessSave() {
global $lang;
echo $lang['srv_success_save'];
}
function tabTestiranje () {
global $lang;
// predvideni casi
if ($_GET['m'] == 'predvidenicas') {
$this->testiranje_predvidenicas();
}
// testni podatki
elseif ($_GET['m'] == 'testnipodatki') {
$this->testiranje_testnipodatki();
}
// cas
elseif ($_GET['m'] == M_TESTIRANJE_CAS) {
$this->testiranje_cas();;
}
// cas
elseif ($_GET['m'] == 'cas') {
$this->testiranje_cas();
}
}
/**
* izracuna predvidene case po straneh glede na število in dolžino vprašanj
*
*/
function testiranje_predvidenicas($samo_izracunaj_skupini_cas=0) {
global $lang;
$expected_time = array();
$expected_time_block = array();
$block_labels_by_number = array();
$expected_vprasanja = array();
$verjetnost = array();
$verjetnost_block = array();
//from php 7.2 this helps to round numbers calculated in bcmod() - without it, it always rounds down to int
bcscale(1);
$sql = sisplet_query("SELECT introduction FROM srv_anketa WHERE id = '$this->anketa'");
$row = mysqli_fetch_array($sql);
// nagovor racunamo kot da gre za labelo
$expected_vprasanja[0][0] = strlen(strip_tags($row['introduction'])) * GlobalMisc::getMisc('timing_vprasanje_5') / 100;
$expected_vprasanja[0][1] = 1;
$expected_vprasanja[0][2] = $lang['srv_vprasanje_tip_5'];
$expected_vprasanja[0][3] = $lang['srv_intro_label'];
$expected_time[0][0] = $expected_vprasanja[0][0] + GlobalMisc::getMisc('timing_stran');
$expected_time[0][1] = $expected_time[0][0];
$block_spr_data = $this->get_block_data_by_spr_id();
$sql = sisplet_query("SELECT id, naslov, vrstni_red FROM srv_grupa g WHERE g.ank_id='$this->anketa' ORDER BY g.vrstni_red ASC");
while ($row = mysqli_fetch_array($sql)) {
$expected_time[$row['vrstni_red']][0] = 0;
$expected_time[$row['vrstni_red']][1] = 0;
$sql1 = sisplet_query("SELECT id, naslov FROM srv_spremenljivka WHERE gru_id='$row[id]' AND visible = '1'");
while ($row1 = mysqli_fetch_array($sql1)) {
$expected_vprasanja[$row1['id']][0] = $this->vprasanje_predvideni_cas($row1['id']);
$expected_vprasanja[$row1['id']][1] = $this->vprasanje_verjetnost($row1['id']);
$expected_vprasanja[$row1['id']][2] = strip_tags($row1['naslov']);
$expected_vprasanja[$row1['id']][3] = strip_tags($row['naslov']);
$expected_vprasanja[$row1['id']][4] = strip_tags($block_spr_data[$row1['id']]['label']);
$expected_time[$row['vrstni_red']][0] += $expected_vprasanja[$row1['id']][0] * $expected_vprasanja[$row1['id']][1]; // dejanski
$expected_time[$row['vrstni_red']][1] += $expected_vprasanja[$row1['id']][0]; // bruto - z vsemi vprasanji
if ( $expected_vprasanja[$row1['id']][1] > $verjetnost[$row['vrstni_red']])
$verjetnost[$row['vrstni_red']] = $expected_vprasanja[$row1['id']][1];
}
$expected_time[$row['vrstni_red']][0] += GlobalMisc::getMisc('timing_stran') * $verjetnost[$row['vrstni_red']]; // pri dejanskem trajanju strani upostevamo verjetnost najverjetnejsega vprasanja na strani (stran se pojavi z najvisjo verjetnostjo vseh vprasanj na strani)
$expected_time[$row['vrstni_red']][1] += GlobalMisc::getMisc('timing_stran');
}
$sql = sisplet_query("SELECT * FROM srv_if as bl LEFT JOIN srv_branching as br ON br.parent = bl.id WHERE bl.enabled='0' AND bl.tip='1' AND br.ank_id = '$this->anketa' ORDER BY bl.number ASC, br.vrstni_red ASC");
$last_block_st = -1;
while ($row = mysqli_fetch_array($sql)) {
$new_block = $last_block_st != $row['number'];
if($new_block){
$last_block_st = $row['number'];
$label = $row['label'] ? $row['label']: $lang['srv_blok'].' '.$last_block_st;
$block_labels_by_number[$last_block_st] = $label;
$expected_time_block[$last_block_st-1][0] = 0;
$expected_time_block[$last_block_st-1][1] = 0;
}
if(!$row['element_if']){
$expected_time_block[$last_block_st-1][0] += $expected_vprasanja[$row['element_spr']][0] * $expected_vprasanja[$row['element_spr']][1]; // dejanski
$expected_time_block[$last_block_st-1][1] += $expected_vprasanja[$row['element_spr']][0]; // bruto - z vsemi vprasanji
if ( $expected_vprasanja[$row['element_spr']][1] > $verjetnost_block[$last_block_st-1])
$verjetnost_block[$last_block_st-1] = $expected_vprasanja[$row['element_spr']][1];
}
else{
$sql1 = sisplet_query("SELECT * FROM srv_branching WHERE parent='".$row['element_if']."' ORDER BY vrstni_red ASC");
while ($row1 = mysqli_fetch_array($sql1)) {
$expected_time_block[$last_block_st-1][0] += $expected_vprasanja[$row1['element_spr']][0] * $expected_vprasanja[$row1['element_spr']][1]; // dejanski
$expected_time_block[$last_block_st-1][1] += $expected_vprasanja[$row1['element_spr']][0]; // bruto - z vsemi vprasanji
$expected_vprasanja[$row1['element_spr']][4] = $label;
if ( $expected_vprasanja[$row1['element_spr']][1] > $verjetnost_block[$last_block_st-1])
$verjetnost_block[$last_block_st-1] = $expected_vprasanja[$row1['element_spr']][1];
}
}
if($new_block){
$expected_time_block[$last_block_st-1][0] += GlobalMisc::getMisc('timing_stran') * $verjetnost_block[$last_block_st-1]; // pri dejanskem trajanju strani upostevamo verjetnost najverjetnejsega vprasanja na strani (stran se pojavi z najvisjo verjetnostjo vseh vprasanj na strani)
$expected_time_block[$last_block_st-1][1] += GlobalMisc::getMisc('timing_stran');
}
}
// izpis za strani
$max = 0;
$total = 0;
foreach ($expected_time AS $key => $val) {
if ($val[1] > $max) $max = $val[1];
$total += $val[0];
}
if ($max == 0) return;
if ($samo_izracunaj_skupini_cas == 2) {
return $total;
}
$skupni_cas = (bcdiv($total, 60, 0)>0?bcdiv($total, 60, 0).'min ':'').''.round(bcmod($total, 60), 0).'s';
if ($samo_izracunaj_skupini_cas == 1)
return $skupni_cas;
echo '
';
echo '
'.$lang['srv_total_trajanje'].' ';
echo ''.$lang['srv_dejansko_trajanje'].': '.$skupni_cas.'
';
echo '';
echo '
';
echo '
'.$lang['srv_casi_po_straneh'].' ';
echo '';
foreach ($expected_time AS $vrstni_red => $time) {
$sql = sisplet_query("SELECT naslov FROM srv_grupa WHERE vrstni_red='$vrstni_red' AND ank_id = '$this->anketa'");
$row = mysqli_fetch_array($sql);
echo '';
echo ''.($row['naslov']!=''?$row['naslov']:$lang['srv_intro_label']).' ';
echo '';
echo '
';
if ((($time[1]-$time[0])/$max*85) > 0)
echo '
';
echo ' '.($time[0]<60?round($time[0],1).'s ':round($time[0]/60,1).'min ').'/ '.($time[1]<60?round($time[1],1).'s ':round($time[1]/60,1).'min ').' ';
echo ' ';
echo ' ';
}
echo ' ';
echo ''.$lang['srv_anl_suma1'].': '.(bcdiv($total, 60, 0)>0?bcdiv($total, 60, 0).'min ':'').''.round(bcmod($total, 60), 0).'s ';
echo '
';
echo '
- '.$lang['srv_neto_t_cas'].' ';
echo '
- '.$lang['srv_bruto_t_cas'].' ';
echo '';
// izpis za vprasanja
$max = 0;
$bruto_total = 0;
$neto_total = 0;
foreach ($expected_vprasanja AS $vpr) {
if ($vpr[0] > $max) $max = $vpr[0];
$bruto_total += $vpr[0];
$neto_total += $vpr[0] * $vpr[1];
}
$prevstran = false;
echo '
';
echo '
'.$lang['srv_casi_po_vprasanjih_strani'].' ';
echo '';
echo ''.$lang['srv_bruto_v_cas'].' '.$lang['srv_verjetnost_pojavitve'].' '.$lang['srv_neto_v_cas'].' ';
foreach ($expected_vprasanja AS $vprasanje) {
if (!$prevstran || $prevstran != $vprasanje[3]) {
echo ''.$vprasanje[3].' ';
$prevstran = $vprasanje[3];
}
$bruto = $vprasanje[0];
$verjetnost = $vprasanje[1];
$neto = $bruto * $verjetnost;
echo ''.skrajsaj($vprasanje[2], 30).' '.round($bruto, 1).'s '.round($verjetnost*100, 2).'% '.round($neto, 1).'s ';
echo '';
echo '
';
if (($bruto-$neto)/$max*85 > 0)
echo '
';
echo ' '.round($neto, 1).'s / '.round($bruto, 1).'s ';
echo ' ';
echo ' ';
}
echo ''.(bcdiv($bruto_total, 60, 0)>0?bcdiv($bruto_total, 60, 0).'min ':'').''.round(bcmod($bruto_total, 60), 0).'s '.(bcdiv($neto_total, 60, 0)>0?bcdiv($neto_total, 60, 0).'min ':'').''.round(bcmod($neto_total, 60), 0).'s ';
echo '
';
echo '';
//CASI PO BLOKIH
if($block_spr_data){
// izpis za bloke
$maxb = 0;
$totalb = 0;
foreach ($expected_time_block AS $key => $val) {
if ($val[1] > $maxb) $maxb = $val[1];
$totalb += $val[0];
}
echo '
';
echo '
'.$lang['srv_casi_po_blokih'].' ';
echo '';
foreach ($expected_time_block AS $vrstni_red => $time) {
echo '';
echo ''.$block_labels_by_number[$vrstni_red+1].' ';
echo '';
echo '
';
if ((($time[1]-$time[0])/$maxb*85) > 0)
echo '
';
echo ' '.($time[0]<60?round($time[0],1).'s ':round($time[0]/60,1).'min ').'/ '.($time[1]<60?round($time[1],1).'s ':round($time[1]/60,1).'min ').' ';
echo ' ';
echo ' ';
}
echo ' ';
echo ''.$lang['srv_anl_suma1'].': '.(bcdiv($totalb, 60, 0)>0?bcdiv($totalb, 60, 0).'min ':'').''.round(bcmod($totalb, 60), 0).'s ';
echo '
';
echo '
- '.$lang['srv_neto_t_cas'].' ';
echo '
- '.$lang['srv_bruto_t_cas'].' ';
echo '';
// izpis za vprasanja po blokih
$max = 0;
$bruto_total = 0;
$neto_total = 0;
foreach ($expected_vprasanja AS $vpr) {
if($vpr[4]){
if ($vpr[0] > $max) $max = $vpr[0];
$bruto_total += $vpr[0];
$neto_total += $vpr[0] * $vpr[1];
}
}
$prevstran = false;
echo '
';
echo '
'.$lang['srv_casi_po_vprasanjih_bloki'].' ';
echo '';
echo ''.$lang['srv_bruto_v_cas'].' '.$lang['srv_verjetnost_pojavitve'].' '.$lang['srv_neto_v_cas'].' ';
foreach ($expected_vprasanja AS $vprasanje) {
if($vprasanje[4]){
if (!$prevstran || $prevstran != $vprasanje[4]) {
echo ''.$vprasanje[4].' ';
$prevstran = $vprasanje[4];
}
$bruto = $vprasanje[0];
$verjetnost = $vprasanje[1];
$neto = $bruto * $verjetnost;
echo ''.skrajsaj($vprasanje[2], 30).' '.round($bruto, 1).'s '.round($verjetnost*100, 2).'% '.round($neto, 1).'s ';
echo '';
echo '
';
if (($bruto-$neto)/$max*85 > 0)
echo '
';
echo ' '.round($neto, 1).'s / '.round($bruto, 1).'s ';
echo ' ';
echo ' ';
}
}
echo ''.(bcdiv($bruto_total, 60, 0)>0?bcdiv($bruto_total, 60, 0).'min ':'').''.round(bcmod($bruto_total, 60), 0).'s '.(bcdiv($neto_total, 60, 0)>0?bcdiv($neto_total, 60, 0).'min ':'').''.round(bcmod($neto_total, 60), 0).'s ';
echo '
';
echo '';
}
}
/**
* Dobi podatke o bloku za vsako spremenljivko, ali false, ce ni blokov
*/
function get_block_data_by_spr_id(){
global $lang;
$data = array();
$block_query = sisplet_query("SELECT * FROM srv_if as bl LEFT JOIN srv_branching as br ON br.parent = bl.id WHERE bl.enabled='0' AND bl.tip='1' AND br.ank_id = '$this->anketa' ORDER BY br.vrstni_red ASC", 'array');
if($block_query){
foreach ($block_query as $row) {
$label = $row['label'] ? $row['label']: $lang['srv_blok'].' '.$row['number'];
$data[$row['element_spr']] = array('label' => $label);
}
return $data;
}
return false;
}
/**
* oceni predvideni cas za vprasanje
*
* @param mixed $spremenljivka
*/
function vprasanje_predvideni_cas ($spremenljivka) {
$sql1 = sisplet_query("SELECT id, naslov, tip FROM srv_spremenljivka WHERE id = '$spremenljivka'");
$row1 = mysqli_fetch_array($sql1);
$expected_time = strlen(strip_tags($row1['naslov'])) * GlobalMisc::getMisc('timing_vprasanje_'.$row1['tip']) / 100;
// vprasanja, ki imajo tudi kategorije/vrednosti
if ($row1['tip'] <= 3 || $row1['tip'] == 6 || $row1['tip'] == 16 || $row1['tip'] == 17 || $row1['tip'] == 18 || $row1['tip'] == 19 || $row1['tip'] == 20) {
$sql2 = sisplet_query("SELECT naslov FROM srv_vrednost WHERE spr_id='$row1[id]'");
//for those types we have max time option
if($row1['tip'] == 3){
while ($row2 = mysqli_fetch_array($sql2)) {
$expected_time_temp += strlen(strip_tags($row2['naslov'])) * GlobalMisc::getMisc('timing_kategorija_'.$row1['tip']) / 100;
}
//if time is greater than max time, use max time
$max_time = GlobalMisc::getMisc('timing_kategorija_max_'.$row1['tip']);
$expected_time += ($max_time > $expected_time_temp) ? $expected_time_temp : $max_time;
}
//types that doesnt have max time option
else{
while ($row2 = mysqli_fetch_array($sql2)) {
$expected_time += strlen(strip_tags($row2['naslov'])) * GlobalMisc::getMisc('timing_kategorija_'.$row1['tip']) / 100;
}
}
}
return $expected_time;
}
/**
* oceni verjetnost prikaza vprasanja glede na pogoje, ki so mu nastavljeni
*
* @param mixed $spremenljivka
*/
function vprasanje_verjetnost ($spremenljivka) {
$sql = sisplet_query("SELECT parent FROM srv_branching WHERE element_spr = '$spremenljivka'");
$row = mysqli_fetch_array($sql);
if ($row['parent'] == 0) return 1; // vprasanje se vedno prikaze
//echo $this->if_verjetnost($row['parent']).'
';
return $this->if_verjetnost($row['parent']);
}
/**
* oceni verjetnost da bo pogoj (if) izpolnjen
*
* @param mixed $if
*/
function if_verjetnost ($if) {
$sql = sisplet_query("SELECT parent FROM srv_branching WHERE element_if = '$if'");
if (mysqli_num_rows($sql) == 0) return 0;
$row = mysqli_fetch_array($sql);
// izracunamo se verjetnost parentov
if ($row['parent'] > 0){
// dodaten pogoj da nismo v deadlocku (zaradi bugov se znata v branchingu pojavit ifa, ki imata drug drugega za parenta)
$sqlX = sisplet_query("SELECT parent, element_if FROM srv_branching WHERE parent='".$if."' AND element_if='".$row['parent']."'");
if(mysqli_num_rows($sqlX) > 0){
return 0;
}
$parent = $this->if_verjetnost($row['parent']);
}
else
$parent = 1;
$sql = sisplet_query("SELECT tip FROM srv_if WHERE id = '$if'");
$row = mysqli_fetch_array($sql);
if ($row['tip'] == 1) return 1 * $parent; // blok je vedno 'izpolnjen'
$eval = ' $total = ';
$i = 0;
// racunanje verjetnosti za podani if
$sql = sisplet_query("SELECT * FROM srv_condition WHERE if_id = '$if' ORDER BY vrstni_red ASC");
while ($row = mysqli_fetch_array($sql)) {
$value = '';
if(($value = $this->condition_verjetnost($row['id'])) !== false){
if ($i++ != 0){
if ($row['conjunction'] == 0)
$eval .= ' * ';
else
$eval .= ' + ';
}
for ($i=1; $i<=$row['left_bracket']; $i++)
$eval .= ' ( ';
$eval .= $value;
for ($i=1; $i<=$row['right_bracket']; $i++)
$eval .= ' ) ';
}
}
$eval .= ';';
if($eval != ' $total = ;')
@eval($eval); //echo '--'.$eval.'--';
else
$total = 1;
if ($total > 1) return 1 * $parent; else return $total * $parent;
}
/**
* vrne verjetnost, da je izpolnjen condition (ena vrstica v IFu)
*
* @param mixed $condition
*/
function condition_verjetnost ($condition) {
$sql = sisplet_query("SELECT * FROM srv_condition WHERE id = '$condition'");
if (mysqli_num_rows($sql) == 0) return 0;
$row = mysqli_fetch_array($sql);
// obicne spremenljivke
if ($row['spr_id'] > 0) {
$row2 = Cache::srv_spremenljivka($row['spr_id']);
// radio, checkbox, dropdown in multigrid
if ($row2['tip'] <= 3 || $row2['tip'] == 6) {
// obicne spremenljivke
if ($row['vre_id'] == 0) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='$row[spr_id]'");
$vse_vrednosti = mysqli_num_rows($sql1);
$sql1 = sisplet_query("SELECT * FROM srv_condition_vre WHERE cond_id = '$condition'");
$izbrane_vrednosti = mysqli_num_rows($sql1);
if ($vse_vrednosti > 0)
$p = $izbrane_vrednosti / $vse_vrednosti;
else
$p = 0;
if ($row['operator'] == 0)
return $p;
else
return 1 - $p;
// multigrid
} elseif ($row['vre_id'] > 0) {
$sql1 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id='$row[spr_id]'");
$vse_vrednosti = mysqli_num_rows($sql1);
$sql1 = sisplet_query("SELECT * FROM srv_condition_grid WHERE cond_id = '$condition'");
$izbrane_vrednosti = mysqli_num_rows($sql1);
if ($vse_vrednosti > 0)
$p = $izbrane_vrednosti / $vse_vrednosti;
else
$p = 0;
if ($row['operator'] == 0)
return $p;
else
return 1 - $p;
}
// number in text
} else {
return 0.5;
}
// recnum
} elseif ($row['spr_id'] == -1) {
return 1 / $row['modul'];
// calculations
} elseif ($row['spr_id'] == -2) {
return 0.5;
// quotas
} elseif ($row['spr_id'] == -3) {
return 1;
}
return false;
}
/**
* prikazuje povprecne case po straneh ipd....
*
*/
function testiranje_cas($samo_izracunaj_skupini_cas=0) {
global $lang;
global $global_user_id;
global $admin_type;
SurveyUserSetting :: getInstance()->Init($this->anketa, $global_user_id);
// nastavitve iz popupa
$rezanje = SurveyUserSetting::getInstance()->getSettings('rezanje'); if ($rezanje == '') $rezanje = 1;
$rezanje_meja_sp = SurveyUserSetting::getInstance()->getSettings('rezanje_meja_sp'); if ($rezanje_meja_sp == '') $rezanje_meja_sp = 5;
$rezanje_meja_zg = SurveyUserSetting::getInstance()->getSettings('rezanje_meja_zg'); if ($rezanje_meja_zg == '') $rezanje_meja_zg = 5;
$rezanje_predvidena_sp = SurveyUserSetting::getInstance()->getSettings('rezanje_predvidena_sp'); if ($rezanje_predvidena_sp == '') $rezanje_predvidena_sp = 10;
$rezanje_predvidena_zg = SurveyUserSetting::getInstance()->getSettings('rezanje_predvidena_zg'); if ($rezanje_predvidena_zg == '') $rezanje_predvidena_zg = 200;
$rezanje_preskocene = SurveyUserSetting::getInstance()->getSettings('rezanje_preskocene'); if ($rezanje_preskocene == '') $rezanje_preskocene = 1;
/* ++ Predvideni casi */
if ($_GET['predvideni'] == 1 || $rezanje == 1) {
$expected_time = array();
$expected_vprasanja = array();
$verjetnost = array();
$sql = sisplet_query("SELECT introduction FROM srv_anketa WHERE id = '$this->anketa'");
$row = mysqli_fetch_array($sql);
// nagovor racunamo kot da gre za labelo
$expected_vprasanja[0][0] = strlen(strip_tags($row['introduction'])) * GlobalMisc::getMisc('timing_vprasanje_5') / 100;
$expected_vprasanja[0][1] = 1;
$expected_vprasanja[0][2] = $lang['srv_vprasanje_tip_5'];
$expected_vprasanja[0][3] = $lang['srv_intro_label'];
$expected_time[0][0] = $expected_vprasanja[0][0] + GlobalMisc::getMisc('timing_stran');
$expected_time[0][1] = $expected_time[0][0];
$sql = sisplet_query("SELECT id, naslov, vrstni_red FROM srv_grupa g WHERE g.ank_id='$this->anketa' ORDER BY g.vrstni_red ASC");
while ($row = mysqli_fetch_array($sql)) {
$expected_time[$row['vrstni_red']][0] = 0;
$expected_time[$row['vrstni_red']][1] = 0;
$sql1 = sisplet_query("SELECT id, naslov FROM srv_spremenljivka WHERE gru_id='$row[id]' AND visible='1'");
while ($row1 = mysqli_fetch_array($sql1)) {
$expected_vprasanja[$row1['id']][0] = $this->vprasanje_predvideni_cas($row1['id']);
$expected_vprasanja[$row1['id']][1] = $this->vprasanje_verjetnost($row1['id']);
$expected_vprasanja[$row1['id']][2] = strip_tags($row1['naslov']);
$expected_vprasanja[$row1['id']][3] = strip_tags($row['naslov']);
$expected_time[$row['vrstni_red']][0] += $expected_vprasanja[$row1['id']][0] * $expected_vprasanja[$row1['id']][1]; // dejanski
$expected_time[$row['vrstni_red']][1] += $expected_vprasanja[$row1['id']][0]; // bruto - z vsemi vprasanji
if ( $expected_vprasanja[$row1['id']][1] > $verjetnost[$row['vrstni_red']])
$verjetnost[$row['vrstni_red']] = $expected_vprasanja[$row1['id']][1];
}
$expected_time[$row['vrstni_red']][0] += GlobalMisc::getMisc('timing_stran') * $verjetnost[$row['vrstni_red']]; // pri dejanskem trajanju strani upostevamo verjetnost najverjetnejsega vprasanja na strani (stran se pojavi z najvisjo verjetnostjo vseh vprasanj na strani)
$expected_time[$row['vrstni_red']][1] += GlobalMisc::getMisc('timing_stran');
}
}
/* -- Predvideni casi */
// statusi
SurveyStatusCasi :: Init($this->anketa);
$izbranStatusCasi = SurveyStatusCasi :: getCurentProfileId();
$statusArray = SurveyStatusCasi::getStatusArray($izbranStatusCasi);
$status = '';
foreach ($statusArray AS $key => $val) {
if ($key == 'statusnull' && $val == 1) $status .= ($status!=''?',':'') . '-1';
if ($key == 'status0' && $val == 1) $status .= ($status!=''?',':'') . '0';
if ($key == 'status1' && $val == 1) $status .= ($status!=''?',':'') . '1';
if ($key == 'status2' && $val == 1) $status .= ($status!=''?',':'') . '2';
if ($key == 'status3' && $val == 1) $status .= ($status!=''?',':'') . '3';
if ($key == 'status4' && $val == 1) $status .= ($status!=''?',':'') . '4';
if ($key == 'status5' && $val == 1) $status .= ($status!=''?',':'') . '5';
if ($key == 'status6' && $val == 1) $status .= ($status!=''?',':'') . '6';
if ($key == 'statuslurker' && $val == 1) $lurker = ""; else $lurker = " AND lurker='0' ";
}
// preberemo vse timestampe za strani v anketi
$sql = sisplet_query("SELECT ug.usr_id, UNIX_TIMESTAMP(ug.time_edit) AS time_edit_u, g.vrstni_red FROM srv_user_grupa".$this->db_table." ug, srv_grupa g, srv_user u WHERE ug.usr_id=u.id AND u.last_status IN ($status) $lurker AND ug.gru_id=g.id AND g.ank_id='$this->anketa' ORDER BY usr_id, gru_id");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sql) == 0) {
if ($samo_izracunaj_skupini_cas == 1) {
return null;
} else {
echo '
'.$lang['srv_analiza_no_entry'].'
';
}
}
$user_grupa = array();
while ($row = mysqli_fetch_array($sql)) {
$user_grupa[$row['usr_id']][$row['vrstni_red']] = $row['time_edit_u'];
}
if (mysqli_num_rows($sql) == 0) {
die();
}
// cache mysql-a
$usrs_id = array();
foreach ($user_grupa AS $usr_id => $val) {
$usrs_id[] = $usr_id;
}
$cache_row = array();
$sql_c = sisplet_query("SELECT id, recnum, time_insert, UNIX_TIMESTAMP(time_insert) AS time_insert_u FROM srv_user WHERE id IN (".implode(',', $usrs_id).")");
if (!$sql_c) echo mysqli_error($GLOBALS['connect_db']);
while ($row_c = mysqli_fetch_array($sql_c)) {
$cache_row[ $row_c['id'] ] = $row_c;
}
$cache_row1 = array();
$sql1_c = sisplet_query("SELECT usr_id, time_edit, UNIX_TIMESTAMP(time_edit) AS time_edit_u FROM srv_user_grupa".$this->db_table." WHERE usr_id IN (".implode(',', $usrs_id).") AND gru_id = '0'");
if (!$sql1_c) echo mysqli_error($GLOBALS['connect_db']);
while ($row1_c = mysqli_fetch_array($sql1_c)) {
$cache_row1[ $row1_c['usr_id'] ] = $row1_c;
}
// izracunamo razlike v casih, da dobimo za vsakega userja koliko casa je bil na posamezni strani
$casi = array();
foreach ($user_grupa AS $usr_id => $val) {
//$sql = sisplet_query("SELECT recnum, time_insert, UNIX_TIMESTAMP(time_insert) AS time_insert_u FROM srv_user WHERE id = '$usr_id'");
//$row = mysqli_fetch_array($sql);
$row = $cache_row[$usr_id];
//$sql1 = sisplet_query("SELECT time_edit, UNIX_TIMESTAMP(time_edit) AS time_edit_u FROM srv_user_grupa".$this->db_table." WHERE usr_id = '$usr_id' AND gru_id = '0'");
//$row1 = mysqli_fetch_array($sql1);
$row1 = $cache_row1[$usr_id];
//echo $row1['time_edit'].' ('.($row1['time_edit_u'] - strtotime($row1['time_edit'])).') - '.$row['time_insert'].' ('.($row['time_insert_u'] - strtotime($row['time_insert'])).')
';
$prev = ($row1['time_edit'] != '' ? $row1['time_edit_u'] : $row['time_insert_u']);
// nagovor
//if ($row1['time_edit'] != '') $casi[0][$usr_id] = $this->diff($row1['time_edit'], $row['time_insert']);
if ($row1['time_edit'] != '') $casi[0][$usr_id] = abs($row1['time_edit_u'] - $row['time_insert_u']);
if ($row['recnum'] > 0) { // zapisi brez recnuma ne pridejo v poštev, ker nimajo pravih časov
foreach ($val AS $vrstni_red => $time_edit) {
//$casi[$vrstni_red][$usr_id] = $this->diff($time_edit, $prev);
$casi[$vrstni_red][$usr_id] = abs($time_edit - $prev);
$prev = $time_edit;
}
}
}
// porezemo zgornjih in spodnjih 5% casov vsake strani
//if (isset($_GET['truncate'])) $truncate = ((int)$_GET['truncate'])/100; else $truncate = 0.05;
$spodnja = $rezanje_meja_sp / 100;
$zgornja = $rezanje_meja_zg / 100;
// REZANJE
foreach ($casi AS $vrstni_red => $val1) {
asort($casi[$vrstni_red]);
$len = count($casi[$vrstni_red]);
$odrezi_sp = (int) round ( $len * $spodnja , 0);
$odrezi_zg = (int) round ( $len * $zgornja , 0);
$i = 1;
foreach ($casi[$vrstni_red] AS $key => $val2) {
if ($rezanje == 0) { // rezanje po zgornji in spodnji meji
if ($i <= $odrezi_sp || $i > $len-$odrezi_zg) {
unset($casi[$vrstni_red][$key]);
}
} else { // rezanje glede na 10% in 200% predvidenih vrednosti
if ($val2 < $expected_time[$vrstni_red][0]*$rezanje_predvidena_sp/100 || $val2 > $expected_time[$vrstni_red][0]*$rezanje_predvidena_zg/100) {
unset($casi[$vrstni_red][$key]);
}
}
$i++;
}
}
//foreach ($casi AS $key => $val) { echo $key.': '; foreach ($val AS $k => $v) { echo $v.', '; } echo '
'; }
// izracunamo povprecne case
$sql = sisplet_query("SELECT MAX(vrstni_red) AS max FROM srv_grupa WHERE ank_id = '$this->anketa'");
$row = mysqli_fetch_array($sql);
$count = array();
$count_bruto = array();
$povprecni_casi = array();
$povprecni_casi_bruto = array();
$max_time = 0;
for ($i=0; $i<=$row['max']; $i++) $povprecni_casi[$i] = 0;
foreach ($casi AS $vrstni_red => $val) {
// pogledamo za preskocene strani
$preskocene = array();
if ($rezanje_preskocene == 0) {
$sqlp = sisplet_query("SELECT ug.usr_id FROM srv_user_grupa".$this->db_table." ug, srv_grupa g WHERE g.id=ug.gru_id AND g.vrstni_red='$vrstni_red' AND ug.preskocena='1'");
while ($rowp = mysqli_fetch_array($sqlp)) {
array_push($preskocene, $rowp['usr_id']);
}
}
foreach ($casi[$vrstni_red] AS $usr_id => $time) {
if (!in_array($usr_id, $preskocene)) {
$povprecni_casi_bruto[$vrstni_red] += $time; // bruto so kao brez upoštevanja strani ki so se preskocile (0s, 1s)
$count_bruto[$vrstni_red] ++; // to je dejansko trajanje strani, ce uporabnik pride nanjo
}
if (!in_array($usr_id, $preskocene) || $rezanje_preskocene==1) {
$povprecni_casi[$vrstni_red] += $time; // neto je kao povprecno trajanje strani in uposteva tudi 0s, 1s ce se je preskocilo
$count[$vrstni_red] ++; // ta cas pride potem dejansko krajsi od bruto casa
}
if ($time > $max_time) $max_time = $time;
}
}
foreach ($povprecni_casi AS $vrstni_red => $time) {
if ($count[$vrstni_red] > 0)
$povprecni_casi[$vrstni_red] = $time / $count[$vrstni_red];
}
foreach ($povprecni_casi_bruto AS $vrstni_red => $time) {
if ($count_bruto[$vrstni_red] > 0)
$povprecni_casi_bruto[$vrstni_red] = $time / $count_bruto[$vrstni_red];
}
$max = 0;
$total = 0;
$total_predvideni = 0;
foreach ($povprecni_casi AS $key => $val) {
if ($val > $max) $max = $val;
$total += $val;
}
/*foreach ($povprecni_casi AS $key => $val) {
if ($val > $max) $max = $val;
//$total += $val;
}*/
if ($_GET['predvideni'] == 1) {
if ($rezanje_preskocene == 1) {
foreach ($expected_time AS $key => $val) {
if ($val[0] > $max) $max = $val[0];
$total_predvideni += $val[0];
}
} else {
foreach ($expected_time AS $key => $val) {
if ($val[1] > $max) $max = $val[1];
$total_predvideni += $val[1];
}
}
}
if ($max == 0) return;
if ($samo_izracunaj_skupini_cas == 1)
return (bcdiv($total, 60, 0)>0?bcdiv($total, 60, 0).'min ':'').''.round(bcmod($total, 60), 0).'s';
// izpis
echo '
';
echo '
'.$lang['srv_dejanski_casi'].' ';
echo '';
echo '';
echo ''.$lang['srv_vkljuci_predvidene'].' ';
echo ' '.$lang['srv_stevilo_enot'].' ';
foreach ($povprecni_casi AS $vrstni_red => $time) {
$sql = sisplet_query("SELECT naslov FROM srv_grupa WHERE vrstni_red='$vrstni_red' AND ank_id = '$this->anketa'");
$row = mysqli_fetch_array($sql);
$bruto = $povprecni_casi_bruto[$vrstni_red];
echo '';
echo ''.($row['naslov']!=''?$row['naslov']:$lang['srv_intro_label']).' ';
echo '';
echo '
';
//if ($bruto-$time > 0)
//echo '
';
echo ' '.($time<60?round($time,1).'s ':round($time/60,1).'min ')./*'/ '.($bruto<60?round($bruto,1).'s ':round($bruto/60,1).'min ').' '.*/' ';
echo ' ';
echo ''.$count[$vrstni_red]./*' / '.$count_bruto[$vrstni_red].' '.*/' ';
echo ' ';
if ($_GET['predvideni'] == 1) {
if ($rezanje_preskocene == 1)
$time = $expected_time[$vrstni_red][0];
else
$time = $expected_time[$vrstni_red][1];
echo '';
echo ''.($row['naslov']!=''?$row['naslov']:$lang['srv_intro_label']).' ';
echo '';
echo '
';
//if ((($time[1]-$time[0])/$max*85) > 0)
// echo '
';
echo ' '.($time<60?round($time,1).'s ':round($time/60,1).'min ')./*'/ '.($time[1]<60?round($time[1],1).'s ':round($time[1]/60,1).'min ').' '.*/' ';
echo ' ';
echo ' ';
echo ' ';
}
}
if ($_GET['predvideni'] != 1)
echo ' ';
echo ''.$lang['srv_anl_suma1'].': '.(bcdiv($total, 60, 0)>0?bcdiv($total, 60, 0).'min ':'').''.round(bcmod($total, 60), 0).'s';
if ($_GET['predvideni'] == 1) echo ' / '.$lang['srv_skupaj_predvideni'].': '.(bcdiv($total_predvideni, 60, 0)>0?bcdiv($total_predvideni, 60, 0).'min ':'').''.round(bcmod($total_predvideni, 60), 0).'s';
echo ' ';
echo '
';
if ($_GET['predvideni'] == 1) {
echo '
- '.$lang['srv_neto_t_cas'].' ';
echo '
- '.$lang['srv_testiranje_predvidenicas'].' ';
}
echo '';
if ($max_time > 1000 && $admin_type > 0) return; // pridejo prevelike tabele
if ($_GET['prikazi01'] == 1)
$t_min = 0;
else
$t_min = 2;
// izpis histograma casov za vsako stran
echo '
'.$lang['srv_frekvencna_porazdelitev'].' ';
echo '';
echo ' '.$lang['srv_show_pages'].' ';
echo '
';
if ($rezanje_preskocene == 1) {
echo '';
echo ' '.$lang['srv_prikazi01'].' ';
echo '
';
}
// zdruzimo vse case po straneh na en graf
if ($_GET['pages'] != '1') {
$casi2 = array();
$casi2[0] = array();
foreach ($casi AS $key => $val) {
foreach ($val AS $k => $v) {
if (isset($casi2[0][$k]))
$casi2[0][$k] += $v;
else
$casi2[0][$k] = $v;
//array_push($casi2[0], $v);
}
}
$casi = $casi2;
$max_time = 0;
foreach ($casi[0] AS $k => $v)
if ($v > $max_time) $max_time = $v;
}
$minute = true;
if ($minute) { // minute
foreach ($casi AS $k => $page) {
foreach ($page AS $key => $val) {
$casi[$k][$key] = (int) round($val / 60, 0);
}
}
$max_time = (int) round($max_time / 60, 0);
}
foreach ($casi AS $key => $val) {
if ($_GET['pages'] == '1') {
$sql = sisplet_query("SELECT naslov FROM srv_grupa WHERE vrstni_red='$key' AND ank_id='$this->anketa'");
$row = mysqli_fetch_array($sql);
echo ''.($row['naslov']!=''?$row['naslov']:$lang['srv_intro_label']).' ';
}
echo '';
$histogram = array();
for ($t=0; $t<=$max_time; $t++) $histogram[$t] = 0;
foreach ($val AS $k => $v) {
if ($v >= $t_min) $histogram[$v]++;
}
$max_stran = 0;
$max_stran_time = 0;
foreach ($histogram AS $k => $v) {
if ($v > $max_stran) $max_stran = $v;
if ($v > 0) $max_stran_time = $k;
}
if ($max_stran != 0) {
for ($t=$t_min; $t<=$max_time; $t++) {
echo '';
echo '
';
//echo ''.$t.' ';
echo ' ';
}
}
echo ' ';
if ($max_time <= 20) {
for ($t=$t_min; $t<=$max_time; $t++) {
echo ''.$t.($minute?'min':'s').' ';
}
} else {
if ($t_min == 0)
echo '0'.($minute?'min':'s').' ';
else
echo '2'.($minute?'min':'s').' ';
for ($t=10; $t<=$max_time; $t+=10) {
echo ''.$t.' ';
}
}
echo '
';
}
echo '';
}
/**
* opcije za rezanje
*/
function show_rezanje_casi () {
global $lang;
global $global_user_id;
SurveyUserSetting :: getInstance()->Init($this->anketa, $global_user_id);
$rezanje = SurveyUserSetting::getInstance()->getSettings('rezanje'); if ($rezanje == '') $rezanje = 0;
$rezanje_meja_sp = SurveyUserSetting::getInstance()->getSettings('rezanje_meja_sp'); if ($rezanje_meja_sp == '') $rezanje_meja_sp = 5;
$rezanje_meja_zg = SurveyUserSetting::getInstance()->getSettings('rezanje_meja_zg'); if ($rezanje_meja_zg == '') $rezanje_meja_zg = 5;
$rezanje_predvidena_sp = SurveyUserSetting::getInstance()->getSettings('rezanje_predvidena_sp'); if ($rezanje_predvidena_sp == '') $rezanje_predvidena_sp = 10;
$rezanje_predvidena_zg = SurveyUserSetting::getInstance()->getSettings('rezanje_predvidena_zg'); if ($rezanje_predvidena_zg == '') $rezanje_predvidena_zg = 200;
$rezanje_preskocene = SurveyUserSetting::getInstance()->getSettings('rezanje_preskocene'); if ($rezanje_preskocene == '') $rezanje_preskocene = 1;
echo '
'.$lang['srv_rezanje_0'].'
';
echo '
'.$lang['srv_rezanje_meja_sp'].': ';
echo '0% ';
echo '1% ';
echo '3% ';
echo '5% ';
echo '10% ';
echo '20% ';
echo '
';
echo '
'.$lang['srv_rezanje_meja_zg'].': ';
echo '0% ';
echo '1% ';
echo '3% ';
echo '5% ';
echo '10% ';
echo '20% ';
echo '
';
echo '
'.$lang['srv_rezanje_1'].'
';
echo '
'.$lang['srv_rezanje_meja_sp'].': ';
echo '0% ';
echo '1% ';
echo '3% ';
echo '5% ';
echo '10% ';
echo '20% ';
echo ' '.$lang['srv_rezanje_predvidenega'].'
';
echo '
'.$lang['srv_rezanje_meja_zg'].': ';
echo '100% ';
echo '150% ';
echo '200% ';
echo '300% ';
echo '500% ';
echo '1000% ';
echo ' '.$lang['srv_rezanje_predvidenega'].'
';
echo '
';
echo '
'.$lang['srv_rezanje_preskocene'].'
';
echo '
'.$lang['srv_rezanje_preskocene_txt'].'
';
echo '
'.$lang['srv_save_run_profile'].' ';
echo '
'.$lang['srv_close_profile'].' ';
}
/**
* shrani nastavitve
*
*/
function save_rezanje_casi () {
global $global_user_id;
SurveyUserSetting::getInstance()->Init($this->anketa, $global_user_id);
SurveyUserSetting::getInstance()->saveSettings('rezanje', $_POST['rezanje']);
SurveyUserSetting::getInstance()->saveSettings('rezanje_meja_sp', $_POST['rezanje_meja_sp']);
SurveyUserSetting::getInstance()->saveSettings('rezanje_meja_zg', $_POST['rezanje_meja_zg']);
SurveyUserSetting::getInstance()->saveSettings('rezanje_predvidena_sp', $_POST['rezanje_predvidena_sp']);
SurveyUserSetting::getInstance()->saveSettings('rezanje_predvidena_zg', $_POST['rezanje_predvidena_zg']);
SurveyUserSetting::getInstance()->saveSettings('rezanje_preskocene', $_POST['rezanje_preskocene']);
}
function testiranje_komentarji_links($comment_count){
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
if($_GET['a'] == 'komentarji_anketa'){
// Gumb nazaj
echo '
';
echo '
(';
if($comment_count['question']['unresolved'] > 0)
echo '';
echo $comment_count['question']['unresolved'];
if($comment_count['question']['unresolved'] > 0)
echo ' ';
echo '/'.$comment_count['question']['all'];
echo ') ';
}
else{
echo '';
// Gumb splosni komentarji
echo '
';
echo '
(';
if($comment_count['survey_resp']['unresolved']+$comment_count['survey_admin']['unresolved'] > 0)
echo '';
echo ($comment_count['survey_resp']['unresolved']+$comment_count['survey_admin']['unresolved']);
if($comment_count['survey_resp']['unresolved']+$comment_count['survey_admin']['unresolved'] > 0)
echo ' ';
echo '/'.($comment_count['survey_resp']['all']+$comment_count['survey_admin']['all']);
echo ') ';
}
}
function string_format($cnt,$lang_root) {
global $lang;
$txt = '';
//if ($cnt > 0) $txt .= '
';
if (isset($lang[$lang_root.'_'.$cnt])) {
$txt .= $cnt.' '.$lang[$lang_root.'_'.$cnt];
} else {
$txt .= $cnt.' '.$lang[$lang_root.'_more'];
}
//if ($cnt > 0) $txt .= ' ';
return $txt;
}
/**
* izpise komentarje na anketo - stara ki se ne uporablja
*
*/
function testiranje_komentarji_anketa_old () {
global $lang;
global $site_url;
global $admin_type;
global $global_user_id;
$rowa = SurveyInfo::getInstance()->getSurveyRow();
SurveySetting::getInstance()->Init($this->anketa);
$sortpostorder = SurveySetting::getInstance()->getSurveyMiscSetting('sortpostorder');
$f = new Forum;
$sql = sisplet_query("SELECT * FROM post WHERE tid='$rowa[thread]'");
echo '
';
echo '
'.$lang['srv_admin_s_comments'].'
';
if (mysqli_num_rows($sql) > 0) {
$rows = mysqli_num_rows($sql);
if ($rows > 0) echo '
';
}
$i=0;
while ($row = mysqli_fetch_array($sql)) {
if (($i != 0 && $sortpostorder==0) || ($i < $rows-1 && $sortpostorder==1)) {
if ($row['ocena'] == 0) echo '
';
elseif ($row['ocena'] == 1) echo '';
elseif ($row['ocena'] == 2) echo '';
elseif ($row['ocena'] == 3) echo '';
else echo '';
echo ''.$f->user($row['uid']).' ('.$f->datetime1($row['time']).'):';
echo ' '.$row['vsebina'].' ';
echo ' ';
}
$i++;
}
echo ' ';
}
/**
* izpise komentarje na anketo
*
*/
function testiranje_komentarji_anketa () {
global $lang;
global $site_url;
global $admin_type;
global $global_user_id;
$b = new Branching($this->anketa);
$f = new Forum;
$d = new Dostop();
SurveySetting::getInstance()->Init($this->anketa);
$sortpostorder = SurveySetting::getInstance()->getSurveyMiscSetting('sortpostorder');
$commentmarks = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks');
$survey_comment = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment');
$survey_comment_resp = SurveySetting::getInstance()->getSurveyMiscSetting('survey_comment_resp');
$comment_count = $this->testiranje_komentarji_count();
$rowa = SurveyInfo::getInstance()->getSurveyRow();
echo '
';
echo '
';
echo '';
echo '
';
echo ' '.$lang['srv_survey_testdata'].' ';
echo ' ('.SurveyInfo::getSurveyLink().'&preview=on&testdata=on'.$preview_options.') ';
echo '';
echo '' . $lang['srv_survey_testdata2'] . ': '.$lang['srv_testdata_text'].'';
echo ''.$lang['srv_preview_testdata_longtext'].'
';
echo ' ';
echo ' '; // expanded-tooltip bottom
echo ' '; // tooltip
# VV: privzeto naj bodo samo nerešeni komentarji
if (!isset($_GET['only_unresolved'])) {
$_GET['only_unresolved'] = 1;
}
echo '
';
# samo nerešeni komentarji
if ($commentmarks == 0) {
echo ' ';
echo $lang['srv_comments_unresolved'];
echo ' ';
} else {
echo $lang['move_show'].':
'.$lang['all2'].'
'.$lang['srv_comments_unresolved'].'
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
}
echo ' '.Help::display('srv_comments_only_unresolved').' ';
$only_unresolved = " ";
switch($_GET['only_unresolved']){
case 1:
$only_unresolved = " AND ocena <= '1' ";
break;
case 2:
$only_unresolved = " AND ocena = '0' ";
break;
case 3:
$only_unresolved = " AND ocena = '1' ";
break;
case 4:
$only_unresolved = " AND ocena = '2' ";
break;
case 5:
$only_unresolved = " AND ocena = '3' ";
break;
default:
break;
}
echo '
';
// Splosni komentarji urednikov - levo
echo '
';
echo '
'.$lang['srv_comments_anketa_ured'].' ('.$comment_count['survey_admin']['unresolved'].'/'.$comment_count['survey_admin']['all'].') ';
echo '
';
$sql = sisplet_query("SELECT * FROM post WHERE tid='$rowa[thread]' ".$only_unresolved." ");
$rows = (mysqli_num_rows($sql) == 0) ? 0 : mysqli_num_rows($sql) - 1;
if ($rows > 0){
echo '
';
echo '
';
$i=0;
while ($row = mysqli_fetch_array($sql)) {
if (($i != 0 && $sortpostorder==0) || ($i < $rows && $sortpostorder==1)) {
if ($row['ocena'] == 0) echo '
';
elseif ($row['ocena'] == 1) echo '';
elseif ($row['ocena'] == 2) echo '';
elseif ($row['ocena'] == 3) echo '';
else echo '';
echo ''.$f->user($row['uid']).' ('.$f->datetime1($row['time']).'):';
echo '';
if ($commentmarks == 1) {
echo '
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
} else {
// Checkbox za "Koncano"
echo ' = 2?' checked':'').' />';
echo ''.$lang['srv_done'].' ';
}
echo '
';
echo ' '.$row['vsebina'].' ';
echo ' ';
}
$i++;
}
}
// Nimamo komentarja
else{
// Ce so komentarji aktivirani
if($survey_comment != ''){
echo $lang['srv_no_comments_solved'];
}
else{
echo $lang['srv_no_comments'];
}
}
echo ' ';
// Dodajanje novega komentarja
echo '';
echo '
'.$lang['srv_comments_add_comment'].'
';
echo '';
echo '
';
// Splosni komentarji respondentov - desno
echo '
';
echo '
'.$lang['srv_comments_anketa_resp'].' ('.$comment_count['survey_resp']['unresolved'].'/'.$comment_count['survey_resp']['all'].') ';
echo '
';
$sql = sisplet_query("SELECT * FROM srv_comment_resp WHERE ank_id='$this->anketa' ".$only_unresolved." ORDER BY comment_time $orderby, id $orderby");
if (mysqli_num_rows($sql) > 0) {
echo '
';
echo '
';
while ($row = mysqli_fetch_array($sql)) {
if ($row['ocena'] == 0) echo '
';
elseif ($row['ocena'] == 1) echo '';
elseif ($row['ocena'] == 2) echo '';
elseif ($row['ocena'] == 3) echo '';
else echo '';
$datetime = strtotime($row['comment_time']);
$datetime = date("d.m G:i", $datetime);
if($row['usr_id'] == 0){
$user = $lang['guest'];
}
else{
$sqlU = sisplet_query("SELECT name FROM users WHERE id='$row[usr_id]'");
$rowU = mysqli_fetch_array($sqlU);
$user = $rowU['name'];
}
echo ''.$user.' ('.$datetime.'):';
echo '';
if ($commentmarks == 1) {
echo '
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
} else {
// Checkbox za "Koncano"
echo ' = 2?' checked':'').' />';
echo ''.$lang['srv_done'].' ';
}
echo '
';
echo ' '.$row['comment'].' ';
echo ' ';
}
}
// Nimamo komentarja
else{
// Ce so komentarji aktivirani
if($survey_comment_resp != ''){
echo $lang['srv_no_comments_solved'];
}
else{
echo $lang['srv_no_comments'];
}
}
echo ' ';
// Dodajanje novega komentarja
echo '';
echo '
'.$lang['srv_comments_add_comment'].'
';
echo '';
echo '
';
echo '
';
echo '
';
}
function testiranje_komentarji_komentarji_na_anketo ($return = true) {
$rowi = SurveyInfo::getInstance()->getSurveyRow();
#komentarji na anketo
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM post WHERE tid='".$rowi['thread']."' AND parent > 0";
$sqlta = sisplet_query($strta);
list($rowta) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM post WHERE tid='".$rowi['thread']."' AND parent > 0 AND ocena <= 1 ";
$sqltu = sisplet_query($strtu);
list($rowtu) = mysqli_fetch_row($sqltu);
if ($return)
return '(
'.(int)$rowtu.' /'.(int)$rowta.')';
else
return (int)$rowtu;
}
public function testiranje_komentarji_count () {
$comment_count = array();
$rowi = SurveyInfo::getInstance()->getSurveyRow();
// KOMENTARJI NA ANKETO - UREDNIK
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM post WHERE tid='".$rowi['thread']."' AND parent > 0";
$sqlta = sisplet_query($strta);
list($rowta) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM post WHERE tid='".$rowi['thread']."' AND parent > 0 AND ocena <= 1 ";
$sqltu = sisplet_query($strtu);
list($rowtu) = mysqli_fetch_row($sqltu);
//(int)$rowtu.'/'.(int)$rowta;
$comment_count['survey_admin']['all'] = (int)$rowta;
$comment_count['survey_admin']['unresolved'] = (int)$rowtu;
// KOMENTARJI NA ANKETO - RESPONDENT
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM srv_comment_resp WHERE ank_id='".$this->anketa."'";
$sqlta = sisplet_query($strta);
list($rowta) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM srv_comment_resp WHERE ank_id='".$this->anketa."' AND ocena <= 1 ";
$sqltu = sisplet_query($strtu);
list($rowtu) = mysqli_fetch_row($sqltu);
//(int)$rowtu.'/'.(int)$rowta;
$comment_count['survey_resp']['all'] = (int)$rowta;
$comment_count['survey_resp']['unresolved'] = (int)$rowtu;
// KOMENTARJI NA VPRASANJE
# naenkrat preberemo vse spremenljivke, da ne delamo queryja vsakic posebej
$spremenljivke = Cache::cache_all_srv_spremenljivka($this->anketa, true);
$spr_id=array();
$threads=array();
if ( is_array($spremenljivke) && count($spremenljivke) > 0 ) {
foreach ($spremenljivke as $id=>$value) {
$spr_id[] = $id;
if ((int)$value['thread'] > 0) {
$threads[] = $value['thread'];
}
}
}
if (count($spr_id) > 0) {
#preštejemo komentarje uporabnikov na vprašanja
# srv_data_text where spr_id = 0 AND vre_id IN (id-ji spremenljivk)
$strqr = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$spr_id).")";
$sqlqr = sisplet_query($strqr);
list($rowqr) = mysqli_fetch_row($sqlqr);
#končani komentarji respondentov
#text2 = 2 => končan
#text2 = 3 => nerelevantno
$strqrf = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$spr_id).") AND text2 IN (2,3)";
$sqlqrf = sisplet_query($strqrf);
list($rowqrf) = mysqli_fetch_row($sqlqrf);
# preštejemo
if (count($threads) > 0) {
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads).") AND parent > 0";
$sqlta = sisplet_query($strta);
list($rowtqa) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads).") AND parent > 0 AND ocena IN (2,3) ";
$sqltu = sisplet_query($strtu);
list($rowtqu) = mysqli_fetch_row($sqltu);
}
}
#vsi
//$all = (int)((int)$rowqr + (int)$rowtqa);
#nerešeni
//$unresolved = $all - (int)((int)$rowqrf + (int)$rowtqu);
$comment_count['question']['all'] = (int)((int)$rowqr + (int)$rowtqa);
$comment_count['question']['unresolved'] = $comment_count['question']['all'] - (int)((int)$rowqrf + (int)$rowtqu);
// KOMENTARJI NA IF ALI BLOK
# naenkrat preberemo vse ife in bloke, da ne delamo queryja vsakic posebej
$ifi = Cache::cache_all_srv_if($this->anketa, true);
$if_id = array();
$threads_if = array();
if ( is_array($ifi) && count($ifi) > 0 ) {
foreach ($ifi as $id=>$value) {
$if_id[] = $id;
if ((int)$value['thread'] > 0) {
$threads_if[] = $value['thread'];
}
}
}
if (count($if_id) > 0) {
#preštejemo komentarje uporabnikov na vprašanja
# srv_data_text where if_id = 0 AND vre_id IN (id-ji spremenljivk)
$strqr = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$if_id).")";
$sqlqr = sisplet_query($strqr);
list($rowqr_if) = mysqli_fetch_row($sqlqr);
#končani komentarji respondentov
#text2 = 2 => končan
#text2 = 3 => nerelevantno
$strqrf = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$if_id).") AND text2 IN (2,3)";
$sqlqrf = sisplet_query($strqrf);
list($rowqrf_if) = mysqli_fetch_row($sqlqrf);
# preštejemo
if (count($threads_if) > 0) {
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads_if).") AND parent > 0";
$sqlta = sisplet_query($strta);
list($rowtqa_if) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads_if).") AND parent > 0 AND ocena IN (2,3) ";
$sqltu = sisplet_query($strtu);
list($rowtqu_if) = mysqli_fetch_row($sqltu);
}
}
$comment_count['question']['all'] += (int)((int)$rowqr_if + (int)$rowtqa_if);
$comment_count['question']['unresolved'] += ((int)((int)$rowqr_if + (int)$rowtqa_if)) - ((int)((int)$rowqrf_if + (int)$rowtqu_if));
return $comment_count;
}
/**
* $return pove a vrne text (true) ali samo številko (false)
*/
function testiranje_komentarji_komentarji_na_vprasanje ($return = true) {
# naenkrat preberemo vse spremenljivke, da ne delamo queryja vsakic posebej
$spremenljivke = Cache::cache_all_srv_spremenljivka($this->anketa, true);
$spr_id=array();
$threads=array();
if ( is_array($spremenljivke) && count($spremenljivke) > 0 ) {
foreach ($spremenljivke as $id=>$value) {
$spr_id[] = $id;
if ((int)$value['thread'] > 0) {
$threads[] = $value['thread'];
}
}
}
if (count($spr_id) > 0) {
#preštejemo komentarje uporabnikov na vprašanja
# srv_data_text where spr_id = 0 AND vre_id IN (id-ji spremenljivk)
$strqr = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$spr_id).")";
$sqlqr = sisplet_query($strqr);
list($rowqr) = mysqli_fetch_row($sqlqr);
#končani komentarji respondentov
#text2 = 2 => končan
#text2 = 3 => nerelevantno
$strqrf = "SELECT count(*) FROM srv_data_text".$this->db_table." WHERE spr_id=0 AND vre_id IN (".implode(',',$spr_id).") AND text2 IN (2,3)";
$sqlqrf = sisplet_query($strqrf);
list($rowqrf) = mysqli_fetch_row($sqlqrf);
# preštejemo
if (count($threads) > 0) {
# vsi komentarji na anketo
$strta = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads).") AND parent > 0";
$sqlta = sisplet_query($strta);
list($rowtqa) = mysqli_fetch_row($sqlta);
# nerešeni komentarji: only_unresolved => ocena <= 1
$strtu = "SELECT count(*) FROM post WHERE tid IN (".implode(',',$threads).") AND parent > 0 AND ocena IN (2,3) ";
$sqltu = sisplet_query($strtu);
list($rowtqu) = mysqli_fetch_row($sqltu);
}
}
#vsi
$all = (int)((int)$rowqr + (int)$rowtqa);
# nerešeni
$unresolved = $all - (int)((int)$rowqrf + (int)$rowtqu);
if ($return)
// '(
'.$unresolved.' /'.$all.')';
return $unresolved;
else
return $unresolved;
}
/**
* izpise vprasanja, ki imajo komentarje in poleg tudi razprte komentarje
*
*/
function testiranje_komentarji () {
global $lang;
global $site_url;
global $admin_type;
global $global_user_id;
$lang_admin = $lang;
//$sa = new SurveyAdmin(1, $this->anketa);
include_once('../../main/survey/app/global_function.php');
new \App\Controllers\SurveyController(true);
save('forceShowSpremenljivka', true);
$f = new Forum;
$c = 0;
$lang = $lang_admin;
$b = new Branching($this->anketa);
$d = new Dostop();
$rowi = SurveyInfo::getInstance()->getSurveyRow();
echo '
';
echo '
';
SurveySetting::getInstance()->Init($this->anketa);
$question_resp_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_resp_comment_viewadminonly');
$question_comment_viewadminonly = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewadminonly');
$question_comment_viewauthor = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment_viewauthor');
$sortpostorder = SurveySetting::getInstance()->getSurveyMiscSetting('sortpostorder');
$question_note_view = SurveySetting::getInstance()->getSurveyMiscSetting('question_note_view');
$addfieldposition = SurveySetting::getInstance()->getSurveyMiscSetting('addfieldposition');
$commentmarks = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks');
$commentmarks_who = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks_who');
$question_comment_viewadminonly = ($question_comment_viewadminonly == '') ? 4 : $question_comment_viewadminonly;
$question_resp_comment_viewadminonly = ($question_resp_comment_viewadminonly == '') ? 4 : $question_resp_comment_viewadminonly;;
$comment_count = $this->testiranje_komentarji_count();
echo '';
echo '
';
echo ' '.$lang['srv_survey_testdata'].' ';
echo ' ('.SurveyInfo::getSurveyLink().'&preview=on&testdata=on'.$preview_options.') ';
echo '';
echo '' . $lang['srv_survey_testdata2'] . ': '.$lang['srv_testdata_text'].'';
echo ''.$lang['srv_preview_testdata_longtext'].'
';
echo ' ';
echo ' '; // expanded-tooltip bottom
echo ' '; // tooltip
# VV: privzeto naj bodo samo nerešeni komentarji
if (!isset($_GET['only_unresolved'])) {
$_GET['only_unresolved'] = 1;
}
$sqlf1 = sisplet_query("SELECT p.id FROM post p WHERE p.tid='$rowi[thread]' AND p.ocena='5'");
while ($rowf1 = mysqli_fetch_array($sqlf1)) {
$s = sisplet_query("SELECT * FROM views WHERE pid='$rowf1[id]' AND uid='$global_user_id'");
if (mysqli_num_rows($s) == 0)
$show_survey_comment = 1;
}
echo '
';
// vsa vprasanja
echo ' ';
echo $lang['srv_all_questions'];
echo ' ';
# samo nerešeni komentarji
if ($commentmarks == 0) {
echo ' ';
//echo $lang['srv_comments_unresolved'].' '.$this->testiranje_komentarji_komentarji_na_vprasanje();
echo $lang['srv_comments_unresolved'];
echo ' ';
} else {
echo $lang['move_show'].':
'.$lang['all2'].'
'.$lang['srv_comments_unresolved'].'
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
}
echo ' '.Help::display('srv_comments_only_unresolved').' ';
// Nov nacin kjer se sprehodimo cez branching, ker imamo lahko tudi komentarje na ife in bloke
Common::getInstance()->Init($this->anketa);
$branching_array = Common::getBranchingOrder();
if (count($branching_array) > 0) {
$view = 1;
echo '
';
$b = new Branching($this->anketa);
foreach($branching_array AS $element){
// Gre za if ali blok
if($element['if_id'] > 0){
$if_id = $element['if_id'];
$sql1 = sisplet_query("SELECT * FROM srv_if WHERE id = '$if_id'");
$row1 = mysqli_fetch_array($sql1);
$orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ;
$tid = $row1['thread'];
$only_unresolved = " ";
$only_unresolved2 = " ";
if ($_GET['only_unresolved'] == 1) $only_unresolved = " AND ocena <= 1 ";
if ($_GET['only_unresolved'] == 1) $only_unresolved2 = " AND text2 <= 1 ";
if ($_GET['only_unresolved'] == 2) $only_unresolved = " AND ocena = 0 ";
if ($_GET['only_unresolved'] == 2) $only_unresolved2 = " AND text2 = 0 ";
if ($_GET['only_unresolved'] == 3) $only_unresolved = " AND ocena = 1 ";
if ($_GET['only_unresolved'] == 3) $only_unresolved2 = " AND text2 = 1 ";
if ($_GET['only_unresolved'] == 4) $only_unresolved = " AND ocena = 2 ";
if ($_GET['only_unresolved'] == 4) $only_unresolved2 = " AND text2 = 2 ";
if ($_GET['only_unresolved'] == 5) $only_unresolved = " AND ocena = 3 ";
if ($_GET['only_unresolved'] == 5) $only_unresolved2 = " AND text2 = 3 ";
$tema_vsebuje = substr($lang['srv_forum_intro'],0,10); // da ne prikazujemo 1. default sporocila
if ($admin_type <= $question_comment_viewadminonly) { // vidi vse komentarje
$sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved ORDER BY time $orderby, id $orderby");
} elseif ($question_comment_viewauthor==1) { // vidi samo svoje komentarje
$sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved AND uid='$global_user_id' ORDER BY time $orderby, id $orderby");
} else { // ne vidi nobenih komentarjev
$sqlt = sisplet_query("SELECT * FROM post WHERE 1=0");
}
if (($_GET['all_questions']=='1') OR (mysqli_num_rows($sqlt) > 0)) {
$c++;
echo '';
echo '
';
echo '';
// Blok
if($row1['tip'] == 1){
echo '
';
echo 'BLOCK ('.$row1['number'].') ';
echo '
';
}
// If
else{
echo '
';
$b->conditions_display($if_id);
echo '
';
}
echo '
';
echo ' ';
echo '
';
if ($addfieldposition == 1) {
echo '';
echo '
'.$lang['srv_comments_add_comment'].'
';
echo '';
}
// komentarji na vprasanje
if ($row1['thread'] > 0) {
if (mysqli_num_rows($sqlt) > 0) {
echo '
'.$lang['srv_admin_comment'].' ';
//$rowss = mysqli_num_rows($sql);
//if ($rowss > 0)
echo ' ';
echo '
';
$i = 0;
while ($rowt = mysqli_fetch_array($sqlt)) {
if ($_GET['only_unresolved'] == 1) {
if ($rowt['ocena'] == 0) echo '
';
elseif ($rowt['ocena'] == 1) echo '';
elseif ($rowt['ocena'] == 2) echo '';
elseif ($rowt['ocena'] == 3) echo '';
else echo '';
} else {
if ($rowt['ocena'] == 0) echo '';
elseif ($rowt['ocena'] == 1) echo '';
elseif ($rowt['ocena'] == 2) echo '';
elseif ($rowt['ocena'] == 3) echo '';
else echo '';
}
echo ''.$f->user($rowt['uid']).' ('.$f->datetime1($rowt['time']).'):';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '';
if ($commentmarks == 1) {
echo '
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
} else {
echo '
= 2?' checked':'').' />
'.$lang['srv_done'].' ';
}
echo '
'.$lang['srv_comment_comment'].' ';
echo '
';
}
echo ' '.$rowt['vsebina'].' ';
echo ' ';
}
}
}
if ($addfieldposition == '' || $addfieldposition == 0) {
echo '';
echo ''.$lang['srv_comments_add_comment'].'
';
echo '';
}
echo ' ';
echo '
';
echo '
';
}
}
// Gre za navadno vprasanje
else{
$spr_id = $element['spr_id'];
$sql1 = sisplet_query("SELECT thread, note FROM srv_spremenljivka WHERE id = '$spr_id'");
$row1 = mysqli_fetch_array($sql1);
$orderby = $sortpostorder == 1 ? 'DESC' : 'ASC' ;
$tid = $row1['thread'];
$only_unresolved = " ";
$only_unresolved2 = " ";
if ($_GET['only_unresolved'] == 1) $only_unresolved = " AND ocena <= 1 ";
if ($_GET['only_unresolved'] == 1) $only_unresolved2 = " AND text2 <= 1 ";
if ($_GET['only_unresolved'] == 2) $only_unresolved = " AND ocena = 0 ";
if ($_GET['only_unresolved'] == 2) $only_unresolved2 = " AND text2 = 0 ";
if ($_GET['only_unresolved'] == 3) $only_unresolved = " AND ocena = 1 ";
if ($_GET['only_unresolved'] == 3) $only_unresolved2 = " AND text2 = 1 ";
if ($_GET['only_unresolved'] == 4) $only_unresolved = " AND ocena = 2 ";
if ($_GET['only_unresolved'] == 4) $only_unresolved2 = " AND text2 = 2 ";
if ($_GET['only_unresolved'] == 5) $only_unresolved = " AND ocena = 3 ";
if ($_GET['only_unresolved'] == 5) $only_unresolved2 = " AND text2 = 3 ";
$tema_vsebuje = substr($lang['srv_forum_intro'],0,10); // da ne prikazujemo 1. default sporocila
if ($admin_type <= $question_comment_viewadminonly) { // vidi vse komentarje
$sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved ORDER BY time $orderby, id $orderby");
} elseif ($question_comment_viewauthor==1) { // vidi samo svoje komentarje
$sqlt = sisplet_query("SELECT * FROM post WHERE vsebina NOT LIKE '%{$tema_vsebuje}%' AND tid='$tid' $only_unresolved AND uid='$global_user_id' ORDER BY time $orderby, id $orderby");
} else { // ne vidi nobenih komentarjev
$sqlt = sisplet_query("SELECT * FROM post WHERE 1=0");
}
$sql2 = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_text".$this->db_table." WHERE spr_id='0' AND vre_id='$spr_id' $only_unresolved2");
$row2 = mysqli_fetch_array($sql2);
if ( ($_GET['all_questions']=='1') OR ( mysqli_num_rows($sqlt) > 0 || $row2['count'] > 0 || $row1['note'] != '' ) ) {
$c++;
echo '';
echo '
';
$b->vprasanje($spr_id);
echo ' ';
if ($admin_type <= $question_note_view || $question_note_view == '') {
if ($row1['note'] != '') {
echo '
';
}
}
echo '
';
if ($addfieldposition == 1) {
echo '';
echo '
'.$lang['srv_comments_add_comment'].'
';
echo '';
}
// komentarji na vprasanje
if ($row1['thread'] > 0) {
if (mysqli_num_rows($sqlt) > 0) {
echo '
'.$lang['srv_admin_comment'].' ';
//$rowss = mysqli_num_rows($sql);
//if ($rowss > 0)
echo ' ';
echo '
';
$i = 0;
while ($rowt = mysqli_fetch_array($sqlt)) {
if ($_GET['only_unresolved'] == 1) {
if ($rowt['ocena'] == 0) echo '
';
elseif ($rowt['ocena'] == 1) echo '';
elseif ($rowt['ocena'] == 2) echo '';
elseif ($rowt['ocena'] == 3) echo '';
else echo '';
} else {
if ($rowt['ocena'] == 0) echo '';
elseif ($rowt['ocena'] == 1) echo '';
elseif ($rowt['ocena'] == 2) echo '';
elseif ($rowt['ocena'] == 3) echo '';
else echo '';
}
echo ''.$f->user($rowt['uid']).' ('.$f->datetime1($rowt['time']).'):';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '';
if ($commentmarks == 1) {
echo '
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
} else {
echo '
= 2?' checked':'').' />
'.$lang['srv_done'].' ';
}
echo '
'.$lang['srv_comment_comment'].' ';
echo '
';
}
echo ' '.$rowt['vsebina'].' ';
echo ' ';
}
}
}
if ($addfieldposition == '' || $addfieldposition == 0) {
echo '';
echo ''.$lang['srv_comments_add_comment'].'
';
echo '';
}
echo ' ';
// komentarji respondentov
if ($row2['count'] > 0) {
if ($admin_type <= $question_resp_comment_viewadminonly) {
echo '
';
echo '
'.$lang['srv_repondent_comment'].'
';
if ($_GET['only_unresolved'] == 1) $only_unresolved = " AND d.text2 <= 1 "; else $only_unresolved = " ";
$sqlt = sisplet_query("SELECT * FROM srv_data_text".$this->db_table." WHERE spr_id='0' AND vre_id='$spr_id' $only_unresolved2 ORDER BY id ASC");
if (!$sqlt) echo mysqli_error($GLOBALS['connect_db']);
while ($rowt = mysqli_fetch_array($sqlt)) {
if ($rowt['text2'] == 0) echo '
';
elseif ($rowt['text2'] == 1) echo '';
elseif ($rowt['text2'] == 2) echo '';
elseif ($rowt['text2'] == 3) echo '';
else echo '';
if ($admin_type <= 1 || $rowi['insert_uid']==$global_user_id || $commentmarks_who==0) {
echo '';
if ($commentmarks == 1) {
echo '
'.$lang['srv_undecided'].'
'.$lang['srv_todo'].'
'.$lang['srv_done'].'
'.$lang['srv_not_relevant'].'
';
} else {
echo ' = 2?' checked':'').' />'.$lang['srv_done'].' ';
}
echo '
';
}
// Ce smo slucajno pobrisali testne vnose, nimamo casa vnosa komentarja
$sqlTime = sisplet_query("SELECT time_edit FROM srv_user WHERE id='".$rowt['usr_id']."'");
if(mysqli_num_rows($sqlTime) > 0){
$rowTime = mysqli_fetch_array($sqlTime);
if ( strpos($rowt['text'], '__DATE__') !== false ) {
$rowt['text'] = str_replace('__DATE__', $f->datetime1($rowTime['time_edit']), $rowt['text']);
echo ''.nl2br($rowt['text']).' ';
}
else {
echo ''.$f->datetime1($rowTime['time_edit']).': ';
echo ''.nl2br($rowt['text']).' ';
}
}
else{
if ( strpos($rowt['text'], '__DATE__') !== false ) {
$rowt['text'] = str_replace('__DATE__', '', $rowt['text']);
echo ''.nl2br($rowt['text']).' ';
}
else {
echo ''.nl2br($rowt['text']).' ';
}
}
echo ' ';
}
echo ' ';
}
}
echo '
';
echo '
';
}
}
}
echo ' ';
if ($c == 0) {
echo '
';
}
}
else {
echo '
';
echo $lang['srv_no_comments'].' ';
echo '
';
}
echo '
'; // branching
echo '
';
echo '
'; // placeholder
}
/**
* odsteje dva datuma, $d1 - D2
*
*/
function diff ($d1, $d2) {
//echo $d1.' '.$d2;
$d1 = (is_string($d1) ? strtotime($d1) : $d1);
$d2 = (is_string($d2) ? strtotime($d2) : $d2);
//echo ' ('.$d1.' '.$d2.')
';
$diff_secs = abs($d1 - $d2);
return $diff_secs;
}
private $usr_id;
/**
* vnese izbrano stevilo testnih podatkov
*
*/
function testiranje_testnipodatki () {
global $lang;
if ($_POST['stevilo_vnosov'] > 0) {
// Nastavitev da vstavljamo samo veljavne vnose
$only_valid = isset($_POST['only_valid']) ? $_POST['only_valid'] : 0;
if(session_id() == '') {session_start();}
$_SESSION['progressBar'][$this->anketa]['status'] = 'ok';
$_SESSION['progressBar'][$this->anketa]['total'] = (int)$_POST['stevilo_vnosov'];
$_SESSION['progressBar'][$this->anketa]['current'] = 0;
session_commit();
SurveyInfo::getInstance()->SurveyInit($this->anketa);
$rowa = SurveyInfo::getInstance()->getSurveyRow();
if ($rowa['survey_type'] < 2) return; // samo za anketo na več straneh in branching...
$sql = sisplet_query("SELECT MAX(recnum) AS recnum FROM srv_user WHERE ank_id = '$this->anketa' AND preview='0'");
$row = mysqli_fetch_array($sql);
$recnum = $row['recnum'] + 1;
//$sql = sisplet_query("SELECT s.id, s.tip, s.size, s.ranking_k, s.design FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$this->anketa' AND s.visible='1' ORDER BY g.vrstni_red, s.vrstni_red");
$sql = sisplet_query("SELECT s.id, s.tip, s.size, s.ranking_k, s.design, s.cela FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND g.ank_id='$this->anketa' AND s.visible='1' ORDER BY g.vrstni_red, s.vrstni_red");
# zabeležimo id-je za arhiv testnih vnosov
$arrayTestni = array();
for ($i=1; $i<=$_POST['stevilo_vnosov']; $i++) {
session_start();
$_SESSION['progressBar'][$this->anketa]['current'] = $i;
session_commit();
// izberemo random hash, ki se ni v bazi (to more bit, ker je index na fieldu cookie)
do {
$rand = md5(mt_rand(1, mt_getrandmax()).'@'.$_SERVER['REMOTE_ADDR']);
$sql1 = sisplet_query("SELECT id FROM srv_user WHERE cookie = '$rand'");
} while (mysqli_num_rows($sql1) > 0);
$sql2 = sisplet_query("INSERT INTO srv_user (ank_id, preview, testdata, cookie, user_id, ip, time_insert, recnum, referer, last_status, lurker) VALUES ('$this->anketa', '0', '2', '$rand', '0', '$_SERVER[REMOTE_ADDR]', NOW(), '$recnum', '$_SERVER[HTTP_REFERER]', '6', '0')");
if (!$sql2) echo mysqli_error($GLOBALS['connect_db']);
$this->usr_id = mysqli_insert_id($GLOBALS['connect_db']);
// Survey v zanki vsakič kreiramo znova zaradi IFov !!!
include_once('../../main/survey/app/global_function.php');
new \App\Controllers\SurveyController(true);
save('usr_id', $this->usr_id);
$s = \App\Controllers\CheckController::getInstance();
$arrayTestni[] = $this->usr_id;
mysqli_data_seek($sql, 0);
while ($row = mysqli_fetch_array($sql)) {
$srv_data_vrednost = "";
$srv_data_grid = "";
$srv_data_checkgrid = "";
$srv_data_text = "";
$srv_data_textgrid = "";
$srv_data_rating = "";
$srv_data_map = "";
$srv_data_heatmap = "";
if ($row['tip'] != 5) {
// radio ali select
if ( ($row['tip']==1 || $row['tip']==3) ) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id='$row[id]'");
// Ce imamo samo veljavne vedno oznacimo enega
if($only_valid == 1)
$rand = rand(1, mysqli_num_rows($sql1));
else
$rand = rand(0, mysqli_num_rows($sql1));
if ($rand > 0) {
for ($j=1; $j<=$rand; $j++)
$row1 = mysqli_fetch_array($sql1);
$vrednost = $row1['id'];
} else {
$vrednost = 0;
}
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
if ($vrednost > 0) {
$srv_data_vrednost .= "('$row[id]', '$vrednost', '$this->usr_id'),";
if ($row1['other'] == 1)
$srv_data_text .= "('$row[id]', '$vrednost', '".$this->randomString()."', '', '$this->usr_id'),";
}
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
// checkbox
} elseif ($row['tip'] == 2) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
unset($vrednost);
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id='$row[id]'");
$randX = 0;
if($only_valid == 1)
$randX = rand(1, mysqli_num_rows($sql1));
$j=1;
while ($row1 = mysqli_fetch_array($sql1)) {
$rand = rand(-1, 1);
if ($rand > 0){
$vrednost[$row1['id']] = $row1['id'];
}
// Ce imamo samo veljavne vedno oznacimo enega
if($randX == $j && $only_valid == 1){
$vrednost[$row1['id']] = $row1['id'];
}
$j++;
}
if ($vrednost) {
foreach ($vrednost AS $key => $val) {
if ($val > 0) {
$srv_data_vrednost .= "('$row[id]', '$val', '$this->usr_id'),";
if ($row1['other'] == 1)
$srv_data_text .= "('$row[id]', '$val', '".$this->randomString()."', '', '$this->usr_id'),";
}
}
}
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
// multigrid
} elseif ($row['tip'] == 6) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id='$row[id]'");
// Ce imamo samo veljavne vedno oznacimo enega
if($only_valid == 1)
$rand = rand(1, mysqli_num_rows($sql2));
else
$rand = rand(0, mysqli_num_rows($sql2));
if ($rand > 0) {
for ($j=1; $j<=$rand; $j++)
$row2 = mysqli_fetch_array($sql2);
$grid_id = $row2['id'];
} else {
$grid_id = 0;
}
if ($grid_id > 0) {
$srv_data_grid .= "('$row[id]', '$row1[id]', '$this->usr_id', '$grid_id'),";
}
if ($row1['other'] == 1 && $grid_id > 0)
$srv_data_text .= "('$row[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
// multicheckbox
} elseif ($row['tip'] == 16) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
$randX = 0;
if($only_valid == 1)
$randX = rand(1, mysqli_num_rows($sql2));
$j=1;
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$rand = rand(-1, 1);
if ($rand > 0) {
$grid_id = $row2['id'];
} else {
$grid_id = 0;
}
// Ce imamo samo veljavne vedno oznacimo enega
if($randX == $j && $only_valid == 1){
$grid_id = $row2['id'];
}
$j++;
if ($grid_id > 0) {
$srv_data_checkgrid .= "('$row[id]', '$row1[id]', '$this->usr_id', '$grid_id'),";
}
if ($row1['other'] == 1 && $grid_id > 0)
$srv_data_text .= "('$row[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
}
// multitext
elseif ($row['tip'] == 19) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$value = $this->randomString();
else
$value = rand(0,1)==0 ? $this->randomString() : '';
$grid_id = $row2['id'];
if ($value != '') {
$srv_data_textgrid .= "('$row[id]', '$row1[id]', '$this->usr_id', '$grid_id', '$value'),";
}
// vsebino text polja vnesemo v vsakem primeru
if ($row1['other'] == 1 && $value != '')
$srv_data_text .= "('$row[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
}
//Lokacija
elseif($row['tip'] == 26){
//choose location
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'", 'array');
//so vrednosti, se pravi je choose
if($sql1){
foreach($sql1 as $row1){
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
$srv_data_map .= "(" . $this->usr_id . ", '$row[id]', '$row1[id]', ". $this->anketa . ", '', '', '', '".
($vrednost != '' ? $vrednost : '-1')."', ''),";
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
//niso vrednosti, se pravi je moja ali multi lokacija
else{
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$make_input = ($only_valid == 1 ? true : rand(0,1)==0);
if($make_input){
$lat = floatval(mt_rand(454000, 466500)/10000);
$lng = floatval(mt_rand(136000, 163900)/10000);
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
$srv_data_map .= "(" . $this->usr_id . ", '$row[id]', '$row1[id]', ". $this->anketa . ", '$lat', '$lng', '[N/A]', '".
($vrednost != '' ? $vrednost : '-1')."', ''),";
}
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
//Heatmap
elseif($row['tip'] == 27){
//choose location
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'", 'array');
//so vrednosti, se pravi je choose
if($sql1){
foreach($sql1 as $row1){
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
$srv_data_heatmap .= "(" . $this->usr_id . ", '$row[id]', '$row1[id]', ". $this->anketa . ", '', '', '', '".
($vrednost != '' ? $vrednost : '-1')."', ''),";
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
//niso vrednosti, se pravi je moja ali multi lokacija
else{
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$make_input = ($only_valid == 1 ? true : rand(0,1)==0);
if($make_input){
$lat = floatval(mt_rand(454000, 466500)/10000);
$lng = floatval(mt_rand(136000, 163900)/10000);
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
$srv_data_heatmap .= "(" . $this->usr_id . ", '$row[id]', '$row1[id]', ". $this->anketa . ", '$lat', '$lng', '[N/A]', '".
($vrednost != '' ? $vrednost : '-1')."', ''),";
}
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
// multinumber
elseif ($row['tip'] == 20) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$value = $this->randomNumber();
else
$value = rand(0,1)==0 ? $this->randomNumber() : '';
$grid_id = $row2['id'];
if ($value != '') {
$srv_data_textgrid .= "('$row[id]', '$row1[id]', '$this->usr_id', '$grid_id', '$value'),";
}
// vsebino text polja vnesemo v vsakem primeru
if ($row1['other'] == 1 && $value != '')
$srv_data_text .= "('$row[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
}
// textbox
elseif ($row['tip'] == 4) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
if ($vrednost != '')
$srv_data_text .= "('$row[id]', '', '$vrednost', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
// textbox*
elseif ($row['tip'] == 21) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = rand(0,1)==0 ? $this->randomString() : '';
if ($vrednost != '')
$srv_data_text .= "('$row[id]', '$row1[id]', '$vrednost', '', '$this->usr_id'),";
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
}
// number
elseif ($row['tip'] == 7) {
####### za ureditev avtomatskega vnosa glede na dolzino stevila
if($row['ranking_k']==0){ //ce je stevilo
$newLength = $row['cela'];
}elseif($row['ranking_k']==1){ //ce je drsnik
$rowParams = Cache::srv_spremenljivka($row['id']);
$spremenljivkaParams = new enkaParameters($rowParams['params']);
$slider_MaxNumLabel = ($spremenljivkaParams->get('slider_MaxNumLabel') ? $spremenljivkaParams->get('slider_MaxNumLabel') : 100);
$newLength = strlen((string)$slider_MaxNumLabel)-1;
}
####### za ureditev avtomatskega vnosa glede na dolzino stevila - konec
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$ij=1;
unset($vrednost);
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1){
//if ($row['size'] >= 1) $vrednost[0] = $this->randomNumber();
if ($row['size'] >= 1) $vrednost[0] = $this->randomNumber($newLength);
//if ($row['size'] >= 2) $vrednost[1] = $this->randomNumber();
if ($row['size'] >= 2) $vrednost[1] = $this->randomNumber($newLength);
}
elseif (rand(0,1) == 0) {
//if ($row['size'] >= 1) $vrednost[0] = $this->randomNumber();
if ($row['size'] >= 1) $vrednost[0] = $this->randomNumber($newLength);
//if ($row['size'] >= 2) $vrednost[1] = $this->randomNumber();
if ($row['size'] >= 2) $vrednost[1] = $this->randomNumber($newLength);
}
if (isset($vrednost)){
$text = '';
$text2 = '';
foreach ($vrednost AS $key => $val) {
if($ij==1){
if ($val != '')
$text = $val;
}
else{
if ($val != '')
$text2 = $val;
}
$ij++;
}
$srv_data_text .= "('$row[id]', '', '$text', '$text2', '$this->usr_id'),";
}
}
else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
// compute
elseif ($row['tip'] == 22) {
if (true){
$val = $s->checkCalculation(-$row['id']); // za spremenljivke je v srv_calculation, v cnd_id zapisan id spremenljivke kot minus (plus je za kalkulacije v ifih)
if ($val != '')
$srv_data_text .= "('$row[id]', '', '$val', '', '$this->usr_id'),";
}
}
// 8_datum
elseif ($row['tip'] == 8) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomDate();
else
$vrednost = rand(0,1)==0 ? $this->randomDate() : '';
if ($vrednost != '')
$srv_data_text .= "('$row[id]', '', '$vrednost', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
// ranking
elseif ($row['tip'] == 17) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
//cifre
if($row['design'] == 1 or true){ // tukaj se pac vse generira tukaj
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
$rows = mysqli_num_rows($sql1);
if ($row['ranking_k'] > 0) $rows = $row['ranking_k'];
unset($array);
// Ce imamo samo veljavne imamo vedno vrednosti
if($only_valid == 1){
if (rand(0,1) == 0) $rows = floor($rows/2);
$array = range(1, $rows);
shuffle($array);
}
elseif (rand(0,1) == 0) {
if (rand(0,1) == 0) $rows = floor($rows/2);
$array = range(1, $rows);
shuffle($array);
}
while($row1 = mysqli_fetch_array($sql1)){
if (count($array) > 0) {
$vrednost = array_pop($array);
if ($vrednost != '')
$srv_data_rating .= "('$row[id]', '$row1[id]', '$this->usr_id', '$vrednost'),";
}
}
}
//n==k (sortable)
else if($row['design'] == 2){
}
//n>k
else if($row['design'] == 0){
}
}
else
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
// vsota
elseif ($row['tip'] == 18) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
while($row1 = mysqli_fetch_array($sql1)){
if ($s->checkSpremenljivka($row['id'], $isTestData=true)){
unset($vrednost);
// Ce imamo samo veljavne imamo vedno vrednosti
if($only_valid == 1)
$vrednost = $this->randomNumber();
elseif(rand(0,1) == 0)
$vrednost = $this->randomNumber();
if (isset( $vrednost )) {
if ($vrednost != '')
$srv_data_text .= "('$row[id]', '$row1[id]', '$vrednost', '', '$this->usr_id'),";
}
}
else
$srv_data_vrednost .= "('$row[id]', '-2', '$this->usr_id'),";
}
}
// Kombinirana tabela
elseif($row['tip'] == 24){
// Loop cez podtabele kombinirane dabele
$sqlC = sisplet_query("SELECT s.id, s.tip FROM srv_grid_multiple m, srv_spremenljivka s WHERE m.parent='$row[id]' AND m.spr_id=s.id ORDER BY m.vrstni_red");
while ($rowC = mysqli_fetch_array($sqlC)) {
// multigrid
if ($rowC['tip'] == 6) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$rowC[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
if ($s->checkSpremenljivka($rowC['id'], $isTestData=true)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id='$rowC[id]'");
// Ce imamo samo veljavne vedno oznacimo enega
if($only_valid == 1)
$rand = rand(1, mysqli_num_rows($sql2));
else
$rand = rand(0, mysqli_num_rows($sql2));
if ($rand > 0) {
for ($j=1; $j<=$rand; $j++)
$row2 = mysqli_fetch_array($sql2);
$grid_id = $row2['id'];
} else {
$grid_id = 0;
}
if ($grid_id > 0) {
$srv_data_grid .= "('$rowC[id]', '$row1[id]', '$this->usr_id', '$grid_id'),";
}
if ($row1['other'] == 1 && $grid_id > 0)
$srv_data_text .= "('$rowC[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$rowC[id]', '-2', '$this->usr_id'),";
}
}
// multicheckbox
} elseif ($rowC['tip'] == 16) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$rowC[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$rowC[id]' ORDER BY vrstni_red");
$randX = 0;
if($only_valid == 1)
$randX = rand(1, mysqli_num_rows($sql2));
$j=1;
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($rowC['id'], $isTestData=true)) {
$rand = rand(-1, 1);
if ($rand > 0) {
$grid_id = $row2['id'];
} else {
$grid_id = 0;
}
// Ce imamo samo veljavne vedno oznacimo enega
if($randX == $j && $only_valid == 1){
$grid_id = $row2['id'];
}
$j++;
if ($grid_id > 0) {
$srv_data_checkgrid .= "('$rowC[id]', '$row1[id]', '$this->usr_id', '$grid_id'),";
}
if ($row1['other'] == 1 && $grid_id > 0)
$srv_data_text .= "('$rowC[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
} else {
$srv_data_vrednost .= "('$rowC[id]', '-2', '$this->usr_id'),";
}
}
}
}
// multitext
elseif ($rowC['tip'] == 19) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$rowC[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$rowC[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$value = $this->randomString();
else
$value = rand(0,1)==0 ? $this->randomString() : '';
$grid_id = $row2['id'];
if ($value != '') {
$srv_data_textgrid .= "('$rowC[id]', '$row1[id]', '$this->usr_id', '$grid_id', '$value'),";
}
// vsebino text polja vnesemo v vsakem primeru
if ($row1['other'] == 1 && $value != '')
$srv_data_text .= "('$rowC[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
}
else {
$srv_data_vrednost .= "('$rowC[id]', '-2', '$this->usr_id'),";
}
}
}
}
// multinumber
elseif ($rowC['tip'] == 20) {
$sql1 = sisplet_query("SELECT id, other FROM srv_vrednost WHERE spr_id = '$rowC[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$rowC[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($rowC['id'], $isTestData=true)) {
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$value = $this->randomNumber();
else
$value = rand(0,1)==0 ? $this->randomNumber() : '';
$grid_id = $row2['id'];
if ($value != '') {
$srv_data_textgrid .= "('$rowC[id]', '$row1[id]', '$this->usr_id', '$grid_id', '$value'),";
}
// vsebino text polja vnesemo v vsakem primeru
if ($row1['other'] == 1 && $value != '')
$srv_data_text .= "('$rowC[id]', '$row1[id]', '".$this->randomString()."', '', '$this->usr_id'),";
}
else {
$srv_data_vrednost .= "('$rowC[id]', '-2', '$this->usr_id'),";
}
}
}
}
}
}
}
// vprasanja shranjujemo sproti, zaradi IFov !!!
// odrezemo zadnjo vejico, ker smo jo dodajali kar povsod
$srv_data_grid = substr($srv_data_grid, 0, -1);
$srv_data_vrednost = substr($srv_data_vrednost, 0, -1);
$srv_data_text = substr($srv_data_text, 0, -1);
$srv_data_checkgrid = substr($srv_data_checkgrid, 0, -1);
$srv_data_textgrid = substr($srv_data_textgrid, 0, -1);
$srv_data_rating = substr($srv_data_rating, 0, -1);
$srv_data_map = substr($srv_data_map, 0, -1);
$srv_data_heatmap = substr($srv_data_heatmap, 0, -1);
if ($srv_data_grid != '') { $sq = sisplet_query("INSERT INTO srv_data_grid".$this->db_table." (spr_id, vre_id, usr_id, grd_id) VALUES $srv_data_grid"); if (!$sq) echo 'err011: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_vrednost != '') { $sq = sisplet_query("INSERT INTO srv_data_vrednost".$this->db_table." (spr_id, vre_id, usr_id) VALUES $srv_data_vrednost"); if (!$sq) echo 'err012: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_text != '') { $sq = sisplet_query("INSERT INTO srv_data_text".$this->db_table." (spr_id, vre_id, text, text2, usr_id) VALUES $srv_data_text"); if (!$sq) echo 'err013: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_checkgrid != ''){ $sq = sisplet_query("INSERT INTO srv_data_checkgrid".$this->db_table." (spr_id, vre_id, usr_id, grd_id) VALUES $srv_data_checkgrid"); if (!$sq) echo 'err014: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_textgrid != '') { $sq = sisplet_query("INSERT INTO srv_data_textgrid".$this->db_table." (spr_id, vre_id, usr_id, grd_id, text) VALUES $srv_data_textgrid"); if (!$sq) echo 'err015: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_rating != '') { $sq = sisplet_query("INSERT INTO srv_data_rating (spr_id, vre_id, usr_id, vrstni_red) VALUES $srv_data_rating"); if (!$sq) echo 'err016: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_map != '') { $sq = sisplet_query("INSERT INTO srv_data_map (usr_id, spr_id, vre_id, ank_id, lat, lng, address, text, vrstni_red) VALUES $srv_data_map"); if (!$sq) echo 'err016: '.mysqli_error($GLOBALS['connect_db']); }
if ($srv_data_heatmap != '') { $sq = sisplet_query("INSERT INTO srv_data_heatmap (usr_id, spr_id, vre_id, ank_id, lat, lng, address, text, vrstni_red) VALUES $srv_data_heatmap"); if (!$sq) echo 'err017: '.mysqli_error($GLOBALS['connect_db']); }
}
$recnum++;
}
# zabeležimo kdaj so bili dodani testni vnosi
if (count($arrayTestni)) {
global $global_user_id;
$ins_date = date ("Y-m-d H:m:s");
$insert_qry = "INSERT INTO srv_testdata_archive (ank_id, add_date, add_uid, usr_id) VALUES ";
$prefix = '';
foreach ($arrayTestni AS $at_user_id) {
$insert_qry .= $prefix."('".$this->anketa."', '$ins_date', '$global_user_id', '$at_user_id')";
$prefix = ', ';
}
sisplet_query($insert_qry);
}
if(session_id() == '') {session_start();}
$_SESSION['progressBar'][$this->anketa]['status'] = 'end';
session_commit();
unset($_SESSION['progressBar'][$this->anketa]); // ce getCollectTimer ne prebere vec 'end' (se prehitro refresha), se tukaj odstranimo sejo
header("Location: index.php?anketa=$this->anketa&a=testiranje&m=testnipodatki");
} elseif ($_GET['delete_testdata'] == 1 || $_GET['delete_autogen_testdata'] == 1) {
if($_GET['delete_autogen_testdata'] == 1)
sisplet_query("DELETE FROM srv_user WHERE ank_id='$this->anketa' AND testdata='2'");
else
sisplet_query("DELETE FROM srv_user WHERE ank_id='$this->anketa' AND (testdata='1' OR testdata='2')");
#datoteki z podatki moramo zgenerirati na novo
sisplet_query("UPDATE srv_data_files SET head_file_time='0000-00-00', data_file_time='0000-00-00' WHERE sid='$this->anketa'");
sisplet_query("COMMIT");
header("Location: ".$_SERVER['HTTP_REFERER']);
// izpis podatkov
} else {
$sql = sisplet_query("SELECT COUNT(*) AS count FROM srv_user WHERE ank_id='$this->anketa' AND (testdata='1' OR testdata='2')");
$row = mysqli_fetch_array($sql);
$total_rows = $row['count'];
echo '
';
echo '';
echo ''.$lang['srv_stevilo_vnosov'].': (max 1000) ';
echo ' ';
echo ''.$lang['srv_testni_samo_veljavni'].': ';
echo ' ';
echo '
';
echo ' ';
echo '
'.$lang['srv_testni_nagovor'].'
';
echo '
'.$lang['srv_delete_testdata'].' ('.$total_rows.')';
if ($total_rows > 0) {
$prevpage = 0;
$sql = sisplet_query("SELECT s.id, s.gru_id, s.tip, s.naslov, g.naslov AS pagename FROM srv_spremenljivka s, srv_grupa g WHERE s.gru_id=g.id AND s.visible='1' AND g.ank_id='$this->anketa' ORDER BY g.vrstni_red, s.vrstni_red");
while ($row = mysqli_fetch_array($sql)) {
// labela in compute ne upostevamo
if ($row['tip'] != 5 && $row['tip'] != 22) {
if ($prevpage == 0 || $row['gru_id'] != $prevpage) {
if ($prevpage > 0) {
echo '';
echo '';
}
echo '
'.$row['pagename'].' ';
echo '';
$prevpage = $row['gru_id'];
}
echo ''.skrajsaj(strip_tags($row['naslov']),20).' ';
// radio ali select, checkbox, textbox, textbox*, number, datum
if ( ($row['tip']==1 || $row['tip']==3 || $row['tip']==2 || $row['tip']==4 || $row['tip']==21 || $row['tip']==7 || $row['tip']==8) ) {
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_vrednost".$this->db_table." dv, srv_user u WHERE dv.usr_id=u.id AND (u.testdata='1' OR u.testdata='2') AND spr_id='$row[id]' AND vre_id='-2'");
$rowc = mysqli_fetch_array($sqlc);
$p = round(($total_rows-$rowc['count'])/$total_rows*100,2);
// multigrid
} elseif ($row['tip'] == 6) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_grid".$this->db_table." dg, srv_user u WHERE dg.usr_id=u.id AND (u.testdata='1' OR u.testdata='2') AND spr_id='$row[id]' AND vre_id='$row1[id]' AND grd_id='-2'");
$rowc = mysqli_fetch_array($sqlc);
$p = round(($total_rows-$rowc['count'])/$total_rows*100,2);
}
// multicheckbox
} elseif ($row['tip'] == 16) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_checkgrid".$this->db_table." cg, srv_user u WHERE cg.usr_id=u.id AND (u.testdata='1' OR u.testdata='2') AND spr_id='$row[id]' AND vre_id='$row1[id]' AND grd_id='-2'");
$rowc = mysqli_fetch_array($sqlc);
$p = round(($total_rows-$rowc['count'])/$total_rows*100,2);
}
}
}
// multitext, multinumber
elseif ($row['tip'] == 19 || $row['tip'] == 20) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
while ($row1 = mysqli_fetch_array($sql1)) {
$sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
while ($row2 = mysqli_fetch_array($sql2)) {
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_textgrid".$this->db_table." tg, srv_user u WHERE tg.usr_id=u.id AND (u.testdata='1' OR u.testdata='2') AND spr_id='$row[id]' AND vre_id='$row1[id]' AND grd_id='0' AND text='-2'");
$rowc = mysqli_fetch_array($sqlc);
$p = round(($total_rows-$rowc['count'])/$total_rows*100,2);
}
}
}
// ranking, vsota
elseif ($row['tip'] == 17 || $row['tip'] == 18) {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
while($row1 = mysqli_fetch_array($sql1)){
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_data_text".$this->db_table." dt, srv_user u WHERE dt.usr_id=u.id AND (u.testdata='1' OR u.testdata='2') AND spr_id='$row[id]' AND vre_id='$row1[id]' AND text='-2'");
$rowc = mysqli_fetch_array($sqlc);
$p = round(($total_rows-$rowc['count'])/$total_rows*100,2);
}
}
echo '';
echo '
';
echo ' '.$p.'% ('.($total_rows-$rowc['count']).') ';
echo ' ';
echo ' ';
}
}
echo '
';
echo '';
echo '
'.$lang['srv_testni_nakonec'].'
';
}
}
}
/**
* zgenerira random string za vpis v tekstovno polje
*
*/
function randomString ($length = 10, $chars = 'abcdefghijklmnopqrstuvwxyz') {
// Length of character list
$chars_length = (strlen($chars) - 1);
// Start our string
$string = $chars[mt_rand(0, $chars_length)];
// Generate random string
for ($i = 1; $i < $length; $i = strlen($string))
{
// Grab a random character from our list
$r = $chars[mt_rand(0, $chars_length)];
// Make sure the same two characters don't appear next to each other
if ($r != $string[$i - 1]) $string .= $r;
}
// Return the string
return $string;
}
function randomNumber ($length = 4, $chars = '0123456789') {
return $this->randomString($length, $chars);
}
function randomDate ($startDate = '01.01.1950', $endDate = '') {
if ($endDate == '') $endDate = date("d.m.Y");
$days = round((strtotime($endDate) - strtotime($startDate)) / (60 * 60 * 24));
$n = rand(0,$days);
return date("d.m.Y",strtotime("$startDate + $n days"));
}
function displayBtnMailtoPreview($row) {
global $lang;
echo '
';
}
function DisplayNastavitveTrajanje() {
global $lang;
global $site_url;
# vsilimo refresh podatkov
SurveyInfo :: getInstance()->resetSurveyData();
$row = SurveyInfo::getInstance()->getSurveyRow();
$starts = date('d.m.Y',strtotime($row['starts']));
$_expire = explode('-',$row['expire']);
$expire = $_expire[2].'.'.$_expire[1].'.'.$_expire[0];
echo '
'.$lang['srv_activate_duration_2'].' '.Help::display('srv_activity_quotas').' ';
echo '';
echo '' . $lang['srv_activate_duration_manual_from'].' ';
echo ' ';
echo '
';
echo '';
echo '' . $lang['srv_activate_duration_manual_to'].' ';
echo ' ';
echo '
';
echo '';
echo '' . $lang['srv_trajna_anketa'].' ';
echo ' ';
echo '
';
echo '';
echo '
';
#echo '
';
echo '
';
}
function DisplayNastavitveMaxGlasov() {
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
$row = SurveyInfo::getInstance()->getSurveyRow();
//Nastavitev max stevila glasov
echo '
';
echo '
';
echo ''.$lang['srv_vote_quotas'].' '.Help::display('srv_activity_quotas').' ';
echo '';
echo '' . $lang['srv_vote_quotas_2'] . ': ';
echo ' ' . $lang['no1'] . ' ';
echo ' ' . $lang['yes'] . ' ';
echo ' ' . $lang['srv_data_only_valid'] . ' (status 5, 6) '.Help::display('srv_activity_quotas_valid').' ';
echo ' '.$lang['srv_vote_count'].': ';
echo ' ';
echo '
';
// Opozorilo, da je limit odgovorov presezen
echo '';
echo $lang['srv_survey_voteLimit_warning'].': ';
$srv_survey_non_active_voteLimit = SurveySetting::getInstance()->getSurveyMiscSetting('srvlang_srv_survey_non_active_voteLimit');
if ($srv_survey_non_active_voteLimit == '') $srv_survey_non_active_voteLimit = $lang['srv_survey_non_active_voteLimit'];
echo ''.$srv_survey_non_active_voteLimit.' ';
echo ' '.$lang['edit3'].' ';
echo '
';
echo ' ';
}
/**
* Uporabnik (administrator, manager) lahko dodajata nove uporabnike in jim dodelita dostop
*/
public function dodajNovegaUporabnika(){
global $admin_type;
global $lang;
global $virtual_domain;
// admini lahko dodajajo uporabnike, ki jih nato managirajo
if($admin_type != 0)
return '';
echo '
';
}
/**
* Uporabnik (administrator, manager) lahko dodajata nove uporabnike in jim dodelita dostop
*/
public function dodeljeniUporabniki(){
global $admin_type;
global $lang;
global $global_user_id;
global $virtual_domain;
// managerji in admini lahko dodajajo uporabnike, ki jih nato managirajo
if( !($admin_type == 1 || $admin_type == 0) )
return '';
// Na virtualkah imajo managerji omejitev st. dodeljenih uporabnikov - ZAENKRAT JE TO ONEMOGOCENO, KASNEJE SE LAHKO OMEJI NA PAKET
if(false && $virtual_domain && $admin_type == 1){
// Limit st. dodeljenih uporabnikov
$managed_accounts_limit = 5;
// Prestejemo dodeljene uporabnike
$sql = sisplet_query("SELECT u.email
FROM srv_dostop_manage m, users u
WHERE m.manager='".$global_user_id."' AND u.id=m.user AND u.email NOT LIKE ('D3LMD-%') AND u.email NOT LIKE ('UNSU8MD-%')
");
$managed_accounts_count = mysqli_num_rows($sql);
echo '
';
echo $lang['srv_users_add_assigned_max_1'].' '.$managed_accounts_limit.' '.$lang['srv_users_add_assigned_max_2'];
// Manager na virtualkah ima omejitev koliko uporabnikov lahko pregleduje
if($managed_accounts_count >= $managed_accounts_limit){
echo ' ';
echo $lang['srv_users_add_assigned_max_reached'];
echo '
';
return;
}
elseif($managed_accounts_count > 0){
echo '
';
echo $lang['srv_users_add_assigned_current'].'
'.$managed_accounts_count.' '.$lang['of'].' '.$managed_accounts_limit.' ';
}
echo '';
}
echo '
';
}
/**
* Seznam vseh uporabnikov znotraj 1ke
*/
public function allUsersList(){
global $lang;
global $admin_type;
echo '
';
echo '';
echo '' . $lang['srv_survey_list_users_name'] . ' ';
echo '' . $lang['srv_survey_list_users_email'] . ' ';
echo '' . $lang['admin_type'] . ' ';
echo '' . $lang['lang'] . ' ';
echo '' . $lang['srv_survey_list_users_aai'] . ' ';
echo '' . $lang['srv_survey_list_users_survey_count'] . ' ';
echo '' . $lang['srv_survey_list_users_survey_archive_count'] . ' ';
echo '' . $lang['srv_manager_count'] . ' ';
echo '' . $lang['srv_manager_count_manager'] . ' ';
echo '' . $lang['users_gdpr_title'] . ' ';
echo '' . $lang['srv_survey_list_users_registred'] . ' ';
echo '' . $lang['srv_survey_list_users_last_login'] . ' ';
echo ''.$lang['edit2'].' ';
echo ' ';
echo '
';
// Dodajanje uporabnikov
echo '
';
// Admin lahko doda novega uporabnika v sistem (brez pregleda)
if($admin_type == '0'){
echo '
'.$lang['srv_users_add_new'].' ';
$this->dodajNovegaUporabnika();
echo ' ';
}
echo '';
}
/**
* Osnovni pregled uporabnikov za managerje in admine
*/
public function assignedUsersList(){
global $lang;
global $admin_type;
global $global_user_id;
$sqlU = sisplet_query("SELECT name, surname, email FROM users WHERE id='".$global_user_id."'");
$rowU = mysqli_fetch_array($sqlU);
// Naslov
echo '
';
if($admin_type == 0)
echo $lang['administrator'];
elseif($admin_type == 1)
echo $lang['manager'];
else
echo $lang['user'];
echo ': '.$rowU['name'].' '.$rowU['surname'].' ('.$rowU['email'].')';
echo ' ';
echo ' ';
// Tabela
echo '
'.$lang['srv_users_assigned_title'].' ';
//echo ''.$lang['srv_users_assigned_title'].' ';
echo '';
echo '';
echo '' . $lang['srv_survey_list_users_name'] . ' ';
echo '' . $lang['srv_survey_list_users_email'] . ' ';
echo '' . $lang['admin_type'] . ' ';
echo '' . $lang['lang'] . ' ';
echo '' . $lang['srv_survey_list_users_aai'] . ' ';
echo '' . $lang['srv_survey_list_users_survey_count'] . ' ';
echo '' . $lang['srv_survey_list_users_survey_archive_count'] . ' ';
echo '' . $lang['users_gdpr_title'] . ' ';
echo '' . $lang['srv_survey_list_users_registred'] . ' ';
echo '' . $lang['srv_survey_list_users_last_login'] . ' ';
echo ''.$lang['edit2'].' ';
echo ' ';
echo '
';
echo '';
// Dodajanje uporabnikov
echo '
';
// Manager ali admin lahko doda novega uporabnika pod pregled
echo '
'.$lang['srv_users_add_assigned'].' ';
$this->dodeljeniUporabniki();
echo ' ';
echo '';
}
/**
* Seznam vseh izbrisanih uporabnikov znotraj 1ke
*/
public function deletedUsersList(){
global $lang;
echo '
';
echo '';
echo ''.$lang['srv_survey_list_users_name'].' ';
echo ''.$lang['srv_survey_list_users_email'].' ';
echo ''.$lang['admin_type'].' ';
echo ''.$lang['lang'].' ';
echo ''.$lang['registered'].' ';
echo ' ';
echo '
';
}
/**
* Seznam vseh odjavljenih uporabnikov
* V bazi vsi uporabniki, ki so odjavljeni samo pridobijo status 0
*/
public function unsignedUsersList(){
global $lang;
echo '
';
echo '';
echo ''.$lang['srv_survey_list_users_name'].' ';
echo ''.$lang['srv_survey_list_users_email'].' ';
echo ''.$lang['admin_type'].' ';
echo ''.$lang['lang'].' ';
echo ''.$lang['registered'].' ';
echo ' ';
echo '
';
}
/**
* Seznam vseh uporabnikov, ki so prejeli email in ga niso potrdili
*/
public function unconfirmedMailUsersList(){
global $lang;
echo '
';
echo '';
echo ''.$lang['srv_survey_list_users_name'].' ';
echo ''.$lang['srv_survey_list_users_email'].' ';
echo ''.$lang['admin_type'].' ';
echo ''.$lang['lang'].' ';
echo ''.$lang['registered'].' ';
echo ''.$lang['edit2'].' ';
echo ' ';
echo '
';
}
/**
* Seznam uporabnikov, ki imajo dostop do SA modula
*/
public function SAuserListIndex(){
global $lang, $global_user_id, $admin_type;
if($admin_type > 0)
return false;
$sql_uporabniki = sisplet_query("SELECT id, u.name, u.surname, u.email, d.ustanova, d.aai_email, DATE_FORMAT(d.created_at, '%d.%m.%Y - %H:%i') AS created_at, d.updated_at FROM srv_hierarhija_dostop AS d LEFT JOIN users AS u ON u.id=d.user_id ORDER BY u.name", "obj");
echo '
Dodaj uporabniku SA dostop ';
if(empty($sql_uporabniki)){
echo $lang['srv_hierarchy_users_access_no_data'];
return false;
}
if(!empty($sql_uporabniki->name)) {
$uporabniki[0] = $sql_uporabniki;
}else{
$uporabniki = $sql_uporabniki;
}
echo '
';
echo '';
echo ''.$lang['srv_hierarchy_users_name'].' ';
echo ''.$lang['srv_hierarchy_users_email'].' ';
echo ''.$lang['srv_hierarchy_users_organization'].' ';
echo ''.$lang['srv_hierarchy_users_created'].' ';
echo ' ';
echo ' ';
foreach($uporabniki as $uporabnik) {
echo '';
echo ''.$uporabnik->name .' '. $uporabnik->surname.' ';
echo ''.$uporabnik->email.' ';
echo ''.$uporabnik->ustanova .' ';
echo ''.$uporabnik->created_at.' ';
echo '';
echo '';
echo ' ';
echo ' ';
}
echo '
';
}
// Prikaz naprednih modulov - NOVO (v urejanje->nastavitve)
function showAdvancedModules(){
global $lang, $site_url, $global_user_id, $admin_type;
# preberemo osnovne nastavitve
$row = SurveyInfo::getInstance()->getSurveyRow();
# preberemo vklopljene module
$modules = SurveyInfo::getSurveyModules();
$disabled = '';
$css_disabled = '';
if (isset($modules['slideshow'])){
$disabled = ' disabled="disabled"';
$css_disabled = ' gray';
}
if ($_GET['a'] == 'uporabnost'){
echo '
'.$lang['srv_uporabnost'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_4'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_4_3'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['uporabnost'])){
$this->uporabnost();
}
echo '
';
}
elseif (($_GET['a'] == A_HIERARHIJA_SUPERADMIN) && Hierarhija\HierarhijaHelper::preveriDostop($this->anketa)){
// Blok za vklop in izklop hierarhije skrijemo, če je hierarhija aktivna
if(!SurveyInfo::getInstance()->checkSurveyModule('hierarhija')) {
echo '
' . $lang['srv_hierarchy'] . ' ';
echo '' . $lang['srv_hierarchy_description'] . ' ';
echo ' ';
echo $lang['srv_hierarchy_on'] . ' ';
echo '';
echo '
'.$lang['srv_hierarchy_intro_select_title'].': ';
echo '
';
echo '
'.$lang['srv_hierarchy_intro_option_current'].'';
echo '
'.$lang['srv_hierarchy_intro_option_default'].' ';
echo '
'.$lang['srv_hierarchy_intro_option_library'].'';
echo '
';
echo '
';
echo '
';
echo '
';
echo '';
echo '
';
echo '
';
}else {
$hierarhija = new \Hierarhija\Hierarhija($this->anketa);
echo '
';
echo '
';
$hierarhija->displayHierarhijaNavigationSuperAdmin();
echo '
';
echo '
';
if($_GET['m'] == M_ADMIN_UREDI_SIFRANTE){
$hierarhija->hierarhijaSuperadminSifranti();
}elseif($_GET['m'] == M_ADMIN_UVOZ_SIFRANTOV){
$hierarhija->hierarhijaSuperadminUvoz();
}elseif($_GET['m'] == M_ADMIN_UPLOAD_LOGO){
$hierarhija->hierarhijaSuperadminUploadLogo();
}elseif($_GET['m'] == M_ADMIN_IZVOZ_SIFRANTOV){
$hierarhija->izvozSifrantov();
}elseif($_GET['m'] == M_ANALIZE){
if($_GET['r'] == 'custom'){
$HC = new \Hierarhija\HierarhijaPorocilaClass($this->anketa);
$HC->izvoz();
}else {
$HA = new HierarhijaAnalysis($this->anketa);
$HA->Display();
}
}elseif($_GET['m'] == M_HIERARHIJA_STATUS){
if($_GET['izvoz'] == 'status'){
// Izvoz tabele status
\Hierarhija\HierarhijaIzvoz::getInstance($this->anketa)->csvIzvozStatusa();
}else {
$hierarhija->statistikaHierjearhije();
}
}elseif($_GET['m'] == M_ADMIN_AKTIVACIJA){
$hierarhija->aktivacijaHierarhijeInAnkete();
}elseif($_GET['m'] == M_ADMIN_KOPIRANJE){
$hierarhija->kopiranjeHierarhijeInAnkete();
}elseif($_GET['m'] == M_UREDI_UPORABNIKE && $_GET['izvoz'] == 1) {
// za vse ostalo je ure uredi uporabnike - M_UREDI_UPORABNIKE
\Hierarhija\HierarhijaIzvoz::getInstance($this->anketa)->csvIzvozVsehUporabnikov();
}elseif($_GET['m'] == M_UREDI_UPORABNIKE && $_GET['izvoz'] == 'struktura-analiz') {
// za vse ostalo je uredi uporabnike - M_UREDI_UPORABNIKE
if(!empty($_GET['n']) && $_GET['n'] == 1){
\Hierarhija\HierarhijaIzvoz::getInstance($this->anketa)->csvIzvozStruktureZaObdelavo(false, true);
}else {
\Hierarhija\HierarhijaIzvoz::getInstance($this->anketa)->csvIzvozStruktureZaObdelavo();
}
}else{
$hierarhija->izberiDodajanjeUporabnikovNaHierarhijo();
}
echo '
';
echo '
';
}
}
elseif ($_GET['a'] == 'kviz'){
echo '
'.$lang['srv_kviz'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_6'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_6_4'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['quiz'])){
$sq = new SurveyQuiz($this->anketa);
$sq->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'voting'){
// Ce so vabila ze vklopljena ne pustimo vklopa
if(isset($modules['voting']) || (!isset($modules['voting']) && SurveyInfo::getInstance()->checkSurveyModule('email'))){
$disabled = ' disabled="disabled"';
$css_disabled = ' gray';
}
echo '
'.$lang['srv_voting'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_18'] . ' ';
echo ''.$lang['srv_voting_info'].' ';
// Opozorilo, da so vabila ze vklopljena in zato modula ni mogoce vklopiti
if(!isset($modules['voting']) && SurveyInfo::getInstance()->checkSurveyModule('email')){
echo ''.$lang['srv_voting_info_error'].' ';
}
echo '';
echo '
';
echo '
';
if(isset($modules['voting'])){
$sv = new SurveyVoting($this->anketa);
$sv->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'advanced_paradata'){
echo '
'.$lang['srv_advanced_paradata'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_16'] . ' ';
//echo ''.$lang['srv_vrsta_survey_note_6_4'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['advanced_paradata'])){
$sap = new SurveyAdvancedParadata($this->anketa);
$sap->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'json_survey_export'){
echo '
'.$lang['srv_json_survey_export'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_17'] . ' ';
echo '';
echo '
';
echo '
';
if(isset($modules['srv_json_survey_export'])){
$sjs = new SurveyJsonSurveyData($this->anketa);
$sjs->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'slideshow'){
echo '
'.$lang['srv_slideshow_fieldset_label'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_9'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_9_2'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['slideshow'])){
$ss = new SurveySlideshow($this->anketa);
$ss->ShowSlideshowSetings();
}
echo '
';
}
elseif ($_GET['a'] == 'vnos') {
echo '
'.$lang['srv_vnos'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_5'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_5_3'].' ';
echo '';
echo '
';
echo '
';
if($row['user_from_cms'] == 2 && $row['cookie'] == -1){
$this->vnos();
}
echo '
';
}
elseif ($_GET['a'] == A_TELEPHONE){
// Ce je anketar ne vidi teh nastavitev
$isAnketar = Common::isUserAnketar($this->anketa, $global_user_id);
if(!$isAnketar){
if(isset($modules['phone'])){
$sqlT = sisplet_query("SELECT count(*) AS cnt FROM srv_invitations_recipients WHERE ank_id='$this->anketa' AND deleted='0' AND phone!=''");
$rowT = mysqli_fetch_array($sqlT);
// Ce se nimamo nobene stevilke v bazi, pustimo da se lahko ugasne
if($rowT['cnt'] == 0){
echo '
'.$lang['srv_vrsta_survey_type_7'].' '.Help::display('srv_telephone_help').' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_7'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_7_3'].' ';
echo '';
}
else{
echo '
'.$lang['srv_vrsta_survey_type_7'].' '.Help::display('srv_telephone_help');
echo '
';
}
}
else{
echo '
'.$lang['srv_vrsta_survey_type_7'].' '.Help::display('srv_telephone_help').' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_7'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_7_3'].' ';
echo '';
}
echo '
';
}
echo '
';
if(isset($modules['phone'])){
$ST = new SurveyTelephone($this->anketa);
$ST->action($_GET['m']);
}
echo '
';
}
elseif ($_GET['a'] == A_CHAT){
global $site_path;
echo '
'.$lang['srv_vrsta_survey_type_14'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_14'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_14_1'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['chat'])){
$sc = new SurveyChat($this->anketa);
$sc->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == A_PANEL){
global $site_path;
echo '
'.$lang['srv_vrsta_survey_type_15'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_15'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_15_1'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['panel'])){
$sp = new SurveyPanel($this->anketa);
$sp->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == A_FIELDWORK){
global $site_path;
// tole bom dopolnil po potrebi
//
// Ce je anketar ne vidi teh nastavitev
$isAnketar = Common::isUserAnketar($this->anketa, $global_user_id);
if(!$isAnketar){
// tole bom dopo
}
echo '
';
$ST = new SurveyFieldwork($this->anketa);
$ST->action($_GET['m']);
echo '
';
}
elseif ($_GET['a'] == A_MAZA){
global $site_path;
echo '
'.$lang['srv_maza'].' ';
echo ' ';
echo $lang['srv_maza'] . ' ';
echo ''.$lang['srv_maza_note'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['maza'])){
$MS = new MAZA($this->anketa);
$MS ->display();
}
echo '
';
}
elseif ($_GET['a'] == A_WPN){
global $site_path;
echo '
'.$lang['srv_wpn'].' ';
echo ' ';
echo $lang['srv_wpn'] . ' ';
echo ''.$lang['srv_wpn_note'].' ';
echo '';
echo '
';
echo '
';
if(isset($modules['wpn'])){
$MS = new WPN($this->anketa);
$MS ->display();
}
echo '
';
}
elseif ($_GET['a'] == 'social_network'){
if ($_GET['m'] == 'respondenti' || $_GET['m'] == "") {
echo '
'.$lang['srv_vrsta_survey_type_8'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_8'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_8_3'].' ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['social_network'])){
$this->SN_Settings();
}
echo '
';
}
}
elseif ($_GET['a'] == A_360){
echo '
'.$lang['srv_vrsta_survey_type_11'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_11'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_11_1'].' ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['360_stopinj'])){
$S360 = new Survey360($this->anketa);
$S360->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == A_360_1KA){
echo '
'.$lang['srv_vrsta_survey_type_12'].' ';
echo ' ';
echo $lang['srv_vrsta_survey_type_12'] . ' ';
echo ''.$lang['srv_vrsta_survey_note_12_1'].' ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['360_stopinj_1ka'])){
$S360 = new Survey3601ka($this->anketa);
$S360->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'evoli'){
echo '
Evoli ';
echo ' ';
echo 'Evoli ';
echo 'Napredna poročila Evoli ';
echo '';
echo '
';
echo '
';
echo '
';
}
elseif ($_GET['a'] == 'evoli_teammeter'){
echo '
Evoli team meter ';
echo ' ';
echo 'Evoli team meter ';
echo 'Napredna poročila Evoli team meter ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['evoli_teammeter'])){
$evoliTM = new SurveyTeamMeter($this->anketa);
$evoliTM->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'evoli_quality_climate'){
echo '
Evoli quality climate ';
echo ' ';
echo 'Evoli quality climate ';
echo 'Napredna poročila Evoli quality climate ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['evoli_quality_climate'])){
$evoliTM = new SurveyTeamMeter($this->anketa);
$evoliTM->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'evoli_teamship_meter'){
echo '
Evoli teamship meter ';
echo ' ';
echo 'Evoli teamship meter ';
echo 'Napredna poročila Evoli teamship meter ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['evoli_teamship_meter'])){
$evoliTM = new SurveyTeamMeter($this->anketa);
$evoliTM->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'evoli_organizational_employeeship_meter'){
echo '
Evoli organizational employeeship meter ';
echo ' ';
echo 'Evoli organizational employeeship meter ';
echo 'Napredna poročila Evoli organizational employeeship meter ';
echo '';
echo '
';
echo '
';
// urejanje respondentov
if(isset($modules['evoli_organizational_employeeship_meter'])){
$evoliTM = new SurveyTeamMeter($this->anketa);
$evoliTM->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'evoli_employmeter'){
echo '
Evoli employ meter ';
echo ' ';
echo 'Evoli employeeship meter ';
echo 'Napredna poročila Evoli employeeship meter ';
echo '';
echo '
';
echo '
';
echo '
';
}
elseif ($_GET['a'] == 'mfdps'){
echo '
MFDPŠ ';
echo ' ';
echo 'MFDPŠ ';
echo 'Napredni izvozi MFDPŠ ';
echo '';
echo '
';
echo '
';
echo '
';
}
elseif ($_GET['a'] == 'borza'){
echo '
Borza ';
echo ' ';
echo 'Borza ';
echo 'Napredni izvozi Borza ';
echo '';
echo '
';
echo '
';
echo '
';
}
elseif ($_GET['a'] == 'mju'){
echo '
MJU ';
echo ' ';
echo 'MJU ';
echo 'Napredni izvozi MJU ';
echo '';
echo '
';
echo '
';
if(isset($modules['mju'])){
$sme = new SurveyMJUEnote($this->anketa);
$sme->displaySettings();
}
echo '
';
}
elseif ($_GET['a'] == 'excell_matrix'){
echo '
Excelleration matrix ';
echo ' ';
echo 'Excelleration matrix ';
echo ''.$lang['srv_vrsta_survey_note_16_1'].' ';
echo '';
echo '
';
echo '
';
echo '
';
}
}
function formatNumber ($value, $digit = 0, $form=null) {
# Kako izpisujemo decimalke in tisočice
$default_seperators = array( 0=>array('decimal_point'=>'.', 'thousands'=>','),
1=>array('decimal_point'=>',', 'thousands'=>'.'));
if (is_array($form) && isset($form['decimal_point'])&& isset($form['thousands'])) {
$decimal_point = $form['decimal_point'];
$thousands = $form['thousands'];
} else {
$decimal_point = $default_seperators['decimal_point'];
$thousands = $default_seperators['thousands'];
}
if ($value <> 0 && $value != null)
$result = round($value, $digit);
else
$result = "0";
$result = number_format($result, $digit, $decimal_point, $thousands);
return $result;
}
function globalUserSettings () {
global $lang, $global_user_id, $admin_type;
# polovimo nastavitve uporabnika
UserSetting::getInstance()->Init($global_user_id);
# ali zaklepamo anketo ob aktivaciji
$lockSurvey = UserSetting::getInstance()->getUserSetting('lockSurvey');
# ali je anketa aktivna ob aktivaciji
$autoActiveSurvey = UserSetting::getInstance()->getUserSetting('autoActiveSurvey');
# ali imamo star napreden vmesnik za moje ankete
$advancedMySurveys = UserSetting::getInstance()->getUserSetting('advancedMySurveys');
# ali imamo gumb za enklik kreiranje ankete
$oneclickCreateMySurveys = UserSetting::getInstance()->getUserSetting('oneclickCreateMySurveys');
# ali so komentarji aktivirani ob kreaciji ankete
$activeComments = UserSetting::getInstance()->getUserSetting('activeComments');
# uvod ob aktivaciji
$showIntro = UserSetting::getInstance()->getUserSetting('showIntro');
# zakljucek ob aktivaciji
$showConcl = UserSetting::getInstance()->getUserSetting('showConcl');
# ime za respondente ob aktivaciji
$showSurveyTitle = UserSetting::getInstance()->getUserSetting('showSurveyTitle');
# Prikaži bližnico za jezik v statusni vrstici
$showLanguageShortcut = UserSetting::getInstance()->getUserSetting('showLanguageShortcut');
echo '
';
}
function globalUserMyProfile () {
global $lang, $global_user_id, $admin_type, $site_domain, $site_url, $app_settings, $aai_instalacija;
// podatki prijavljenega uporabnika
$sql = sisplet_query("SELECT id, name, surname, email, type, gdpr_agree, last_login FROM users WHERE id = '$global_user_id'");
$row = mysqli_fetch_array($sql);
echo '
';
echo '
' . "\n\r";
echo ' ' . "\n\r";
echo ' ' . "\n\r";
echo ' '.$lang['edit_data'].' ';
echo ''.$lang['logged_in_as'].': '.$row['name'].' '.$row['surname'].'
';
if($row['type'] == '0')
$type = $lang['admin_admin'];
elseif($row['type'] == '1')
$type = $lang['admin_manager'];
else
$type = $lang['admin_narocnik'];
echo ''.$lang['your_status'].': '.$type.'
';
// Zadnja prijava
echo ''.$lang['srv_last_login'].': '.date('j.n.Y', strtotime($row['last_login'])).' '.$lang['ob'].' '.date('H:i', strtotime($row['last_login'])).'
';
// Trenutni paket funkcionalnosti
if($app_settings['commercial_packages']){
echo ' ';
$sqlA = sisplet_query("SELECT ua.time_activate, ua.time_expire, uap.id AS package_id, uap.name AS package_name
FROM user_access ua, user_access_paket uap
WHERE ua.usr_id='$global_user_id' AND uap.id=ua.package_id
");
$drupal_url = ($lang['id'] == '2') ? $site_url.'d/en/' : $site_url.'d/';
// Ni nobenega paketa
if(mysqli_num_rows($sqlA) == 0){
$package_string = '1ka ('.$lang['srv_access_package_free'].') - '.$lang['srv_narocila_buy'].' ';
}
else{
$rowA = mysqli_fetch_array($sqlA);
// Ce ima paket 2 ali 3
if($rowA['package_id'] == '2' || $rowA['package_id'] == '3'){
// Ce je paket ze potekel
if(strtotime($rowA['time_expire']) < time()){
$package_string = '';
$package_string .= $rowA['package_name'];
$package_string .= ' ('.$lang['srv_access_package_expire'].' '.date("d.m.Y", strtotime($rowA['time_expire'])).')';
$package_string .= ' ';
$package_string .= ' - '.$lang['srv_narocila_extend'].' ';
}
else{
$package_string = $rowA['package_name'];
$package_string .= ' ('.$lang['srv_access_package_valid'].' '.date("d.m.Y", strtotime($rowA['time_expire'])).')';
$package_string .= ' - '.$lang['srv_narocila_extend'].' ';
$package_string .= ''.$lang['srv_access_package_all'].' ';
}
}
else{
$package_string = $rowA['package_name'];
$package_string .= ' ('.$lang['srv_access_package_free'].')';
$package_string .= ' - '.$lang['srv_narocila_buy'].' ';
}
}
echo ''.$lang['srv_access_package'].': '.$package_string.'
';
}
echo ' ';
// AAI nima moznosti spreminjanja imena, priimka, emaila, gesla...
if($aai_instalacija){
echo ''.$lang['srv_profil_aai_warning'].' ';
}
else{
echo ' '.$lang['name'].': ';
echo '
';
echo ' '.$lang['surname'].' : ';
echo '
';
echo ' '.$lang['email'].' : ';
echo ' ';
echo ' ';
echo ' ';
$alternativni_emaili = User::getInstance()->allEmails('brez primarnega');
echo ' primaryEmail() == $row['email'] ? 'checked="checked"' : '').'> '.$lang['login_email_subscription'].' ';
if(!empty($alternativni_emaili)){
foreach($alternativni_emaili as $email) {
echo ' ';
echo ' ';
echo ' ';
echo ' active == 1 ? 'checked="checked"' : '').'> '.$lang['login_email_subscription'].' ';
}
}
echo '
';
echo '';
echo '
';
echo '
';
echo '
';
echo '
';
// Ce je vklopljen modul gorenje, preverimo ce ima se default geslo in izpisemo opozorilo
if (Common::checkModule('gorenje')){
if(SurveyGorenje::checkGorenjePassword())
echo ''.$lang['gorenje_password_warning'].'
';
}
// Obveščanje
echo ' '.$lang['password'].': ';
echo '
';
echo ' '.$lang['again'].': ';
echo '
';
// Prejemanje obvestil
$red_border = (isset($_GET['unsubscribe']) && $_GET['unsubscribe'] == '1') ? ' border:2px red solid; padding: 5px 10px;' : '';
echo ' '.$lang['srv_gdpr_user_options'].': '.Help::display('srv_gdpr_user_options').' ';
echo ' '.$lang['yes'].' ';
echo ' '.$lang['no1'].'
';
// Google 2 FA
$user_option = User::option($global_user_id, 'google-2fa-secret');
$user_option_validate = User::option($global_user_id, 'google-2fa-validation');
echo ' '.$lang['google_2fa'].': '.Help::display('srv_google_2fa_options').' ';
echo ' '.$lang['yes'].' ';
echo '
';
if (empty($user_option)) {
$google2fa = new \Sonata\GoogleAuthenticator\GoogleAuthenticator();
$googleSecret = $google2fa->generateSecret();
$googleLink = \Sonata\GoogleAuthenticator\GoogleQrUrl::generate($row['email'], $googleSecret, $site_domain);
//Prikaži QR kodo
echo '';
echo '
'.$lang['google_2fa_admin_enabled'].''.$googleSecret.'
';
echo '
'.$lang['google_2fa_admin_enabled_2'].'
';
echo '
';
echo '
';
echo '
Ko boste shranili nastavitve, bo nastavitev obveljala.
';
echo '
';
} elseif (! empty($user_option) && $user_option_validate == 'NOT') {
echo '';
echo '
'.$lang['google_2fa_admin_validate'].'
';
echo '
';
echo '
';
echo '
';
echo '
'.$lang['google_2fa_user_error_code'].'
';
echo '
';
} else {
echo '';
echo '
'.$lang['google_2fa_admin_deactivate'].'
';
echo '
';
echo '
';
echo '
'.$lang['google_2fa_user_error_code'].'
';
echo '
';
}
}
echo ' ';
echo ' ';
// Save gumb - ce ni AAI
if(!$aai_instalacija){
echo '
';
echo '
';
echo '
';
// div za prikaz uspešnosti shranjevanja
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo '
';
}
// Tabela aktivnosti (prijav)
echo '
'.$lang['srv_login_tracking_title'].' ';
echo '';
echo 'IP '.$lang['srv_login_tracking_date'].' '.$lang['srv_login_tracking_time'].' ';
$result = sisplet_query ("SELECT IP, kdaj FROM user_login_tracker WHERE uid='".$global_user_id."' ORDER BY kdaj desc");
if (mysqli_num_rows($result) == 0) {
echo $lang['srv_login_tracking_noData'];
}
else {
$count = 0;
while ($row = mysqli_fetch_array ($result)) {
echo '= 5 ? ' class="hide"' : '').'>';
echo ''.$row['IP'].' ';
echo ''.date('j.n.Y', strtotime($row['kdaj'])).' ';
echo ''.date('H:i', strtotime($row['kdaj'])).' ';
echo ' ';
$count++;
}
}
echo '
';
if(mysqli_num_rows($result) > 25){
echo ''.$lang['srv_invitation_nonActivated_more'].' ';
echo ' ';
}
echo '';
UserTrackingClass::init()->userTrackingDisplay();
echo '
';
}
function setGlobalUserSetting() {
global $lang, $global_user_id;
# polovimo nastavitve uporabnika
UserSetting::getInstance()->Init($global_user_id);
if (isset($_REQUEST['name']) && isset($_REQUEST['value'])) {
$name = $_REQUEST['name'];
$value = $_REQUEST['value'];
UserSetting::getInstance()->setUserSetting($name, $value);
UserSetting::getInstance()->saveUserSetting();
} else {echo 'napaka';}
}
function showLockSurvey() {
global $lang, $global_user_id, $admin_type;
UserSetting::getInstance()->Init($global_user_id);
# ali zaklepamo anketo ob aktivaciji
$lockSurvey = (int)UserSetting::getInstance()->getUserSetting('lockSurvey');
if ($admin_type == '0' || $admin_type == '1') {
echo '
';
echo ' ';
echo $lang['srv_survey_lock_note'];
echo ' ';
echo '
';
}
if ((int)$lockSurvey > 0) {
echo '
'.$lang['srv_unlock_popup'].'
';
}
}
function ajax_showTestSurveySMTP(){
ob_start();
global $lang, $global_user_id;
global $admin_type;
$error = false;
$msg = null;
$email_msg = $lang['srv_mail_test_smtp_test_success'];
$email_subject = $lang['srv_mail_test_smtp_test'];
$MA = new MailAdapter($this->anketa);
$settings = $MA->getSettingsFromRequest($_REQUEST);
$mailMode = $_REQUEST['SMTPMailMode'];
if (isset ($_COOKIE['uid'])) {
$email = base64_decode ($_COOKIE['uid']);
}
else {
$error = true;
$msg = $lang['srv_mail_test_smtp_mail_detect_error'];
}
if (validEmail($email)){
// preverimo password - ne sme bit prazen
if (($mailMode == 1 || $mailMode == 2) && empty($settings['SMTPPassword'])){ # password
$error = true;
$msg = $lang['srv_mail_test_smtp_password_error'];
}
}
else {
$error = true;
$msg = $lang['srv_mail_test_smtp_mail_detect_error'];
}
// preverjanje je ok.. poizkusimo poslat testni email
if ($error == false){
$MA->addRecipients($email);
$result = $MA->sendMailTest($email_msg, $email_subject, $mailMode, $settings);
if ($result == false){
$error = true;
$msg = $lang['srv_mail_test_smtp_not_possible'];
}
}
// če imamo napake jo izpišemo
if ($error == true){
echo $lang['srv_mail_test_smtp_error'].': '. $msg;
}
else{
echo $lang['srv_mail_test_smtp_sent'].': '.$email;
}
#vsebino shranimo v buffer
$content = ob_get_clean();
$popUp = new PopUp();
#$popUp->setId('divSurveySmtp');
$popUp->setHeaderText($lang['srv_mail_test_smtp']);
#dodamo vsebino
$popUp->setContent($content);
# dodamo gumb Prekliči
$button = new PopUpCancelButton();
$button->setCaption($lang['srv_zapri'])->setTitle($lang['srv_zapri']);
$popUp->addButton($button);
echo $popUp;
}
}
?>