diff --git a/admin/survey/classes/class.SurveyInvitationsNew.php b/admin/survey/classes/class.SurveyInvitationsNew.php index 74ea91701..fc425a41e 100644 --- a/admin/survey/classes/class.SurveyInvitationsNew.php +++ b/admin/survey/classes/class.SurveyInvitationsNew.php @@ -3651,11 +3651,6 @@ class SurveyInvitationsNew { $dont_send_duplicated = true; } - #echo '
'; - - #$send_type = (int)$_POST['send_type']; - #$checkboxes = explode(',',$_POST['checkboxes']); - $rids = $_POST['rids']; $return = array(); @@ -3672,20 +3667,23 @@ class SurveyInvitationsNew { echo ''; echo $lang['srv_invitation_note6']; echo ''; - exit(); - } else { - # polovimo sporočilo in prejemnike - $sql_string_m = "SELECT id, subject_text, body_text, reply_to, isdefault, comment, naslov, url FROM srv_invitations_messages WHERE ank_id = '$this->sid' AND isdefault='1'"; - - $sql_query_m = sisplet_query($sql_string_m); - if (mysqli_num_rows($sql_query_m) > 0 ) { + + exit(); + } + else { + // polovimo sporočilo in prejemnike + $sql_query_m = sisplet_query("SELECT id, subject_text, body_text, reply_to, isdefault, comment, naslov, url FROM srv_invitations_messages WHERE ank_id = '$this->sid' AND isdefault='1'"); + + if (mysqli_num_rows($sql_query_m) > 0 ) { $sql_row_m = mysqli_fetch_assoc($sql_query_m); - } else { + } + else { #nimamo še vsebine sporočila skreiramo privzeto. echo ''; echo $lang['srv_invitation_note6']; echo ''; - exit(); + + exit(); } } @@ -3694,29 +3692,41 @@ class SurveyInvitationsNew { $body_text = $sql_row_m['body_text']; $msg_url = $sql_row_m['url']; - $message_naslov = $sql_row_m['naslov']; - # naslov za odgovor je avtor ankete + $message_naslov = $sql_row_m['naslov']; + + // naslov za odgovor je avtor ankete if ($this->validEmail($sql_row_m['reply_to'])) { $reply_to = $sql_row_m['reply_to']; - } else { + } + else { $reply_to = Common::getInstance()->getReplyToEmail(); - } - # prejeminki besedila - $sql_string = "SELECT id,firstname, lastname, email, password, password, cookie, phone, salutation, custom, relation FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted='0' AND id IN(".implode(',',$rids).") order by id"; - $sql_query = sisplet_query($sql_string); + } + + // prejeminki besedila + $sql_query = sisplet_query("SELECT id, firstname, lastname, email, password, password, cookie, phone, salutation, custom, relation + FROM srv_invitations_recipients + WHERE ank_id = '".$this->sid."' AND deleted='0' AND id IN (".implode(',',$rids).") + ORDER BY id + "); - # polovimo sistemske spremenljivke z vrednostmi - $strSistemske = "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->sid."' AND variable IN("."'" . implode("','",$this->inv_variables)."') ORDER BY g.vrstni_red, s.vrstni_red"; - $qrySistemske = sisplet_query($strSistemske); + // 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->sid."' AND variable IN ("."'" . implode("','",$this->inv_variables)."') + ORDER BY g.vrstni_red, s.vrstni_red + "); $sys_vars = array(); $sys_vars_ids = array(); - while ($row = mysqli_fetch_assoc($qrySistemske)) { + + 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 "); + + $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 + + // 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']; @@ -3728,13 +3738,13 @@ class SurveyInvitationsNew { # zakeširamo user_id za datapiping $arryDataPiping = array(); - $strDataPiping = "SELECT id,inv_res_id FROM srv_user WHERE ank_id='$this->sid' AND inv_res_id IS NOT NULL"; - $qryDataPiping = sisplet_query($strDataPiping); + $qryDataPiping = sisplet_query("SELECT id,inv_res_id FROM srv_user WHERE ank_id='$this->sid' AND inv_res_id IS NOT NULL"); while (list($dpUid,$dpInvResId) = mysqli_fetch_row($qryDataPiping)) { if ((int)$dpInvResId > 0 && (int)$dpUid > 0) { $arryDataPiping[$dpInvResId] = (int)$dpUid; } - } + } + # array za rezultate $send_ok = array(); $send_ok_ids = array(); @@ -3756,62 +3766,64 @@ class SurveyInvitationsNew { if (!Common::checkModule('gorenje')){ global $site_url, $global_user_id; - $sqlinfo_string = "SELECT email, name, surname FROM users WHERE id = '".$global_user_id."'"; - $sqlinfo_query = sisplet_query($sqlinfo_string); + $sqlinfo_query = sisplet_query("SELECT email, name, surname FROM users WHERE id = '".$global_user_id."'"); list($infoEmail,$infoName,$infoSurname) = mysqli_fetch_row($sqlinfo_query); - $infourl = 'anketi'; + + $infourl = 'anketi'; $format = $lang['srv_inv_send_finish_note']; $info1ka_mass_email_note = sprintf($format, $infoName, $infoSurname, $infoEmail, $infourl, $numRows); - try - { + try{ $MA = new MailAdapter($this->sid, $type='admin'); $MA->addRecipients('info@1ka.si'); $resultX = $MA->sendMail($info1ka_mass_email_note, 'Masovno pošiljanje vabil (poslanih več kot '.NOTIFY_INFO1KA.')'); } - catch (Exception $e) - { + catch (Exception $e){ } } } - #Pripravimo arhiv pošiljanj, da dobimo arch_id - $sql_string_all = "SELECT count(*) FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"; - $sql_query_all = sisplet_query($sql_string_all); + // Pripravimo arhiv pošiljanj, da dobimo arch_id + $sql_query_all = sisplet_query("SELECT count(*) FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"); list($count_all) = mysqli_fetch_row($sql_query_all); $archive_naslov = 'mailing_'.date("d.m.Y").', '.date("H:i:s"); - $sqlString = "INSERT INTO srv_invitations_archive (id, ank_id, date_send, subject_text, body_text, uid, comment, naslov, rec_in_db)" - ." VALUES (NULL , '$this->sid', '$date_sent', '".addslashes($subject_text)."', '".addslashes($body_text)."', '$global_user_id','$comment','$archive_naslov','$count_all')"; - $sqlQuery = sisplet_query($sqlString); + $sqlQuery = sisplet_query("INSERT INTO srv_invitations_archive + (id, ank_id, date_send, subject_text, body_text, uid, comment, naslov, rec_in_db) + VALUES + (NULL , '$this->sid', '$date_sent', '".addslashes($subject_text)."', '".addslashes($body_text)."', '$global_user_id','$comment','$archive_naslov','$count_all') + "); $arch_id = mysqli_insert_id($GLOBALS['connect_db']); $duplicated = array(); while ($sql_row = mysqli_fetch_assoc($sql_query)) { - #password == code + $password = $sql_row['password']; $email = $sql_row['email']; if ($dont_send_duplicated == true && isset($duplicated[$email])) { $duplicated[$email] ++; continue; - } + } + $duplicated[$email] = 1; - $individual = (int)$this->surveySettings['individual_invitation']; - if (($individual == 1 && trim($email) != '' && trim($password) != '') - || ($individual == 0 && trim($email) != '' )){ + $individual = (int)$this->surveySettings['individual_invitation']; + + if ( ($individual == 1 && trim($email) != '' && trim($password) != '') || ($individual == 0 && trim($email) != '') ){ - # odvisno ali imamo url za jezik. + // odvisno ali imamo url za jezik. if ($msg_url != null && trim($msg_url) != '' ) { $url = $msg_url . ($individual == 1 ? '?code='.$password : ''); - } else { + } + else { $url = $nice_url . ($individual == 1 ? '&code='.$password : ''); } $url .= '&ai='.(int)$arch_id; - #odjava + + // odjava $unsubscribe = $site_url . 'admin/survey/unsubscribe.php?anketa=' . $this->sid . '&code='.$password; $user_body_text = str_replace( @@ -3847,21 +3859,19 @@ class SurveyInvitationsNew { ); - # naredimo DataPiping; + // naredimo DataPiping; if (isset($arryDataPiping[$sql_row['id']])) { $user_body_text = Common::getInstance()->dataPiping($user_body_text, $arryDataPiping[$sql_row['id']], 0); } $resultX = null; - try - { + try{ $MA = new MailAdapter($this->sid, $type='invitation'); $MA->addRecipients($email); $resultX = $MA->sendMail($user_body_text, $subject_text); } - catch (Exception $e) - { + catch (Exception $e){ // todo fajn bi bilo zalogirat kaj se dogaja $__error = $e->getMessage(); $__errStack = $e->getTraceAsString(); @@ -3873,54 +3883,108 @@ class SurveyInvitationsNew { $send_ok_ids[] = $sql_row['id']; $_user_data['status'] = 1; # poslalo ok - } else { + } + else { // ni poslalo $send_error[] = $email; $send_error_ids[] = $sql_row['id']; $_user_data['status'] = 2; } - $send_users_data[] = $_user_data; + $send_users_data[] = $_user_data; + + + // updejtamo userja da mu je bilo poslano - PO NOVEM TO DELAMO SPROTI + if ( count($send_ok_ids) > 0) { + + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET sent = '1', date_sent = '".$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 status za errorje + if ( count($send_error_ids) > 0) { + + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET last_status = GREATEST(last_status,2) WHERE id IN (".implode(',',$send_error_ids).") AND last_status IN ('0')"); + if (!$sqlQuery) { + $error = mysqli_error($GLOBALS['connect_db']); + } + } + + + // če mamo personalizirana email vabila, userje dodamo v bazo + if ($individual == 1) { + + // dodamo še userja v srv_user da je kompatibilno s staro logiko + $strInsertDataText = array(); + $strInsertDataVrednost = array(); + + $_r = sisplet_query("INSERT INTO srv_user + (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) + VALUES + ('".$this->sid."', '".$_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 = $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."')"; + } + } + } + else { + // lahko da user že obstaja in je šlo za duplicated keys + } + + // 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); + } + } } } - # updejtamo userja da mu je bilo poslano - if ( count($send_ok_ids) > 0) { - $sqlString = "UPDATE srv_invitations_recipients SET sent = '1', date_sent = '".$date_sent."' WHERE id IN (".implode(',',$send_ok_ids).")"; - $sqlQuery = sisplet_query($sqlString); - if (!$sqlQuery) { - $error = mysqli_error($GLOBALS['connect_db']); - } - #statuse popravimo samo če vabilo še ni bilo poslano ali je bila napaka - $sqlString = "UPDATE srv_invitations_recipients SET last_status = '1' WHERE id IN (".implode(',',$send_ok_ids).") AND last_status IN ('0','2')"; - $sqlQuery = sisplet_query($sqlString); - if (!$sqlQuery) { - $error = mysqli_error($GLOBALS['connect_db']); - } - } - # updejtamo status za errorje - if ( count($send_error_ids) > 0) { - $sqlString = "UPDATE srv_invitations_recipients SET last_status = GREATEST(last_status,2) WHERE id IN (".implode(',',$send_error_ids).") AND last_status IN ('0')"; - $sqlQuery = sisplet_query($sqlString); - if (!$sqlQuery) { - $error = mysqli_error($GLOBALS['connect_db']); - } - } - $comment = $_POST['comment']; - - #dodajmo še userje v povezovalno tabelo + // dodajmo še userje v povezovalno tabelo (arhiv) if ($arch_id > 0) { - # updejtamo še tabelo arhivov - $sqlString = "UPDATE srv_invitations_archive SET cnt_succsess='".count($send_ok_ids)."', cnt_error='".count($send_error_ids)."' WHERE id ='$arch_id'"; - $sqlQuery = sisplet_query($sqlString); + + // updejtamo še tabelo arhivov + $sqlQuery = sisplet_query("UPDATE srv_invitations_archive SET cnt_succsess='".count($send_ok_ids)."', cnt_error='".count($send_error_ids)."' WHERE id ='$arch_id'"); if (!$sqlQuery) { $error = mysqli_error($GLOBALS['connect_db']); } - # za arhive + // za arhive $_archive_recipients = array(); - # za tracking + // za tracking $_tracking = array(); if (count($send_ok_ids) > 0) { @@ -3929,7 +3993,8 @@ class SurveyInvitationsNew { #status 1=pošta poslana $_tracking[] = "('$arch_id',NOW(),'$id','1')"; } - } + } + if (count($send_error_ids) > 0) { foreach ( $send_error_ids AS $id) { $_archive_recipients[] = "('$arch_id','$id','0')"; @@ -3942,7 +4007,8 @@ class SurveyInvitationsNew { $sqlString = 'INSERT INTO srv_invitations_archive_recipients (arch_id,rec_id,success) VALUES '; $sqlString .= implode(', ', $_archive_recipients); $sqlQuery = sisplet_query($sqlString); - } + } + if (count($_tracking) > 0) { $sqlStrTracking = "INSERT INTO srv_invitations_tracking (inv_arch_id, time_insert, res_id, status) VALUES "; $sqlStrTracking .= implode(', ', $_tracking); @@ -3950,88 +4016,29 @@ class SurveyInvitationsNew { } } - sisplet_query("COMMIT"); - - # če mamo personalizirana email vabila, userje dodamo v bazo - if ($individual == 1 && count($send_users_data) > 0) { - # dodamo še userja v srv_user da je kompatibilno s staro logiko - $strInsertDataText = array(); - $strInsertUserbase = array(); - $strInsertUserstatus = array(); - - foreach ($send_users_data AS $user_data) { - #spodnji query nekako ni dobro naredil updejta ker je zamenjal last_status, po novem po potrebi samo zamenjamo kodo. - #$strInsert = "INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$this->sid."', '".$user_data['email']."', '".$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)"; - $strInsert = "INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$this->sid."', '".$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']."'"; - $_r = sisplet_query($strInsert); - $usr_id = mysqli_insert_id($GLOBALS['connect_db']); - sisplet_query("COMMIT"); - - if ($usr_id) { - # dodamo še srv_userbase in srv userstatus - $strInsertUserbase[] = "('".$usr_id."','0',NOW(),'".$global_user_id."')"; - $strInsertUserstatus[] = "('".$usr_id."', '0', '0', NOW())"; - - # 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."')"; - } - } - } else { - // lahko da user že obstaja in je šlo za duplicated keys - } - } - - # vstavimo v srv_userbase - if (count($strInsertUserbase) > 0) { - $strInsert = "INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES "; - $strInsert .= implode(',',$strInsertUserbase); - sisplet_query($strInsert); - } - # vstavimo v srv_userstatus - if (count($strInsertUserstatus) > 0) { - $strInsert = "INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES "; - $strInsert .= implode(',',$strInsertUserstatus); - sisplet_query($strInsert); - } - # 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); - } - - sisplet_query("COMMIT"); - } - + // Izpis rezultatov - errors and successes if (count($send_error) > 0 ) { $return['error'] = '1'; $return['msg'] = '
'.$lang['srv_invitation_note7'].count($send_error).'
'; - } else if (count($send_ok) > 0 ) { - list($name,$surname,$email) = mysqli_fetch_row(sisplet_query("SELECT name, surname,email FROM users WHERE id='$global_user_id'")); + } + else if (count($send_ok) > 0 ) { + + list($name,$surname,$email) = mysqli_fetch_row(sisplet_query("SELECT name, surname,email FROM users WHERE id='$global_user_id'")); $who=''; - if (trim($name) != '') { + + if (trim($name) != '') { $who = $name; - } + } + if (trim($surname) != '') { if ($who != '') { $who .=' '; } $who .= $surname; - } + } + if ($email != '') { if ($who != '') { $who .=' ('.$email.')'; @@ -4069,10 +4076,12 @@ class SurveyInvitationsNew { // Seznam mailov na katere je bilo uspesno poslano if (count($send_ok) > 0) { - $return['msg'] .= '
'; + $return['msg'] .= '
'; + foreach ($send_ok AS $email) { $return['msg'] .= ' '.$email.'
'; - } + } + $return['msg'] .= '
'; } } @@ -4113,7 +4122,8 @@ class SurveyInvitationsNew { && isset($_POST['_token']) && $_SESSION['snd_inv_token'][$this->sid] != null && $_SESSION['snd_inv_token'][$this->sid] == isset($_POST['_token'])) { - # na send smo kliknili samo 1x + + # na send smo kliknili samo 1x unset($_SESSION['snd_inv_token'][$this->sid]); session_commit(); @@ -4137,26 +4147,22 @@ class SurveyInvitationsNew { } // Preberemo tip posiljanja (navadna posta, sms...) - //$noMail_type = (isset($_POST['noMailType'])) ? $_POST['noMailType'] : '1'; $noMail_type = SurveySession::get('inv_noEmailing_type'); - #Pripravimo arhiv pošiljanj, da dobimo arch_id - $sql_string_all = "SELECT count(*) FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"; - $sql_query_all = sisplet_query($sql_string_all); + // Pripravimo arhiv pošiljanj, da dobimo arch_id + $sql_query_all = sisplet_query("SELECT count(*) FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted = '0'"); list($count_all) = mysqli_fetch_row($sql_query_all); $date_sent = date ("Y-m-d H:i:s"); $archive_naslov = 'mailing_'.date("d.m.Y").', '.date("H:i:s"); // Naslov in body - //$subject_text = $lang['srv_inv_message_noemailing_subject']; - //$body_text = ''; - # polovimo sporočilo in prejemnike - $sql_string_m = "SELECT id, subject_text, body_text, reply_to, isdefault, comment, naslov, url FROM srv_invitations_messages WHERE ank_id = '$this->sid' AND isdefault='1'"; - $sql_query_m = sisplet_query($sql_string_m); + // polovimo sporočilo in prejemnike + $sql_query_m = sisplet_query("SELECT id, subject_text, body_text, reply_to, isdefault, comment, naslov, url FROM srv_invitations_messages WHERE ank_id = '$this->sid' AND isdefault='1'"); if (mysqli_num_rows($sql_query_m) > 0 ) { $sql_row_m = mysqli_fetch_assoc($sql_query_m); - } else { + } + else { $subject_text = $lang['srv_inv_message_noemailing_subject']; $body_text = ''; } @@ -4166,26 +4172,33 @@ class SurveyInvitationsNew { $msg_url = $sql_row_m['url']; // Vstavimo podatke v arhiv - $sqlString = "INSERT INTO srv_invitations_archive (id, ank_id, date_send, subject_text, body_text, tip, uid, comment, naslov, rec_in_db)" - ." VALUES (NULL , '$this->sid', '$date_sent', '".addslashes($subject_text)."', '".addslashes($body_text)."', '$noMail_type', '$global_user_id', '$comment', '$archive_naslov', '$count_all')"; - $sqlQuery = sisplet_query($sqlString); + $sqlQuery = sisplet_query("INSERT INTO srv_invitations_archive + (id, ank_id, date_send, subject_text, body_text, tip, uid, comment, naslov, rec_in_db) + VALUES + (NULL , '$this->sid', '$date_sent', '".addslashes($subject_text)."', '".addslashes($body_text)."', '$noMail_type', '$global_user_id', '$comment', '$archive_naslov', '$count_all') + "); $arch_id = mysqli_insert_id($GLOBALS['connect_db']); $duplicated = array(); - # polovimo sistemske spremenljivke z vrednostmi - $strSistemske = "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->sid."' AND variable IN("."'" . implode("','",$this->inv_variables)."') ORDER BY g.vrstni_red, s.vrstni_red"; - $qrySistemske = sisplet_query($strSistemske); + // 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->sid."' AND variable IN ("."'" . implode("','",$this->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 + + // 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']; @@ -4196,11 +4209,14 @@ class SurveyInvitationsNew { } - # prejeminki besedila - $sql_string = "SELECT id,firstname, lastname, email, password, cookie, phone, salutation, custom, relation FROM srv_invitations_recipients WHERE ank_id = '".$this->sid."' AND deleted='0' AND id IN(".implode(',',$rids).") order by id"; - $sql_query = sisplet_query($sql_string); + // prejeminki besedila + $sql_query = sisplet_query("SELECT id, firstname, lastname, email, password, cookie, phone, salutation, custom, relation + FROM srv_invitations_recipients + WHERE ank_id = '".$this->sid."' AND deleted='0' AND id IN (".implode(',',$rids).") + ORDER BY id + "); while ($sql_row = mysqli_fetch_assoc($sql_query)) { - #password == code + $password = $sql_row['password']; $email = $sql_row['email']; @@ -4221,16 +4237,16 @@ class SurveyInvitationsNew { $send_users_data[] = $_user_data; } - # updejtamo userja da mu je bilo poslano + // updejtamo userja da mu je bilo poslano if ( count($send_ok_ids) > 0) { - $sqlString = "UPDATE srv_invitations_recipients SET sent = '1', date_sent = '".$date_sent."' WHERE id IN (".implode(',',$send_ok_ids).")"; - $sqlQuery = sisplet_query($sqlString); + + $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET sent = '1', date_sent = '".$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 - $sqlString = "UPDATE srv_invitations_recipients SET last_status = '1' WHERE id IN (".implode(',',$send_ok_ids).") AND last_status IN ('0','2')"; - $sqlQuery = sisplet_query($sqlString); + } + + // 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']); } @@ -4238,11 +4254,11 @@ class SurveyInvitationsNew { $comment = $_POST['comment']; - #dodajmo še userje v povezovalno tabelo + // dodajmo še userje v povezovalno tabelo if ($arch_id > 0) { - # updejtamo še tabelo arhivov - $sqlString = "UPDATE srv_invitations_archive SET cnt_succsess='".count($send_ok_ids)."' WHERE id ='$arch_id'"; - $sqlQuery = sisplet_query($sqlString); + + // updejtamo še tabelo arhivov + $sqlQuery = sisplet_query("UPDATE srv_invitations_archive SET cnt_succsess='".count($send_ok_ids)."' WHERE id ='$arch_id'"); if (!$sqlQuery) { $error = mysqli_error($GLOBALS['connect_db']); } @@ -4282,10 +4298,12 @@ class SurveyInvitationsNew { $strInsertUserstatus = array(); foreach ($send_users_data AS $user_data) { - #spodnji query nekako ni dobro naredil updejta ker je zamenjal last_status, po novem po potrebi samo zamenjamo kodo. - #$strInsert = "INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$this->sid."', '".$user_data['email']."', '".$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)"; - $strInsert = "INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$this->sid."', '".$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']."'"; - $_r = sisplet_query($strInsert); + + $_r = sisplet_query("INSERT INTO srv_user + (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) + VALUES + ('".$this->sid."', '".$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']); sisplet_query("COMMIT"); @@ -4301,24 +4319,25 @@ class SurveyInvitationsNew { $strInsertDataText[] = "('".$sid."','".$spremenljivka['vre_id']."','".trim($user_data[$_user_variable])."','".$usr_id."')"; } } - } else { + } + else { // lahko da user že obstaja in je šlo za duplicated keys } } - # vstavimo v srv_userbase + // vstavimo v srv_userbase if (count($strInsertUserbase) > 0) { $strInsert = "INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES "; $strInsert .= implode(',',$strInsertUserbase); sisplet_query($strInsert); } - # vstavimo v srv_userstatus + // vstavimo v srv_userstatus if (count($strInsertUserstatus) > 0) { $strInsert = "INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES "; $strInsert .= implode(',',$strInsertUserstatus); sisplet_query($strInsert); } - # vstavimo v srv_data_text + // 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); @@ -4330,36 +4349,42 @@ class SurveyInvitationsNew { if (count($send_ok) > 0 ) { - list($name,$surname,$email) = mysqli_fetch_row(sisplet_query("SELECT name, surname,email FROM users WHERE id='$global_user_id'")); - $who=''; + + list($name,$surname,$email) = mysqli_fetch_row(sisplet_query("SELECT name, surname, email FROM users WHERE id='$global_user_id'")); + $who=''; + if (trim($name) != '') { $who = $name; - } + } + if (trim($surname) != '') { if ($who != '') { $who .=' '; } $who .= $surname; - } + } + if ($email != '') { if ($who != '') { $who .=' ('.$email.')'; } else { $who = $email; } - } + } + $return['error'] = '0'; } else { $return['error'] = '0'; $return['msg'] = '
'.''.$lang['srv_invitation_note9'].'

'; - } - - } else { + } + } + else { #old session token $return['msg'] = '
'.$lang['srv_invitation_note13'].''.'
'; } - } else { + } + else { #nimamo $rids $return['msg'] = '
'.$lang['srv_invitation_note14'].'
'; } @@ -4368,7 +4393,6 @@ class SurveyInvitationsNew { Common::getInstance()->Init($anketa); Common::getInstance()->updateEditStamp(); - #$this->viewAarchive($return['msg']); $this->viewSendMailFinish($return['msg']); }