isSMTP() ? ' class="displayNone"' : '').'>';
//echo '
'.$lang['srv_email_setting_adapter2_note'].'';
echo '
'.$lang['srv_email_setting_settings'].'
';
echo '
';
echo '
';
# replyTo
echo '
';
echo ''.$lang['srv_email_setting_reply'].Help::display('srv_obvescanje_odgovorZa').'';
echo '';
echo '
';
echo '
';
echo '
';
echo '
';
#autentikacija
echo '
';
echo '
'.$lang['srv_email_setting_autentication'].'';
echo '
';
echo '
';
#Varnost SMTPSecure
echo '
';
echo '
'.$lang['srv_email_setting_encryption'].'';
echo '
';
echo '
';
echo '
';
echo '
';
echo '
';
#delay
echo '
';
echo ''.$lang['srv_email_setting_smtp_delay'].' '.Help::display('srv_inv_delay').':';
echo '';
echo '
';
echo '
';
echo '';
echo '';
echo '
';
// Gumb preveri nastavitve
echo '';
// Gumb shrani
echo '';
echo '
';
if ($_GET['s'] == '1') {
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 '
';
$this->anketa_aktivacija_note();
echo'
';
echo '
';
echo '
';
echo '
';
$sa = new SurveyAdmin(1, $this->anketa);
$sa->show_mailto_users('all', null);
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 '
'.$lang['srv_social_settings_text1'].'
';
echo '
'.$lang['srv_social_settings_text2'].$lang['srv_social_settings_text3'].$lang['srv_social_settings_text4'].'
';
echo '
'.$lang['srv_social_settings_text5'].''.$lang['srv_social_settings_text6'].'.
';
// 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() {
global $lang;
echo '
';
}
function arhivi_data() {
global $lang;
echo '
';
}
function arhivi_testdata() {
global $lang;
echo '
';
}
function arhivi_survey() {
global $lang;
// Izvoz samo ankete
if($_GET['m'] == 'survey'){
echo '
';
}
// Izvoz ankete s podatki
else{
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 '
';
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;
$preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
$preklici_url = "'". $site_url . $preklici_url . "'";
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 '
';
echo '
';
// Gumb shrani
echo '
';
echo '';
echo '';
echo '
';
echo '';
}
/**
* @desc prikaze vnose v anketo
*/
function displayIzvozi() {
global $lang, $site_url, $global_user_id;
$sdf = SurveyDataFile::get_instance();
$sdf->init($this->anketa);
$sdf->prepareFiles();
$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){
echo '
';
return false;
}
if ($_GET['m'] == 'excel') {
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 '
';
//SPSS izvozi
echo '
';
// EGO
echo '
';
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();
echo '
'.$lang['srv_dostop_users_list'].'
';
// Prikazemo samo userje ki lahko urejajo anketo
if($show_all == 0){
echo '
' . "\n";
echo '
';
//echo '
'.$lang['srv_dostop_users_removeselected'].'';
}
// Prikazemo vse userje, ki jih lahko uporabnik 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 '';
if ($checked != '')
echo ' ';
echo '
' . "\n";
}
}
}
}
// Dodajanje uredniskega dostopa do ankete
public function display_add_survey_dostop(){
global $lang;
global $admin_type;
echo '
';
// Admini in managerji lahko dodajo dostop komurkoli
if($admin_type == 0 || $admin_type == 1){
echo $lang['srv_dostop_adduserstxt_admin'].' '.AppSettings::getInstance()->getSetting('app_settings-app_name').'. ';
}
// Ostali uporabniki lahko dodajo dostop samo ze registriranim uporabnikom
else{
echo $lang['srv_dostop_adduserstxt'].' '.AppSettings::getInstance()->getSetting('app_settings-app_name').'! ';
}
// AAI ima poseben link na help
if(isAAI()){
echo $lang['srv_dostop_adduserstxt_aai_more'];
}
echo '
';
echo '
';
echo '
';
echo '';
echo '';
echo '
';
echo '
'.$lang['srv_dostop_adduserstxt_end'].'
';
//Opcijsko sporočilo
echo '
';
echo '
';
echo '';
echo '';
echo '
';
echo '
';
echo '';
echo '
';
echo '
';
// Gumb za dodajanje in posiljanje
echo '
';
echo '';
echo '
';
}
/**
* @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($this->anketa);
$p->dostop();
$jeziki = $p->get_all_translation_langs();
if(!empty($jeziki)){
$row = SurveyInfo::getInstance()->getSurveyRow();
foreach($jeziki as $key => $jezik){
echo '
';
echo '
';
echo '
';
echo '
';
}
}
}
break;
case 'finish_respondent': // respondent ki je zakljucil anketo
if ($isChecked) {
// preverimo, ali obstaja 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 vse 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;
}
}
echo '
';
echo '
';
if ($email_ok && $ime_ok) {
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']); }
echo '
'.$lang['srv_alert_respondent_note_ok_email_ime'].' ';
} 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 vprasamo, ali hoce se ime
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']); }
echo '
'.$lang['srv_alert_respondent_note_ok_email'].'
';
if(!$forma){
echo '
'.$lang['srv_alert_respondent_note_ime'].'';
echo ' '.$lang['srv_alert_respondent_note_link'].'
';
}
}
}
// preverimo sistemske nastavitve in spremenljivke ime
} else {
echo '
';
echo '
';
}
break;
case 'finish_respondent_cms': // respondent prepoznan iz CMS ko je izpolnil anketo
//respondent iz cms
echo '
';
echo '
';
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 '
';
$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']); }
echo '
'.$lang['srv_alert_respondent_cms_note_ok'].' ';
} else {
echo '
'.$lang['srv_alert_respondent_cms_note'].'';
echo ' '.$lang['srv_alert_respondent_cms_note_link'].'
';
}
}
break;
case 'finish_author': // obveščanje o izpolnjeni anketi
case 'expire_author': // obveščanje o poteku ankete
case 'active_author': // obveščanje o aktivaciji/deaktivaciej ankete
case 'delete_author': // obveščanje o izbrisu ankete
// preberemo nastavitve alertov
$sqlAlert = sisplet_query("SELECT * FROM srv_alert WHERE ank_id = '$this->anketa'");
if (!$sqlAlert)
echo mysqli_error($GLOBALS['connect_db']);
if (mysqli_num_rows($sqlAlert) > 0) {
$rowAlert = mysqli_fetch_array($sqlAlert);
}
else {
SurveyAlert::getInstance()->Init($this->anketa, $global_user_id);
$rowAlert = SurveyAlert::setDefaultAlertBeforeExpire();
}
// avtor ankete
if($forma) {
echo '
';
echo '
';
}
else {
echo '
';
echo '
';
}
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();
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 '
';
echo '
';
echo '
';
echo '
';
if ($what == 'finish_author') {
echo '
';
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
echo '';
}
echo '
';
echo '
';
}
// 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 '
';
echo '
';
echo '
';
echo '
';
if ($what == 'finish_author') {
echo '
';
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
echo '';
}
echo '
';
echo '
';
}
// 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 '
';
echo '
';
echo '
';
echo '
';
if ($what == 'finish_author') {
echo '
';
echo ' ';
echo ' ';
if ($row1['alert_complete_if']>0) { if ($b==null) $b = new Branching($this->anketa); $b->conditions_display($row1['alert_complete_if']); }
echo '';
}
echo '
';
echo '
';
}
}
}
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 '' . "\n\r";
echo '' . "\n\r";
echo '' . "\n\r";
echo '';
echo '
';
echo '
';
#echo '
';
echo '
' . $lang['usercode_required'] . help::display('usercode_required') . ': ';
echo '' . "\n\r";
echo '' . "\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 ' ' . "\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 '
';
}
}
/**
* 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
* Sistemske nastavitve: mora biti admin da ima dostop
*/
function anketa_nastavitve_system() {
global $lang;
global $site_url;
global $site_path;
global $admin_type;
global $global_user_id;
$preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
$preklici_url = "'". $site_url . $preklici_url . "'";
// Ni admin - nima pravic
if ($admin_type != 0) {
echo '
';
echo $lang['srv_settingsSystemNoRights'];
echo '
';
return;
}
echo '
';
echo '
';
echo '';
/* Missingi - zakomentirano, prenova po redizajnu
$smv = new SurveyMissingValues();
$smv->SystemFilters();
*/
// save gumb
echo '
';
echo '';
echo '';
echo '
';
// div za prikaz uspešnosti shranjevanja
if ($_GET['s'] == '1') {
echo '
';
echo '';
}
echo '
';
}
/**
* nastavitve predvidenih casov za komponente ankete in vprasanj iz katerih se nato racuna celotna dolzina vprasanj in ankete
*
*/
function anketa_nastavitve_predvidenicasi () {
global $lang;
global $site_url;
$preklici_url = ltrim(str_replace("&s=1","",$_SERVER['REQUEST_URI']),"/");
$preklici_url = "'". $site_url . $preklici_url . "'";
echo '
';
}
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;
$total_brez_pogojev = 0;
foreach ($expected_time AS $key => $val) {
if ($val[1] > $max)
$max = $val[1];
$total += $val[0];
$total_brez_pogojev += $val[1];
}
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';
$skupni_cas_brez_pogojev = (bcdiv($total_brez_pogojev, 60, 0)>0?bcdiv($total_brez_pogojev, 60, 0).'
min ':'').''.round(bcmod($total_brez_pogojev, 60), 0).'
s';
if ($samo_izracunaj_skupini_cas == 1)
return $skupni_cas;
echo '
';
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 '
';
//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 '
';
// 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 '
';
}
}
/**
* 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
$skupni_cas = (bcdiv($total, 60, 0)>0?bcdiv($total, 60, 0).'
min ':'').''.round(bcmod($total, 60), 0).'
s';
$predviden_cas = (bcdiv($total_predvideni, 60, 0)>0?bcdiv($total_predvideni, 60, 0).'
min ':'').''.round(bcmod($total_predvideni, 60), 0);
echo '
';
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 '
';
}
/**
* 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 '
'.$lang['srv_rezanje_meja_zg'].':
';
echo '
'.$lang['srv_rezanje_1'].'
';
echo '
'.$lang['srv_rezanje_meja_sp'].': '.$lang['srv_rezanje_predvidenega'].'
';
echo '
'.$lang['srv_rezanje_meja_zg'].': '.$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 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;
}
public function menu_komentarji () {
global $lang;
// Prestejemo komentarje (nereseni/vsi)
$sas = new SurveyAdminSettings();
$comment_count = $sas->testiranje_komentarji_count();
echo '
';
echo '
';
// Komentarji na vprasanja
$question_comment_link = 'window.location.href=\'index.php?anketa=' . $this->anketa . '&a=' . A_KOMENTARJI_ANKETA . '\'; return false;';
echo '
';
echo $lang['srv_testiranje_komentarji_anketa_title'];
echo ' (' . ($comment_count['survey_resp']['unresolved'] + $comment_count['survey_admin']['unresolved']); //nerešeni
echo '/' . ($comment_count['survey_resp']['all'] + $comment_count['survey_admin']['all']) . ')'; //vsi
echo '
';
// Komentarji na anketo
$survey_comment_link = 'window.location.href=\'index.php?anketa=' . $this->anketa . '&a=' . A_KOMENTARJI . '\'; return false;';
echo '
';
echo $lang['srv_testiranje_komentarji_title'];
echo ' (' . $comment_count['question']['unresolved'];
echo '/' . $comment_count['question']['all'] . ')';
echo '
';
echo '
'; //#komentarji_list
//Link na nastavitev komentarjev
$d = new Dostop();
# nastavitve komentarjev
if ($d->checkDostopSub('edit')) {
echo '
';
}
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();
$commentmarks_who = SurveySetting::getInstance()->getSurveyMiscSetting('commentmarks_who');
$rowa = SurveyInfo::getInstance()->getSurveyRow();
# VV: privzeto naj bodo samo nerešeni komentarji
if (!isset($_GET['only_unresolved'])) {
$_GET['only_unresolved'] = 1;
}
# samo nerešeni komentarji
if ($commentmarks == 0) {
echo '
';
echo '';
echo '';
echo '
';
}
else {
echo $lang['move_show'].':
';
}
$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 '';
$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){
$i=0;
while ($row = mysqli_fetch_array($sql)) {
if (($i != 0 && $sortpostorder==0) || ($i < $rows && $sortpostorder==1)) {
echo '';
}
$i++;
}
}
// Nimamo komentarja
else{
// Ce so komentarji aktivirani
if($survey_comment != ''){
echo '
'.$lang['srv_no_comments_solved'].'
';
}
else{
echo '
'.$lang['srv_no_comments'].'
';
}
}
// Dodajanje novega komentarja
echo '';
echo '';
echo '
';
// Splosni komentarji respondentov - desno
echo '
';
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) {
while ($row = mysqli_fetch_array($sql)) {
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 '
';
echo '
'; // div.komentarji_anketa_holder
}
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();
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();
# 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;
}
// vsa vprasanja
echo '';
// 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;
$b = new Branching($this->anketa);
echo '
';
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 '
';
// Blok
if($row1['tip'] == 1){
echo '
';
echo 'BLOCK ('.$row1['number'].')';
echo '
';
}
// If
else{
echo '
';
$b->conditions_display($if_id);
echo '
';
}
echo '
';
echo ' ';
echo ''; #question_comment_holder
}
}
// Gre za navadno vprasanje
else{
$spr_id = $element['spr_id'];
$sql1 = sisplet_query("SELECT tip, 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 '- ';
$b->vprasanje($spr_id);
echo '
';
if ($admin_type <= $question_note_view || $question_note_view == '') {
if ($row1['note'] != '') {
echo '';
}
}
echo ''; #div.question_comment_holder
}
}
}
echo '
';
if ($c == 0) {
echo '
';
}
}
else {
echo '
';
echo $lang['srv_no_comments'];
echo '
';
}
echo '
'; // branching
echo '
';
}
/**
* 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(random_int(1, PHP_INT_MAX).'@'.$_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 = random_int(1, mysqli_num_rows($sql1));
else
$rand = random_int(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 = random_int(1, mysqli_num_rows($sql1));
$j=1;
while ($row1 = mysqli_fetch_array($sql1)) {
$rand = random_int(-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 = random_int(1, mysqli_num_rows($sql2));
else
$rand = random_int(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 = random_int(1, mysqli_num_rows($sql2));
$j=1;
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($row['id'], $isTestData=true)) {
$rand = random_int(-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 = random_int(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 = random_int(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 : random_int(0,1)==0);
if($make_input){
$lat = floatval(random_int(454000, 466500)/10000);
$lng = floatval(random_int(136000, 163900)/10000);
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = random_int(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 = random_int(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 : random_int(0,1)==0);
if($make_input){
$lat = floatval(random_int(454000, 466500)/10000);
$lng = floatval(random_int(136000, 163900)/10000);
// Ce imamo samo veljavne imamo vedno vrednost
if($only_valid == 1)
$vrednost = $this->randomString();
else
$vrednost = random_int(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 = random_int(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 = random_int(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 = random_int(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 (random_int(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 = random_int(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 (random_int(0,1) == 0) $rows = floor($rows/2);
$array = range(1, $rows);
shuffle($array);
}
elseif (random_int(0,1) == 0) {
if (random_int(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(random_int(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 = random_int(1, mysqli_num_rows($sql2));
else
$rand = random_int(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 = random_int(1, mysqli_num_rows($sql2));
$j=1;
while ($row2 = mysqli_fetch_array($sql2)) {
if ($s->checkSpremenljivka($rowC['id'], $isTestData=true)) {
$rand = random_int(-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 = random_int(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 = random_int(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 '
'.$lang['srv_testni_nakonec'].'
';
echo '
'.$lang['srv_delete_testdata'].' ('.$total_rows.')';
if ($total_rows > 0) {
echo '';
$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 '
';
echo '';
}
}
}
/**
* 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[random_int(0, $chars_length)];
// Generate random string
for ($i = 1; $i < $length; $i = strlen($string))
{
// Grab a random character from our list
$r = $chars[random_int(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 = random_int(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 '
';
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 '