From f24bb5c2989ae25bad9d95df89a2470c9667a576 Mon Sep 17 00:00:00 2001 From: pero1203 Date: Fri, 23 Apr 2021 12:20:53 +0200 Subject: [PATCH] Squalo vabila - v grobem zakljucena --- admin/survey/SurveyAdminAjax.php | 29 +- admin/survey/classes/class.SurveyCopy.php | 3 +- .../mobile/class.MobileSurveyAdmin.php | 85 +++++ .../class.SurveyInvitationsNew.php | 38 +-- .../class.SurveyInvitationsSqualo.php | 291 +++++++++++------- admin/survey/script/invitations.js | 15 + sql/update2.sql | 4 + 7 files changed, 329 insertions(+), 136 deletions(-) create mode 100644 admin/survey/classes/mobile/class.MobileSurveyAdmin.php diff --git a/admin/survey/SurveyAdminAjax.php b/admin/survey/SurveyAdminAjax.php index 9f3b27339..0a70dcd2c 100644 --- a/admin/survey/SurveyAdminAjax.php +++ b/admin/survey/SurveyAdminAjax.php @@ -849,12 +849,33 @@ class SurveyAdminAjax { $this->anketa = $_POST['anketa']; } - $MA = new MailAdapter($this->anketa, $type='alert'); + // Squalo vklopljen + if(isset($_POST['squalo_mode'])){ + + // Squalo vklopljen + if($_POST['squalo_mode'] == '1'){echo $_POST['squalo_mode']; + sisplet_query("UPDATE srv_anketa_module SET vrednost='2' WHERE ank_id='".$this->anketa."' AND modul='email'"); + } + // Squalo izklopljen + else{ + sisplet_query("UPDATE srv_anketa_module SET vrednost='1' WHERE ank_id='".$this->anketa."' AND modul='email'"); + + $MA = new MailAdapter($this->anketa, $type='alert'); - $settings = $MA->getSettingsFromRequest($_REQUEST); - $mode = $_REQUEST['SMTPMailMode']; + $settings = $MA->getSettingsFromRequest($_REQUEST); + $mode = $_REQUEST['SMTPMailMode']; + + $MA->setSettings($mode, $settings); + } + } + else{ + $MA = new MailAdapter($this->anketa, $type='alert'); - $MA->setSettings($mode, $settings); + $settings = $MA->getSettingsFromRequest($_REQUEST); + $mode = $_REQUEST['SMTPMailMode']; + + $MA->setSettings($mode, $settings); + } } } elseif ($_GET['m'] == 'predvidenicasi') { // predvideni casi foreach($_POST AS $key => $val) { diff --git a/admin/survey/classes/class.SurveyCopy.php b/admin/survey/classes/class.SurveyCopy.php index 54dfd087c..cbb98b5ef 100644 --- a/admin/survey/classes/class.SurveyCopy.php +++ b/admin/survey/classes/class.SurveyCopy.php @@ -485,8 +485,7 @@ class SurveyCopy { 'edit_time' => "NOW()", 'folder' => "'1'", 'forum' => "'0'", - 'thread' => "'0'", - 'old_email_style' => "'0'"); + 'thread' => "'0'"); # user_id ni enak če je anketa na drugem strežniku zato v tem primeru damo -1 da na drugem strežniku vemo da je to kopija od drugod if (self::$destSite != 0) { diff --git a/admin/survey/classes/mobile/class.MobileSurveyAdmin.php b/admin/survey/classes/mobile/class.MobileSurveyAdmin.php new file mode 100644 index 000000000..d046c6e91 --- /dev/null +++ b/admin/survey/classes/mobile/class.MobileSurveyAdmin.php @@ -0,0 +1,85 @@ +'; + + // Meni + $this->displayMobileMenu(); + + // Logo + echo ''; + + echo ''; + } + + // Izris menija + private function displayMobileMenu(){ + + echo '
'; + + // Izris uporabniških podatkov v dropdownu + $this->displayMobileMenuUser(); + + // Izris glavne navigacije v dropdownu + $this->displayMobileMenuNavigation(); + + // Izris akcij za anketo (kopiraj, brisi...) v dropdownu + $this->displayMobileMenuActions(); + + echo '
'; + + } + + // Izris uporabniških podatkov v dropdownu + private function displayMobileMenuUser(){ + + echo '
'; + + echo '
'; + } + + // Izris glavne navigacije v dropdownu + private function displayMobileMenuNavigation(){ + + echo '
'; + + echo 'Urejanje'; + echo 'Testiranje'; + echo 'Objava'; + echo 'Podatki'; + echo 'Analiza'; + + echo '
'; + } + + // Izris akcij za anketo (kopiraj, brisi...) v dropdownu + private function displayMobileMenuActions(){ + + echo '
'; + + echo 'Kopiraj anketo'; + echo 'Brisi anketo'; + + echo '
'; + } + + +} diff --git a/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php b/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php index dd1132cb3..f00772780 100644 --- a/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php +++ b/admin/survey/classes/surveyEmails/class.SurveyInvitationsNew.php @@ -13,6 +13,7 @@ define('GROUP_PAGINATE', 4); # po kolko strani grupira pri paginaciji define('REC_ON_PAGE', 10); # kolko zapisov na stran pri urejanju respondentov define('REC_ON_SEND_PAGE', 20); # kolko zapisov na stran pri pošiljanju define('NOTIFY_INFO1KA', 5); # Nad koliko emaili obveščamo info@1ka.si + set_time_limit(2400); # 30 minut class SurveyInvitationsNew { @@ -3884,7 +3885,7 @@ class SurveyInvitationsNew { // Loop po prejemnikih in posiljanje mailov $squalo = new SurveyInvitationsSqualo($this->sid); - if($squalo->squaloActive()){ + if($squalo->getSqualoActive()){ $sending_results = $squalo->sendSqualoInvitations($sql_query, $sending_data); } else{ @@ -5931,32 +5932,22 @@ class SurveyInvitationsNew { $delimit = $convertTypes['delimit']; } - #echo $delimit.$lang['srv_inv_recipients_count_inv']; echo $convertTypes['newLine']; $sqlString = "SELECT sir.*, IF(sirp.name IS NULL, '".$lang['srv_invitation_new_templist_author']."', sirp.name) AS list_name " ." FROM srv_invitations_recipients AS sir" ." LEFT JOIN srv_invitations_recipients_profiles AS sirp ON (sir.list_id = sirp.pid)" - #." LEFT JOIN srv_invitations_archive_recipients AS siar ON (sir.id = siar.rec_id)" - ." WHERE sir.ank_id = '$this->sid' AND deleted='0' ORDER BY id"; - - /* - ." FROM srv_invitations_recipients AS sir" - ." LEFT JOIN srv_invitations_recipients_profiles AS sirp ON (sir.list_id = sirp.pid)" - ." LEFT JOIN srv_invitations_archive_recipients AS siar ON (sir.id = siar.rec_id)" - ." WHERE sir.ank_id = '$this->sid' AND deleted='0' GROUP BY siar.rec_id ORDER BY id"; - */ - #$sqlString = "SELECT * FROM srv_invitations_recipients WHERE ank_id = '$this->sid' AND deleted='0' ORDER BY id"; - + $sqlQuery = sisplet_query($sqlString); if (mysqli_num_rows($sqlQuery)) { + while ($sql_row = mysqli_fetch_assoc($sqlQuery)) { + foreach ($this->inv_variables_excel AS $vkey => $inv_variable) { echo $sql_row[$inv_variable].$convertTypes['delimit']; } - #echo $sql_row['count_inv']; echo $convertTypes['newLine']; } } @@ -10314,21 +10305,22 @@ class SurveyInvitationsNew { // Squalo $squalo = new SurveyInvitationsSqualo($this->sid); - if($squalo->squaloEnabled()){ + if($squalo->getSqualoEnabled()){ // Vklop squalo - echo '
'; + echo '

