diff --git a/admin/survey/SurveyAdminSettings.php b/admin/survey/SurveyAdminSettings.php index 502edd6a2..912eadb4e 100644 --- a/admin/survey/SurveyAdminSettings.php +++ b/admin/survey/SurveyAdminSettings.php @@ -1392,16 +1392,21 @@ class SurveyAdminSettings { $browser = SurveySetting::getInstance()->getSurveyMiscSetting('survey_browser'); $referal = SurveySetting::getInstance()->getSurveyMiscSetting('survey_referal'); $date = SurveySetting::getInstance()->getSurveyMiscSetting('survey_date'); - + + // Preverimo ce je vklopljen modul za volitve - potem ne pustimo nobenih preklopov + $voting_disabled = ''; + if(SurveyInfo::getInstance()->checkSurveyModule('voting')){ + $voting_disabled = ' disabled'; + } echo '
'; echo ''.$lang['srv_sledenje'].''; echo '

'.$lang['srv_metadata_desc'].'

'; - echo '
'; - echo '
'; - echo '
'; + echo '
'; + echo '
'; + echo '
'; echo '
'; @@ -1412,14 +1417,14 @@ class SurveyAdminSettings { echo '
'; echo ''.$lang['srv_sledenje_ip_title'].''; - echo ' '; + echo ' '; if($ip == 0 && $ip_show != 1) echo '
'.$lang['srv_sledenje_ip_alert'].'
'; echo '
'; if($ip == 0 && ($admin_type == 0 || $admin_type == 1)){ - echo ' '; + echo ' '; if($ip_show == 1) echo '
'.$lang['srv_show_ip_alert'].'
'; } @@ -1433,7 +1438,7 @@ class SurveyAdminSettings { echo '
'; echo ''.$lang['srv_sledenje_identifikatorji_title'].' '.Help::display('srv_email_with_data').''; - echo ' '; + echo ' '; if($row['show_email'] == 1) echo '
'.$lang['srv_show_mail_with_data3'].'
'; @@ -8699,6 +8704,12 @@ class SurveyAdminSettings { } elseif ($_GET['a'] == 'voting'){ + // Ce so vabila ze vklopljena ne pustimo vklopa + if(!isset($modules['voting']) && SurveyInfo::getInstance()->checkSurveyModule('email')){ + $disabled = ' disabled="disabled"'; + $css_disabled = ' gray'; + } + echo '
'.$lang['srv_voting'].''; echo ''; diff --git a/admin/survey/classes/surveyData/class.SurveyDataCollect.php b/admin/survey/classes/surveyData/class.SurveyDataCollect.php index 9698db74e..f53a5f022 100644 --- a/admin/survey/classes/surveyData/class.SurveyDataCollect.php +++ b/admin/survey/classes/surveyData/class.SurveyDataCollect.php @@ -1427,7 +1427,7 @@ class SurveyDataCollect{ $_dataLine .= STR_DLMT. (($rowUser['status'] == 5 || $rowUser['status'] == 6) && $rowUser['lurker'] == 0 ? '1' : '0'); # dodamo email (invitation)k podatkom - če je bilo poslano z emailom ali je uporabnik ročno vnesel email - $_dataLine .= STR_DLMT. ((int)$rowUser['inv_res_id'] > 0 + $_dataLine .= STR_DLMT. ((int)$rowUser['inv_res_id'] > 0 || (int)$rowUser['inv_res_id'] == -1 # uporabnik je bil dodan z email vabilom ? ((int)$rowUser['status'] == 1 || (int)$rowUser['status'] >= 3 # email je bil odposlan diff --git a/admin/survey/classes/surveyData/class.SurveyDataDisplay.php b/admin/survey/classes/surveyData/class.SurveyDataDisplay.php index c56e7458a..7996a5b9b 100644 --- a/admin/survey/classes/surveyData/class.SurveyDataDisplay.php +++ b/admin/survey/classes/surveyData/class.SurveyDataDisplay.php @@ -1110,19 +1110,22 @@ class SurveyDataDisplay{ echo ' '; echo ''; - // če imamo sistemske podatke katere moramo prikazovati ločeno - IDENTIFIKATORJI - if (!isset(self::$_HEADERS['_settings']['count_system_data_variables']) || (isset(self::$_HEADERS['_settings']['count_system_data_variables']) && (int)self::$_HEADERS['_settings']['count_system_data_variables'] > 0)) { - - echo '
  • '; - echo ' '; - echo '
  • '; - } - // Po novem vedno prikazemo checkbox identifikatorji - samo je odkljukan in disablan - else{ - echo '
  • '; - echo ' '; - echo '
  • '; - } + // Preverimo ce je vklopljen modul za volitve - potem nimamo identifikatorjev + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')){ + + // če imamo sistemske podatke katere moramo prikazovati ločeno - IDENTIFIKATORJI + if(!isset(self::$_HEADERS['_settings']['count_system_data_variables']) || (isset(self::$_HEADERS['_settings']['count_system_data_variables']) && (int)self::$_HEADERS['_settings']['count_system_data_variables'] > 0)) { + echo '
  • '; + echo ' '; + echo '
  • '; + } + // Po novem vedno prikazemo checkbox identifikatorji - samo je odkljukan in disablan + else{ + echo '
  • '; + echo ' '; + echo '
  • '; + } + } // datum echo '
  • '; diff --git a/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php b/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php index 72fe4c5bf..674fc622f 100644 --- a/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php +++ b/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php @@ -1302,8 +1302,7 @@ class SurveyInvitationsNew { function viewRecipients($errors = array(), $msgs = array()) { global $lang, $site_url, $admin_type; - //echo '

    '.$lang['srv_inv_edit_recipients_heading'].'

    '; - $noEmailing = SurveySession::get('inv_noEmailing'); + $noEmailing = SurveySession::get('inv_noEmailing'); $row = $this->surveySettings; @@ -1402,8 +1401,7 @@ class SurveyInvitationsNew { } # preštejemo koliko imamo vseh respondentov in koliko jih je brez e-maila - $sql_string_all = "SELECT id FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"; - $sql_query_all = sisplet_query($sql_string_all); + $sql_query_all = sisplet_query("SELECT id FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"); $count_all = mysqli_num_rows($sql_query_all); $sql_string_withot_email = "SELECT count(*) FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0' AND email IS NULL AND sent='0'"; @@ -1448,8 +1446,11 @@ class SurveyInvitationsNew { } } } + # dodamo še ostala polja - $fields['last_status'] = 1; + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')) + $fields['last_status'] = 1; + $sql_select_fields[] = 'i.last_status'; $fields['date_inserted'] = 1; $fields['date(date_expired)'] = 1; @@ -1460,9 +1461,6 @@ class SurveyInvitationsNew { $fields['list_id'] = 1; $sql_select_fields[] = 'i.list_id'; - #štetje vabil - #$fields['count_inv'] = 1; - #$sql_select_fields[] = 'count(siar.arch_id) AS count_inv'; #dodamo paginacijo in poiščemo zapise $page = isset($_GET['page']) ? $_GET['page'] : '1'; @@ -1537,6 +1535,7 @@ class SurveyInvitationsNew { $lists = array(); $lists['-1'] = array('name'=>$lang['srv_invitation_new_templist']); $lists['0'] = array('name'=>$lang['srv_invitation_new_templist_author']); + if (count($lids) > 0 ) { $sql_string_lists = "SELECT * from srv_invitations_recipients_profiles WHERE pid IN(".implode(',',$lids).") "; $sql_query_lists = sisplet_query($sql_string_lists); @@ -1544,6 +1543,7 @@ class SurveyInvitationsNew { $lists[$row_lists['pid']] = array('name'=>$row_lists['name']); } } + if (count($msgs) > 0) { echo ''; foreach($msgs as $msg) { @@ -1551,6 +1551,7 @@ class SurveyInvitationsNew { } echo ''; } + if (count($errors) > 0) { echo ''; foreach($errors as $error) { @@ -1558,16 +1559,18 @@ class SurveyInvitationsNew { } echo ''; } + if ($count_all > 0 ) { # dodamo filtriranje echo '
    '; echo ' '; - #echo ''; - echo '   
    '; - - /* // Prestavljeno na dno - if ($count_without_email > 0) { - # add to database without sending e-mail - - echo '
    '; - echo ''.$lang['srv_invitation_recipients_activate'].' '; - echo ''.$lang['srv_invitation_recipients_activate_here'].''; - echo '
    '; - }*/ - + echo '
    '; echo ''; echo ''; @@ -1667,16 +1660,10 @@ class SurveyInvitationsNew { echo ''; + echo ''; # checkbox echo ''; - /* - * # uredi - echo ''; - # izbrisi - echo ''; - - */ foreach ($fields AS $fkey =>$field) { if ($field == 1) { @@ -3958,9 +3945,9 @@ class SurveyInvitationsNew { // Pri volitvah zaradi anonimizacije ignoriramo vse identifikatorje if($voting){ $_r = sisplet_query("INSERT INTO srv_user - (ank_id, cookie, pass, last_status, time_insert, inv_res_id) + (ank_id, cookie, pass, last_status, inv_res_id) VALUES - ('".$this->sid."', '".$_user_data['cookie']."', '".$_user_data['password']."', '".$_user_data['status']."', NOW(), '".$_user_data['id']."') ON DUPLICATE KEY UPDATE cookie = '".$_user_data['cookie']."', pass='".$_user_data['password']."' + ('".$this->sid."', '".$_user_data['cookie']."', '".$_user_data['password']."', '".$_user_data['status']."', '-1') ON DUPLICATE KEY UPDATE cookie = '".$_user_data['cookie']."', pass='".$_user_data['password']."' "); } else{ @@ -4585,7 +4572,8 @@ class SurveyInvitationsNew { echo ''; echo ''; echo ''; - echo ''; + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')) + echo ''; echo ''; echo ''; @@ -4598,7 +4586,8 @@ class SurveyInvitationsNew { echo ''; echo ''; echo ''; - echo ''; + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')) + echo ''; echo ''; echo ''; } @@ -4810,6 +4799,10 @@ class SurveyInvitationsNew { function addSystemVariables($variables) { global $site_path, $lang; + // Pri modulu za volitve so responsi anonimni, zato nimamo nobenih sistemskih spremenljivk + if(SurveyInfo::getInstance()->checkSurveyModule('voting')) + return; + $system_fields = array( 'inv_field_email' => 'email', 'inv_field_firstname' => 'ime', @@ -5876,9 +5869,9 @@ class SurveyInvitationsNew { // Pri volitvah zaradi anonimizacije ignoriramo vse identifikatorje if($voting){ sisplet_query("INSERT INTO srv_user - (ank_id, cookie, pass, last_status, time_insert, inv_res_id) + (ank_id, cookie, pass, last_status, inv_res_id) VALUES - ('".$this->sid."', '".$user_data['cookie']."', '".$user_data['password']."', '".$user_data['status']."', NOW(), '".$user_data['id']."') ON DUPLICATE KEY UPDATE last_status=VALUES(last_status), inv_res_id=VALUES(inv_res_id) + ('".$this->sid."', '".$user_data['cookie']."', '".$user_data['password']."', '".$user_data['status']."', '-1') ON DUPLICATE KEY UPDATE last_status=VALUES(last_status) "); } else{ @@ -6736,7 +6729,9 @@ class SurveyInvitationsNew { echo ''; echo '
    '; + echo '
       '.$lang['srv_inv_recipients_password'].''.$lang['srv_inv_recipients_firstname'].''.$lang['srv_inv_recipients_lastname'].''.$lang['srv_inv_recipients_last_status'].''.$lang['srv_inv_recipients_last_status'].''.$lang['srv_inv_recipients_list_id'].'
    '.$sql_row['password'].''.$sql_row['firstname'].''.$sql_row['lastname'].''.$lang['srv_userstatus_'.$sql_row['last_status']].' ('.$sql_row['last_status'].')'.''.$lang['srv_userstatus_'.$sql_row['last_status']].' ('.$sql_row['last_status'].')'.''.$lists[$sql_row['list_id']].'
    '; + echo ''; echo ''; echo ''; @@ -6746,9 +6741,11 @@ class SurveyInvitationsNew { echo ''; echo ''; echo ''; - echo ''; + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')) + echo ''; echo ''; echo ''; + while ($sql_row = mysqli_fetch_assoc($sql_query)) { echo ''; echo ''; @@ -6760,11 +6757,14 @@ class SurveyInvitationsNew { echo ''; $status = $arch_user_max_status[$sql_row['res_id']]; echo ''; - echo ''; + if(!SurveyInfo::getInstance()->checkSurveyModule('voting')) + echo ''; echo ''; echo ''; } + echo '
    '.$lang['srv_inv_recipients_sent'].''.$lang['srv_inv_recipients_responded'].''.$lang['srv_inv_recipients_firstname'].''.$lang['srv_inv_recipients_lastname'].''.$lang['srv_inv_recipients_max_archive_status'].''.$lang['srv_inv_recipients_last_status'].''.$lang['srv_inv_recipients_last_status'].''.$lang['srv_inv_recipients_list_id'].'
    '.$sql_row['lastname'].''.$lang['srv_userstatus_'.$status].' ('.$status.')'.''.$lang['srv_userstatus_'.$sql_row['last_status']].' ('.$sql_row['last_status'].')'.''.$lang['srv_userstatus_'.$sql_row['last_status']].' ('.$sql_row['last_status'].')'.''.$lists[$sql_row['list_id']].'
    '; + echo ''; // inv_select_mail_preview echo ''; // id="arc_content" @@ -6875,8 +6875,20 @@ class SurveyInvitationsNew { echo ''; - # nov način z trackingom - if ($this->newTracking == true) { + // Pri volitvah prikazemo samo osnovne stevilke - zaradi anonimizacije ni trackinga + if(SurveyInfo::getInstance()->checkSurveyModule('voting')){ + + $userAccess = UserAccess::getInstance($global_user_id); + + // Ce so izklopljena ne prikazemo leve strani + if((int)$isEmail > 0 && $userAccess->checkUserAccess($what='invitations')){ + echo ''; + } + } + // Nov način z trackingom + elseif($this->newTracking == true) { $userAccess = UserAccess::getInstance($global_user_id); @@ -7215,7 +7227,8 @@ class SurveyInvitationsNew { } } - function displayInvitationStatusNew() { + // Prikaz statusov posiljanj + private function displayInvitationStatusNew() { global $lang, $admin_type, $global_user_id, $site_url, $site_path, $app_settings; $isEmail = (int)SurveyInfo::getInstance()->checkSurveyModule('email'); @@ -7230,15 +7243,17 @@ class SurveyInvitationsNew { echo '

    '; #koliko je vseh uporabnikov v bazi - $sql_string = "SELECT count(*) as cnt FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted ='0'"; - $sql_query = sisplet_query($sql_string); + $sql_query = sisplet_query("SELECT count(*) as cnt FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted ='0'"); list($cnt_all_in_db) = mysqli_fetch_row($sql_query); #zloopamo skozi posamezna pošiljanja in preštejemo vse potrebno - $sql_string = "SELECT sia.id, sia.tip, rec_in_db, DATE_FORMAT(sia.date_send,'%d.%m.%Y, %T') AS ds, u.name, u.surname, u.email FROM srv_invitations_archive AS sia INNER JOIN users AS u ON sia.uid = u.id WHERE ank_id = '".$this->sid."' ORDER BY sia.date_send ASC;"; - #$sql_string = "SELECT * FROM srv_invitations_archive WHERE ank_id = '".$this->sid."'"; - $sql_query = sisplet_query($sql_string); - + $sql_query = sisplet_query("SELECT sia.id, sia.tip, rec_in_db, DATE_FORMAT(sia.date_send,'%d.%m.%Y, %T') AS ds, u.name, u.surname, u.email + FROM srv_invitations_archive AS sia + INNER JOIN users AS u ON sia.uid = u.id + WHERE ank_id = '".$this->sid."' + ORDER BY sia.date_send ASC; + "); + $array_dashboard = array(); $array_archive_subdata = array(); $user_max_status = array(); @@ -7678,6 +7693,146 @@ class SurveyInvitationsNew { } } + // Prikaz statusov posiljanj pri volitvah + private function displayInvitationStatusVoting() { + global $lang, $admin_type, $global_user_id, $site_url, $site_path, $app_settings; + + $isEmail = (int)SurveyInfo::getInstance()->checkSurveyModule('email'); + + $userAccess = UserAccess::getInstance($global_user_id); + + // Email vabila so omogocena + if ((int)$isEmail > 0 && $userAccess->checkUserAccess($what='invitations')) { + + echo '

    '.$lang['srv_inv_nav_email_status'].''; + echo '
    '; + echo '

    '; + + #koliko je vseh uporabnikov v bazi in kolkim je bil mail poslan + $sql_count = sisplet_query("SELECT count(id) as cnt, sent + FROM srv_invitations_recipients + WHERE ank_id='".$this->sid."' AND deleted ='0' + GROUP BY sent + "); + + $cnt_all_in_db = 0; + $cnt_sent_in_db = 0; + while($row_count = mysqli_fetch_array($sql_count)){ + + $cnt_all_in_db += (int)$row_count['cnt']; + + if($row_count['sent'] == '1'){ + $cnt_sent_in_db += (int)$row_count['cnt']; + } + } + + + echo '

    '; + $this->displayInvitationStatusVoting(); + echo '
    '; + + // Vsi v bazi + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + // Poslani + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo '
    '.$lang['srv_inv_dashboard_tbl_all'].''.(int)$cnt_all_in_db.'-100%
    '.$lang['srv_inv_dashboard_tbl_send'].''.(int)$cnt_sent_in_db.''.((int)$cnt_sent_in_db > 0 ? '100%' : '0%').''.$this->formatNumber(((int)$cnt_sent_in_db > 0 ? (int)$cnt_sent_in_db*100/(int)$cnt_all_in_db : 0),0,'%').'
    '; + + echo '

    '; + echo ''; + echo '
  • '; + } + // Email vabila niso omogocena + else { + echo '
    '.$lang['srv_inv_nav_email_status'].''; + echo '
    '; + echo '

    '; + + echo $lang['srv_inv_dashboard_not_enabled']; + + # uporabnik nima pravic omogočit vabil + if (!$userAccess->checkUserAccess($what='invitations')) { + echo '
    '.$lang['srv_inv_dashboard_no_permissions']; + } + # uporabnik lahko vklopi email vabila + else { + echo ' '.$lang['srv_omogoci'].''; + } + + echo '

    '; + echo '
    '; + echo '
    '; + } + + + // predpripravimo podatke za vsa pošiljanja + /*$cnt_by_sendings = array(); + + $all_units_count = count($cnt_by_user); + if ($all_units_count > 0) { + foreach ($cnt_by_user AS $uid => $ucnt) { + $cnt_by_sendings[$ucnt]++; + } + + echo '
    '; + + #pregled po pošiljanjih + echo '
    '; + + echo ''; + echo ''; + echo '+ '; + echo '- '; + echo ''.$lang['srv_inv_nav_email_sending_status'].''; + echo ''; + echo Help::display('srv_inv_cnt_by_sending'); + echo ''; + + echo '
    '; + + echo '
    '; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + if ($cnt_by_sendings > 0) { + foreach ($cnt_by_sendings AS $cnt => $units) { + echo ''; + echo ''; + echo ''; + $percent = ($all_units_count > 0) ? $units / $all_units_count * 100 : 0; + echo ''; + echo ''; + } + } + echo ''; + echo ''; + echo ''; + $percent = ($all_units_count > 0) ? $all_units_count / $all_units_count * 100 : 0; + echo ''; + echo ''; + echo '
    '.$lang['srv_inv_sending_overview_cnt'].''.$lang['srv_inv_sending_overview_units'].''.$lang['srv_inv_sending_overview_percentage'].'
    '.$cnt.''.$units.''.Common::formatNumber ($percent,0,null,'%').'
    '.$lang['srv_inv_sending_overview_sum'].''.$all_units_count.''.Common::formatNumber ($percent,0,null,'%').'
    '; + echo '
    '; + echo '
    '; + }*/ + } + function showInvitationSettings() { global $lang, $admin_type, $global_user_id, $site_url, $site_path, $app_settings; @@ -7753,6 +7908,12 @@ class SurveyInvitationsNew { echo '
    '; echo '
    '; + + // Preverimo ce je vklopljen modul za volitve - potem ne pustimo nobenih preklopov + $voting_disabled = ''; + if(SurveyInfo::getInstance()->checkSurveyModule('voting')){ + $voting_disabled = ' disabled'; + } $individual = (int)$this->surveySettings['individual_invitation']; @@ -7763,8 +7924,8 @@ class SurveyInvitationsNew { echo ' '.Help::display('srv_user_base_individual_invitaition_note2').' '; else echo ' '.Help::display('srv_user_base_individual_invitaition_note').' '; - echo ''; - echo ''; + echo ''; + echo ''; echo '

    '; // Ce niso indvidualizirana imamo samo nacin posiljanja @@ -7773,8 +7934,8 @@ class SurveyInvitationsNew { // Nacin posiljanja (email, posta, sms...) echo '

    '; echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo '

    '; // Nacin dokumentiranja (posta, sms, drugo) @@ -7782,9 +7943,9 @@ class SurveyInvitationsNew { $noEmailingType = SurveySession::get('inv_noEmailing_type'); echo '

    '; echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; echo '

    '; } } @@ -7794,8 +7955,8 @@ class SurveyInvitationsNew { // Nacin posiljanja (email, posta, sms...) echo '

    '; echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo '

    '; // Nacin dokumentiranja (posta, sms, drugo) @@ -7803,9 +7964,9 @@ class SurveyInvitationsNew { $noEmailingType = SurveySession::get('inv_noEmailing_type'); echo '

    '; echo ''; - echo ''; - echo ''; - echo ''; + echo ''; + echo ''; + echo ''; echo '

    '; } @@ -7813,8 +7974,8 @@ class SurveyInvitationsNew { if($noEmailing != 1){ echo '

    '; echo ''; - echo ''; - echo ''; + echo ''; + echo ''; echo '

    '; } @@ -7834,7 +7995,7 @@ class SurveyInvitationsNew { echo '

    '; echo ''; - echo ''; + echo ''; echo '

    '; if($row['usercode_skip'] > 0){ echo '
    '; diff --git a/main/survey/app/Controllers/InitClass.php b/main/survey/app/Controllers/InitClass.php index 31bd509fe..fd0b0ea2b 100644 --- a/main/survey/app/Controllers/InitClass.php +++ b/main/survey/app/Controllers/InitClass.php @@ -800,23 +800,26 @@ class InitClass extends Controller if (!$sql2) echo mysqli_error($GLOBALS['connect_db']); $row2 = mysqli_fetch_array($sql2); - if (mysqli_num_rows($sql2) > 0) { // pravilna koda + // Pravilna koda + if (mysqli_num_rows($sql2) > 0) { - // Dodatno preverimo ce koda se ni potekla - $sqlC = sisplet_query("SELECT * FROM srv_invitations_recipients WHERE ank_id='".get('anketa')."' AND TRIM(password)='".$usercode."' AND DATE(NOW())>DATE(date_expired) AND date_expired!='0000-00-00 00:00:00'"); - if(mysqli_num_rows($sqlC) > 0){ - Display::getInstance()->displayNapaka(self::$lang['srv_expiredcode']); - die(); - } - - $rand = $row2['cookie']; + // Ce imamo vklopljen modul za volitve preskocimo kar nekaj korakov (anonimizacija) + if(!SurveyInfo::checkSurveyModule('voting')){ - # nastavimo še da je uporabnik odgovoril na anketo za nov način e-mail vabil - $sqlString = "UPDATE srv_invitations_recipients SET responded = '1', date_responded = NOW() WHERE ank_id='" . get('anketa') . "' AND TRIM(password) ='$usercode' AND responded = '0'"; - sisplet_query($sqlString); + // Dodatno preverimo ce koda se ni potekla + $sqlC = sisplet_query("SELECT * FROM srv_invitations_recipients WHERE ank_id='".get('anketa')."' AND TRIM(password)='".$usercode."' AND DATE(NOW())>DATE(date_expired) AND date_expired!='0000-00-00 00:00:00'"); + if(mysqli_num_rows($sqlC) > 0){ + Display::getInstance()->displayNapaka(self::$lang['srv_expiredcode']); + die(); + } - sisplet_query("COMMIT"); + # nastavimo še da je uporabnik odgovoril na anketo za nov način e-mail vabil + sisplet_query("UPDATE srv_invitations_recipients SET responded = '1', date_responded = NOW() WHERE ank_id='" . get('anketa') . "' AND TRIM(password) ='$usercode' AND responded = '0'"); + sisplet_query("COMMIT"); + } + + $rand = $row2['cookie']; $this->set_cookie('survey-' . get('anketa'), $rand, $this->expire); @@ -1199,12 +1202,16 @@ class InitClass extends Controller } # dodamo še tracking arhivov vabil if (get('user_inv_archive') > 0 && $inv_res_id > 0) { + # ignoriramo podvojene kluče - $updateString = "INSERT IGNORE INTO srv_invitations_tracking (inv_arch_id, time_insert, res_id, status) VALUES ('" . (int)get('user_inv_archive') . "',NOW(),'$inv_res_id','$status')"; - - $s = sisplet_query($updateString); + $s = sisplet_query("INSERT IGNORE INTO srv_invitations_tracking + (inv_arch_id, time_insert, res_id, status) + VALUES + ('" . (int)get('user_inv_archive') . "',NOW(),'$inv_res_id','$status') + "); if (!$s) echo mysqli_error($GLOBALS['connect_db']); - } else { + } + else { } # potrebno bo osvežit seznam anket