'; echo ''.$lang['srv_squalo'].': '; - echo '

'; + echo '

'; // Squalo nastavitve... - echo '
'; + echo '
'; echo $lang['srv_squalo_active']; @@ -10337,7 +10329,7 @@ class SurveyInvitationsNew { // Izbira streznika - echo '
'; + echo '
'; // Opozorilo, ce imamo vklopljena vabila, da gre za iste nastavitve echo '

'.$lang['srv_email_server_settings_warning'].'

'; @@ -10372,7 +10364,7 @@ class SurveyInvitationsNew { #1KA $enkaSettings = $MA->get1KASettings($raziskave=true); - echo '
is1KA() || $squalo->squaloActive() ? ' class="displayNone"' : '').'>'; + echo '
is1KA() || $squalo->getSqualoActive() ? ' class="displayNone"' : '').'>'; echo '
'.$lang['srv_email_setting_settings'].''; echo '
'; # from @@ -10403,7 +10395,7 @@ class SurveyInvitationsNew { #GMAIL - Google $enkaSettings = $MA->getGoogleSettings(); - echo '
isGoogle() || $squalo->squaloActive() ? ' class="displayNone"' : '').'>'; + echo '
isGoogle() || $squalo->getSqualoActive() ? ' class="displayNone"' : '').'>'; echo '
'.$lang['srv_email_setting_adapter1_note'].'
'; echo '
'.$lang['srv_email_setting_settings'].'
'; # from @@ -10419,7 +10411,7 @@ class SurveyInvitationsNew { #SMTP $enkaSettings = $MA->getSMTPSettings(); - echo '
isSMTP() || $squalo->squaloActive() ? ' class="displayNone"' : '').'>'; + echo '
isSMTP() || $squalo->getSqualoActive() ? ' class="displayNone"' : '').'>'; echo '
'.$lang['srv_email_setting_adapter2_note'].'
'; echo '
'.$lang['srv_email_setting_settings'].'
'; # from - NICE diff --git a/admin/survey/modules/mod_squalo/class.SurveyInvitationsSqualo.php b/admin/survey/modules/mod_squalo/class.SurveyInvitationsSqualo.php index 0e4e029c3..d6638b008 100644 --- a/admin/survey/modules/mod_squalo/class.SurveyInvitationsSqualo.php +++ b/admin/survey/modules/mod_squalo/class.SurveyInvitationsSqualo.php @@ -26,11 +26,11 @@ class SurveyInvitationsSqualo { } - public function squaloEnabled(){ + public function getSqualoEnabled(){ return $this->squaloEnabled; } - public function squaloActive(){ + public function getSqualoActive(){ return $this->squaloActive; } @@ -53,12 +53,19 @@ class SurveyInvitationsSqualo { if(!isset($squalo_user) || $squalo_user == '' || !isset($squalo_key) || $squalo_key == '') return false; - return false; + return true; } // Preverimo ce je squalo vklopljen na anketi private function checkSqualoActive(){ + $vabila_type = SurveyInfo::getSurveyModules('email'); + + // Vklopljen squalo + if($vabila_type === '2'){ + return true; + } + return false; } @@ -72,11 +79,12 @@ class SurveyInvitationsSqualo { // Preverimo ce je vklopljen modul za volitve $voting = SurveyInfo::getInstance()->checkSurveyModule('voting'); - # če mamo SEO + // Ce mamo SEO $nice_url = SurveyInfo::getSurveyLink(); - // Polovimo sistemske spremenljivke - $sys_vars = $this->getSystemVars(); + // Ali imamo individualizirana vabila s kodo + $surveySettings = SurveyInfo::getInstance()->getSurveyRow(); + $individual = (int)$surveySettings['individual_invitation']; # zakeširamo user_id za datapiping $arryDataPiping = array(); @@ -113,7 +121,7 @@ class SurveyInvitationsSqualo { $duplicated[$email] = 1; - $individual = (int)$this->surveySettings['individual_invitation']; + if ( ($individual == 1 && trim($email) != '' && trim($password) != '') || ($individual == 0 && trim($email) != '') ){ @@ -135,7 +143,7 @@ class SurveyInvitationsSqualo { 'urllink' => $url, 'firstname' => $sql_row['firstname'], 'lastname' => $sql_row['lastname'], - 'email' => $sql_row['email'], + //'email' => $sql_row['email'], 'code' => $sql_row['password'], 'password' => $sql_row['password'], 'phone' => $sql_row['phone'], @@ -145,8 +153,16 @@ class SurveyInvitationsSqualo { $recipients[] = array( 'email' => $sql_row['email'], + 'name' => $sql_row['firstname'], + 'surname' => $sql_row['lastname'], 'custom_attributes' => $custom_attributes - ); + ); + + $_user_data = $sql_row; + $send_users_data[] = $_user_data; + + $send_emails[] = $email; + $send_ids[] = $sql_row['id']; } } @@ -156,21 +172,25 @@ class SurveyInvitationsSqualo { $list_id = $this->createList($list_name, $recipients); - // Ustvarimo mail in posljemo - $squalo_sending_result = $this->sendEmail($sending_data['subject_text'], $sending_data['body_text'], $list_id, $sending_data['from_email'], $sending_data['from_name'], $sending_data['reply_to_email']); + // Ce so vsi prejemniki ok dodani na seznam, ustvarimo mail in posljemo + if($list_id != false) + $squalo_sending_result = $this->sendEmail($sending_data['subject_text'], $sending_data['body_text'], $list_id, $sending_data['from_email'], $sending_data['from_name'], $sending_data['reply_to_email']); + + // Napaka pri squalo posiljanju oz. dodajanju - zabelezimo kot da ni noben ok poslan + if(!$squalo_sending_result || !$list_id){ - // Napaka pri squalo posiljanju - zabelezimo kot da ni noben ok poslan - if(!$squalo_sending_result){ + $send_error = $send_emails; + $send_error_ids = $send_ids; + foreach($send_users_data as $key => $val){ + $val['status'] = 2; + $send_users_data[$key] = $val; + } + $send_ok = array(); $send_ok_ids = array(); - $send_users_data = array(); - - $send_error = array(); - $send_error_ids = array(); - # updejtamo status za errorje if (count($send_error_ids) > 0) { @@ -180,113 +200,133 @@ class SurveyInvitationsSqualo { } } + $results = array( + 'send_ok' => $send_ok, + 'send_ok_ids' => $send_ok_ids, + 'send_users_data' => $send_users_data, + 'send_error' => $send_error, + 'send_error_ids' => $send_error_ids, + ); + + return $results; } + + // Ok squalo posiljanje - zabelezimo da so bili vsi ok poslani - else{ + $send_ok = $send_emails; + $send_ok_ids = $send_ids; - $send_ok = array(); - $send_ok_ids = array(); + foreach($send_users_data as $key => $val){ + $val['status'] = 1; + $send_users_data[$key] = $val; + } - $send_users_data = array(); + $send_error = array(); + $send_error_ids = array(); - $send_error = array(); - $send_error_ids = array(); + // updejtamo userja da mu je bilo poslano - SQUALO je vedno vse ok + if (count($send_ok_ids) > 0) { + + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET sent='1', date_sent='".$sending_data['date_sent']."' WHERE id IN (".implode(',',$send_ok_ids).")"); + if (!$sqlQuery) { + $error = mysqli_error($GLOBALS['connect_db']); + } + + // statuse popravimo samo če vabilo še ni bilo poslano ali je bila napaka + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET last_status='1' WHERE id IN (".implode(',',$send_ok_ids).") AND last_status IN ('0','2')"); + if (!$sqlQuery) { + $error = mysqli_error($GLOBALS['connect_db']); + } - // updejtamo userja da mu je bilo poslano - SQUALO je vedno vse ok - if ( count($send_ok_ids) > 0) { - - $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET sent='1', date_sent='".$sending_data['date_sent']."' WHERE id IN (".implode(',',$send_ok_ids).")"); + // Pri volitvah za sabo pobrisemo podatke preko katerih bi lahko povezali prejemnike z responsi + if($voting){ + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients + SET cookie='', password='' + WHERE id IN (".implode(',',$send_ok_ids).") AND sent='1' AND last_status='1' AND ank_id='".$this->anketa."' + "); if (!$sqlQuery) { $error = mysqli_error($GLOBALS['connect_db']); } - - // statuse popravimo samo če vabilo še ni bilo poslano ali je bila napaka - $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET last_status='1' WHERE id IN (".implode(',',$send_ok_ids).") AND last_status IN ('0','2')"); - if (!$sqlQuery) { - $error = mysqli_error($GLOBALS['connect_db']); - } - - // Pri volitvah za sabo pobrisemo podatke preko katerih bi lahko povezali prejemnike z responsi - if($voting){ - $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients - SET cookie='', password='' - WHERE id IN (".implode(',',$send_ok_ids).") AND sent='1' AND last_status='1' AND ank_id='".$this->anketa."' - "); - if (!$sqlQuery) { - $error = mysqli_error($GLOBALS['connect_db']); - } - } } } // če mamo personalizirana email vabila, userje dodamo v bazo - /*if ($individual == 1) { + if ($individual == 1) { + + if (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) + $db_table = '_active'; + + $inv_variables_link = array('email'=>'email','geslo'=>'password','ime'=>'firstname','priimek'=>'lastname','naziv'=>'salutation','telefon'=>'phone','drugo'=>'custom','odnos'=>'relation','last_status'=>'last_status','sent'=>'sent','responded'=>'responded','unsubscribed'=>'unsubscribed'); + + $sys_vars = $this->getSystemVars(); + + foreach($send_users_data as $_user_data){ + + // dodamo še userja v srv_user da je kompatibilno s staro logiko + $strInsertDataText = array(); + $strInsertDataVrednost = array(); + + // Pri volitvah zaradi anonimizacije ignoriramo vse identifikatorje + if($voting){ + $_r = sisplet_query("INSERT INTO srv_user + (ank_id, cookie, pass, last_status, inv_res_id) + VALUES + ('".$this->anketa."', '".$_user_data['cookie']."', '".$_user_data['password']."', '".$_user_data['status']."', '-1') ON DUPLICATE KEY UPDATE cookie = '".$_user_data['cookie']."', pass='".$_user_data['password']."' + "); + + // Ce ne belezimo parapodatka za cas responsa, anonimno zabelezimo cas zadnjega responsa + sisplet_query("UPDATE srv_anketa SET last_response_time=NOW() WHERE id='".$this->anketa."'"); + } + else{ + $_r = sisplet_query("INSERT INTO srv_user + (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) + VALUES + ('".$this->anketa."', '".$_user_data['email']."', '".$_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']."' + "); + } + $usr_id = mysqli_insert_id($GLOBALS['connect_db']); + + if ($usr_id) { + + // dodamo še srv_userbase in srv userstatus + sisplet_query("INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES ('".$usr_id."','0',NOW(),'".$global_user_id."')"); + sisplet_query("INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES ('".$usr_id."', '0', '0', NOW())"); + + + + // dodamo še podatke za posameznega userja za sistemske spremenljivke + foreach ($sys_vars AS $sid => $spremenljivka) { + + $_user_variable = $inv_variables_link[$spremenljivka['variable']]; + + if (trim($_user_data[$_user_variable]) != '' && $_user_data[$_user_variable] != null) { + if($spremenljivka['variable'] == 'odnos') + $strInsertDataVrednost[] = "('".$sid."','".$spremenljivka['vre_id'][trim($_user_data[$_user_variable])]."','".$usr_id."')"; + else + $strInsertDataText[] = "('".$sid."','".$spremenljivka['vre_id']."','".trim($_user_data[$_user_variable])."','".$usr_id."')"; + } + } + } - // dodamo še userja v srv_user da je kompatibilno s staro logiko - $strInsertDataText = array(); - $strInsertDataVrednost = array(); - - // Pri volitvah zaradi anonimizacije ignoriramo vse identifikatorje - if($voting){ - $_r = sisplet_query("INSERT INTO srv_user - (ank_id, cookie, pass, last_status, inv_res_id) - VALUES - ('".$this->anketa."', '".$_user_data['cookie']."', '".$_user_data['password']."', '".$_user_data['status']."', '-1') ON DUPLICATE KEY UPDATE cookie = '".$_user_data['cookie']."', pass='".$_user_data['password']."' - "); - - // Ce ne belezimo parapodatka za cas responsa, anonimno zabelezimo cas zadnjega responsa - sisplet_query("UPDATE srv_anketa SET last_response_time=NOW() WHERE id='".$this->anketa."'"); - } - else{ - $_r = sisplet_query("INSERT INTO srv_user - (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) - VALUES - ('".$this->anketa."', '".$_user_data['email']."', '".$_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']."' - "); - } - $usr_id = mysqli_insert_id($GLOBALS['connect_db']); - - if ($usr_id) { - - // dodamo še srv_userbase in srv userstatus - sisplet_query("INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES ('".$usr_id."','0',NOW(),'".$global_user_id."')"); - sisplet_query("INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES ('".$usr_id."', '0', '0', NOW())"); + // Pri volitvah zaradi anonimizacije ne vsatvimo nicesar v sistemske spremenljivke + if(!$voting){ - // dodamo še podatke za posameznega userja za sistemske spremenljivke - foreach ($sys_vars AS $sid => $spremenljivka) { - - $_user_variable = $this->inv_variables_link[$spremenljivka['variable']]; - - if (trim($_user_data[$_user_variable]) != '' && $_user_data[$_user_variable] != null) { - if($spremenljivka['variable'] == 'odnos') - $strInsertDataVrednost[] = "('".$sid."','".$spremenljivka['vre_id'][trim($_user_data[$_user_variable])]."','".$usr_id."')"; - else - $strInsertDataText[] = "('".$sid."','".$spremenljivka['vre_id']."','".trim($_user_data[$_user_variable])."','".$usr_id."')"; + // vstavimo v srv_data_text + if (count($strInsertDataText) > 0) { + $strInsert = "INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES "; + $strInsert .= implode(',',$strInsertDataText); + sisplet_query($strInsert); + } + // vstavimo v srv_data_vrednost + if (count($strInsertDataVrednost) > 0) { + $strInsert = "INSERT INTO srv_data_vrednost".$db_table." (spr_id, vre_id, usr_id) VALUES "; + $strInsert .= implode(',',$strInsertDataVrednost); + sisplet_query($strInsert); } } - } - else { - // lahko da user že obstaja in je šlo za duplicated keys - } - - // Pri volitvah zaradi anonimizacije ne vsatvimo nicesar v sistemske spremenljivke - if(!$voting){ - - // vstavimo v srv_data_text - if (count($strInsertDataText) > 0) { - $strInsert = "INSERT INTO srv_data_text".$this->db_table." (spr_id, vre_id, text, usr_id) VALUES "; - $strInsert .= implode(',',$strInsertDataText); - sisplet_query($strInsert); - } - // vstavimo v srv_data_vrednost - if (count($strInsertDataVrednost) > 0) { - $strInsert = "INSERT INTO srv_data_vrednost".$this->db_table." (spr_id, vre_id, usr_id) VALUES "; - $strInsert .= implode(',',$strInsertDataVrednost); - sisplet_query($strInsert); - } - } - }*/ + } + } $results = array( @@ -327,6 +367,7 @@ class SurveyInvitationsSqualo { // Napaka pri ustvarjanju seznama if($recipient_id == '0'){ echo 'Napaka pri dodajanju prejemnika '.$email.' na Squalo seznam.'; + return false; } } @@ -365,6 +406,7 @@ class SurveyInvitationsSqualo { return $result; } + private static function squaloDatapiping($text){ $text_fixed = str_replace( @@ -400,4 +442,39 @@ class SurveyInvitationsSqualo { return $text_fixed; } + + private function getSystemVars(){ + + $inv_variables = array('email','password','ime','priimek','naziv','telefon','drugo','odnos'); + + // polovimo sistemske spremenljivke z vrednostmi + $qrySistemske = 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."' AND variable IN ("."'" . implode("','",$inv_variables)."') + ORDER BY g.vrstni_red, s.vrstni_red + "); + $sys_vars = array(); + $sys_vars_ids = array(); + + while ($row = mysqli_fetch_assoc($qrySistemske)) { + $sys_vars[$row['id']] = array('id'=>$row['id'], 'variable'=>$row['variable'],'naslov'=>$row['naslov']); + $sys_vars_ids[] = $row['id']; + } + + $sqlVrednost = sisplet_query("SELECT spr_id, id AS vre_id, vrstni_red, variable FROM srv_vrednost WHERE spr_id IN(".implode(',',$sys_vars_ids).") ORDER BY vrstni_red ASC "); + while ($row = mysqli_fetch_assoc($sqlVrednost)) { + + // Ce gre za odnos imamo radio + if($sys_vars[$row['spr_id']]['variable'] == 'odnos'){ + + if(!isset($sys_vars[$row['spr_id']]['vre_id'][$row['vrstni_red']])) + $sys_vars[$row['spr_id']]['vre_id'][$row['variable']] = $row['vre_id']; + } + elseif (!isset($sys_vars[$row['spr_id']]['vre_id'])) { + $sys_vars[$row['spr_id']]['vre_id'] = $row['vre_id']; + } + } + + return $sys_vars; + } } \ No newline at end of file diff --git a/admin/survey/script/invitations.js b/admin/survey/script/invitations.js index 289b330d8..ec31e91fc 100644 --- a/admin/survey/script/invitations.js +++ b/admin/survey/script/invitations.js @@ -1745,3 +1745,18 @@ function smtpAAIAccept(){ else $('#aai_smtp_button').hide(); } + + +// SQUALO +function squaloSwitch(){ + + if($('#squalo_mode').prop('checked')){ + $('#send_mail_mode0, #send_mail_mode1, #send_mail_mode2, .mail_mode_switch').hide(); + //$('.squalo_settings').show(); + } + else{ + $('.squalo_settings').hide(); + $('#send_mail_mode2, .mail_mode_switch').show(); + } +} + diff --git a/sql/update2.sql b/sql/update2.sql index 6f3934efe..f504c1957 100644 --- a/sql/update2.sql +++ b/sql/update2.sql @@ -9487,3 +9487,7 @@ UPDATE misc SET value='21.03.17' WHERE what="version"; ALTER TABLE srv_anketa ADD last_response_time DATETIME NOT NULL AFTER edit_time; UPDATE misc SET value='21.03.30' WHERE what="version"; + +ALTER TABLE srv_anketa DROP COLUMN old_email_style; + +UPDATE misc SET value='21.03.30' WHERE what="version";