From 19985dbb8c0aa66dc4bf7905abc1148de909097d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Tue, 11 Jan 2022 12:35:47 +0100 Subject: prvi-commit --- main/survey/app/Controllers/HelperController.php | 747 +++++++++++++++++++++++ 1 file changed, 747 insertions(+) create mode 100644 main/survey/app/Controllers/HelperController.php (limited to 'main/survey/app/Controllers/HelperController.php') diff --git a/main/survey/app/Controllers/HelperController.php b/main/survey/app/Controllers/HelperController.php new file mode 100644 index 0000000..58e6784 --- /dev/null +++ b/main/survey/app/Controllers/HelperController.php @@ -0,0 +1,747 @@ +isMobile()) + $ismobile = 1; + + if ($ismobile == 1) { + if ($detect->isTablet()) + $mobile = 2; + else + $mobile = 1; + } + + // prednost pa ima rocno izbrana opcija - ce je nastavljena + if (isset($_COOKIE['mobile'])) { + $c = (int)$_COOKIE['mobile']; + if ($c > 0) + $mobile = $mobile; + else + $mobile = 0; + } + + // Ce smo slucajno v preview-ju preverimo kateri preview prikazemo + if (isset($_GET['preview']) && $_GET['preview'] == 'on') { + if (isset($_GET['mobile']) && $_GET['mobile'] == 1) + $mobile = 1; + elseif (isset($_GET['mobile']) && $_GET['mobile'] == 2) + $mobile = 2; + }; + + return $mobile; + } + + /** + * @desc V podanem stringu poisce spremenljivke in jih spajpa z vrednostmi + */ + public static function dataPiping($text) + { + // V kolikor imamo vključen modul hierarhija potem uporabimo ustrezno pajpanje za hierarhijo + if (SurveyInfo::getInstance()->checkSurveyModule('hierarhija')) + return HierarhijaHelper::dataPiping($text, get('anketa')); + + + Common::getInstance()->Init(get('anketa')); + + return Common::getInstance()->dataPiping($text, get('usr_id'), get('loop_id'), get('lang_id')); + + } + + /** + * vrne IP naslov (tudi ce gre preko proxyja) + * + */ + public static function remote_address() + { + return GetIP(); + } + + /************************************************ + * Vrnemo ime ankete + * + * @param $show_page = 1 - ali prikažemo omenjen naslov na spletni strani + * @return string + ************************************************/ + public function displayAkronim($show_page = 1) + { + $row = SurveyInfo::getInstance()->getSurveyRow(); + $srv_novaanketa_kratkoime = null; + + SurveySetting::getInstance()->Init(get('anketa')); + $survey_hide_title = SurveySetting::getInstance()->getSurveyMiscSetting('survey_hide_title'); + + if ($survey_hide_title == 1 /*&& $row['survey_type'] != 0*/) + return; + + if (get('lang_id') != null) { + if (get('lang_id') != null) + $_lang = '_' . get('lang_id'); + else + $_lang = ''; + + $srv_novaanketa_kratkoime = SurveySetting::getInstance()->getSurveyMiscSetting('srvlang_srv_novaanketa_kratkoime' . $_lang); + } + + if ($show_page == 1 && get('grupa') > 0) { + $sql1 = sisplet_query("SELECT naslov FROM srv_grupa WHERE id = '" . get('grupa') . "'"); + $row1 = mysqli_fetch_array($sql1); + $grupa = ' - ' . $row1['naslov'] . ''; + } else $grupa = ''; + + if ($srv_novaanketa_kratkoime != '') + return $srv_novaanketa_kratkoime . $grupa; + else + return (($row['akronim'] == null || $row['akronim'] == '') ? $row['naslov'] . $grupa : $row['akronim'] . $grupa); + } + + /** + * @desc vrne array vseh spremenljivk vgnezdenih v podanem ifu + */ + public static function getElements($if) + { + $elements = get('getElements'); + $anketa = get('anketa'); + + if (array_key_exists($if, $elements)) { + return $elements[$if]; + } + + $array = array(); + + Cache::cache_all_srv_branching($anketa); + + foreach (Cache::srv_branching_parent($anketa, $if) AS $k => $row) { + + if ($row['element_spr'] > 0) + array_push($array, $row['element_spr']); + else + foreach (self::getElements($row['element_if']) AS $key) + array_push($array, $key); + + } + + return save('getElements[' . $if . ']', $array, 1); + } + + /** + * @desc vrne ce obstaja parent z nastavitvijo horizontal pri blokih da prikazemo vprasanja vodoravno (horizontal==1) ali z razpiranjem (horizontal==2) ce je vklopljena nastavitev + */ + public static function checkParentHorizontal($element){ + + Cache::cache_all_srv_branching(get('anketa')); + + $parent = $element['parent']; + + $rowb = Cache::srv_if($element['element_if']); + if ($rowb['horizontal'] == 1 || $rowb['horizontal'] == 2) { + return $rowb['horizontal']; + } + elseif ($parent == 0) { + return false; + } + elseif ($parent == 0) { + return false; + } + else { + $row = Cache::srv_branching(0, $parent); + return self::checkParentHorizontal($row); + } + } + + public static function getGrupa($spremenljivka) + { + $grupa = get('getGrupa'); + + if (array_key_exists($spremenljivka, $grupa)) + return $grupa[$spremenljivka]; + + $row = Model::select_from_srv_spremenljivka($spremenljivka); + + return save('getGrupa[' . $spremenljivka . ']', $row['gru_id'], 1); + } + + public static function getDatepickerRange($spremenljivka, $date_element) + { + # po potrebi pripravimo datum range + $row = Cache::srv_spremenljivka($spremenljivka); + $newParams = new enkaParameters($row['params']); + $min = $newParams->get('date_range_min'); + $max = $newParams->get('date_range_max'); + $range_string = null; + + # ce imamo spodnji range + $range = ($min != "") ? $min : '-80'; + + $range .= ':'; + + # ce imamo zgornji range - plus je potrebno dodat posebej + if ($max == "") + $range .= '+10'; + else if ($max < 100) + $range .= '+' . $max; + else + $range .= $max; + + # ce imamo nastavljen spodnji ali zgornji range + $range_string = "$( \"{$date_element}\" ).datepicker( \"option\", \"yearRange\", \"{$range}\" );"; + + // Ce ni danasnji dan v rangu -> moramo posebej nastavit trenutni datum (zaradi jquery buga) + if (substr($max, 0, 1) == '-' || substr($min, 0, 1) == '+') { + $date = '1.1.' . ((int)date("Y") + (int)$min); + $range_string .= "$( \"{$date_element}\" ).datepicker( \"option\", \"defaultDate\", \"{$date}\" );"; + } elseif ($min > date("Y") || $max < date("Y")) { + $date = '1.1.' . $min; + $range_string .= "$( \"{$date_element}\" ).datepicker( \"option\", \"defaultDate\", \"{$date}\" );"; + } + + // dodamo se, da je prvi dan v tednu ponedeljek + $range_string .= "$( \"{$date_element}\" ).datepicker( \"option\", \"firstDay\", 1 );"; + + # nastavimo datumski range + echo $range_string; + } + + public static function getCustomCheckbox() + { + + //ID skin_profile + $skin_id = SurveyInfo::getInstance()->getSurveyRow()['skin_profile']; + + //srv_theme_editor -> velikost PC/mobilne ikone + $type = 7; + + if (get('mobile') > 0) + $type = 8; //če gre za mobilnik ali tablico potem pridobimo ustrezne ikone za tole + + $sql = sisplet_query("SELECT value FROM srv_theme_editor WHERE profile_id = '$skin_id' AND id='7' AND type='$type'"); + $row = mysqli_fetch_array($sql); + if (!$row || empty($row) || is_null($row)) + return 0; + + return $row['value']; //vrnemo velikost custom radio/checkboxa + } + + /** + * @desc poslje alerte o izpolnjeni anketi + */ + public function alert() + { + global $site_path; + + # kadar popravljamo obstoječe podatke ne pošiljamo več obvestil o končani anketi (Ajda) + if ($_GET['urejanje'] == 1) { + return; + } + + // Ce smo v predogledu ali testiranju ne posiljamo obvestila + if ($_GET['preview'] == 'on') { + return; + } + + // Preverimo ce imamo ustrezen paket kjer je na voljo obvescanje + $userAccess = UserAccess::getInstance(self::$global_user_id); + if (!$userAccess->checkUserAccess($what='alert')){ + return; + } + + $row = SurveyInfo::getInstance()->getSurveyRow(); + + $sqlAlert = sisplet_query("SELECT * FROM srv_alert WHERE ank_id = '" . get('anketa') . "'"); + $rowAlert = mysqli_fetch_array($sqlAlert); + + // array z emaili + $emails = array(); + # TODO + # dodat tabelo, z emaili, za userje cms-ja če bi se želeli odjavit od obveščanja posamezne ankete + # ker sedaj nimamo povezave na njihov eemaile in se ne morejo odjaviti + # not bi blo fajn dat: anketa_id, email, code (kodo za preverjanje istovetnosti) + # in potem če klikne na link odjaviti in skopirati v tabelo: srv_survey_unsubscribe, da se uporabniku ne pošilja več + + $ime = ''; + + // alert Avtorja in ostalih v dostopu + if ($rowAlert['finish_author'] == 1) { + $sqlInsertUID = Model::db_select_user($row['insert_uid']); + $rowInsertUID = mysqli_fetch_array($sqlInsertUID); + + + // polovimo se avtorje katerim je omogocen dostop in imajo nastavljeno da dobivajo obvestila - po novem med njimi ni nujno glavni avtor ankete + $sqlAlertAuthors = sisplet_query("SELECT u.email, u.id FROM users as u " + . " RIGHT JOIN (SELECT sd.uid, sd.alert_complete FROM srv_dostop as sd WHERE sd.ank_id='" . get('anketa') . "' AND sd.alert_complete = '1') AS dostop ON u.id = dostop.uid"); + while ($rowAlertAuthors = mysqli_fetch_assoc($sqlAlertAuthors)) { + + $sql1 = sisplet_query("SELECT alert_complete_if, uid AS id FROM srv_dostop WHERE ank_id='" . get('anketa') . "' AND uid='" . $rowAlertAuthors['id'] . "'"); + $row1 = mysqli_fetch_array($sql1); + + # kodo preberemo iz srv_users + $c2s = "SELECT SUBSTRING(cookie,1,6) FROM srv_user where ank_id ='" . get('anketa') . "' AND user_id = '" . $rowAlertAuthors['id'] . "'"; + $c2q = sisplet_query($c2s); + list($c2) = mysqli_fetch_row($c2q); + # nastavimo password če še ni + $strSqlUpd = "UPDATE srv_user SET pass='$c2' WHERE ank_id ='" . get('anketa') . "' AND user_id = '" . $rowAlertAuthors['id'] . "' AND pass IS NULL"; + $qrySqlUpd = sisplet_query($strSqlUpd); + + // ce imamo if na posiljanje mailov + if ($row1['alert_complete_if'] > 0) { + if (Check::getInstance()->checkIf($row1['alert_complete_if'])) { + $emails[] = array('mail' => $rowAlertAuthors['email'], 'type' => 'author', 'uid' => $rowAlertAuthors['id']); + } + } else { + $emails[] = array('mail' => $rowAlertAuthors['email'], 'type' => 'author', 'uid' => $rowAlertAuthors['id']); + } + } + } + // alert respondenta (ki vpise svoj mail ob izpolnjevanju) + if ($rowAlert['finish_respondent'] == 1) { + // email + $sql1 = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.variable='email' AND s.gru_id=g.id AND g.ank_id='" . get('anketa') . "'"); + if (!$sql1) echo mysqli_error($GLOBALS['connect_db']); + $row1 = mysqli_fetch_array($sql1); + + $sql2 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'"); + $row2 = mysqli_fetch_array($sql2); + + $sql11 = sisplet_query("SELECT finish_respondent_if FROM srv_alert WHERE ank_id='" . get('anketa') . "'"); + $row11 = mysqli_fetch_array($sql11); + + # kodo preberemo iz srv_users + $c2s = "SELECT SUBSTRING(cookie,1,6) FROM srv_user where ank_id ='" . get('anketa') . "' AND id = '" . get('usr_id') . "'"; + $c2q = sisplet_query($c2s); + list($c2) = mysqli_fetch_row($c2q); + # nastavimo password če še ni + $strSqlUpd = "UPDATE srv_user SET pass='$c2' WHERE ank_id ='" . get('anketa') . "' AND id = '" . get('usr_id') . "' AND pass IS NULL"; + $qrySqlUpd = sisplet_query($strSqlUpd); + + // Ce resujemo anketo v drugem jeziku pogledamo ce imamo nastavljen custom mail za tuje jezike + $sql_ac = sisplet_query("SELECT * FROM srv_alert_custom WHERE ank_id='" . get('anketa') . "' AND type='respondent_lang_" . get('lang_id') . "' AND uid='0'"); + if (mysqli_num_rows($sql_ac) > 0) { + $row_ac = mysqli_fetch_array($sql_ac); + $emails[] = array('mail' => $row2['text'], 'type' => $row_ac['type'], 'uid' => '0', 'code' => $c2); + } // ce imamo if na posiljanje mailov + elseif ($row11['finish_respondent_if'] > 0) { + if (Check::getInstance()->checkIf($row11['finish_respondent_if'])) { + $emails[] = array('mail' => $row2['text'], 'type' => 'respondent', 'uid' => '0', 'code' => $c2); + } + } else { + $emails[] = array('mail' => $row2['text'], 'type' => 'respondent', 'uid' => '0', 'code' => $c2); + } + + // ime + $sql1 = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.variable='ime' AND s.gru_id=g.id AND g.ank_id='" . get('anketa') . "'"); + if (!$sql1) echo mysqli_error($GLOBALS['connect_db']); + $row1 = mysqli_fetch_array($sql1); + + $sql2 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'"); + $row2 = mysqli_fetch_array($sql2); + + $ime = $row2['text']; + + } + + // alert respondenta prepoznanega iz sispleta + if ($rowAlert['finish_respondent_cms'] == 1) { + $sql1 = Model::db_select_user(self::$global_user_id); + $row1 = mysqli_fetch_array($sql1); + + if ($row1['email'] != '') { + + $sql11 = sisplet_query("SELECT finish_respondent_cms_if FROM srv_alert WHERE ank_id='" . get('anketa') . "'"); + $row11 = mysqli_fetch_array($sql11); + + # kodo preberemo iz srv_users + $c2s = "SELECT SUBSTRING(cookie,1,6) FROM srv_user where ank_id ='" . get('anketa') . "' AND user_id = '" . get('usr_id') . "'"; + $c2q = sisplet_query($c2s); + list($c2) = mysqli_fetch_row($c2q); + + $strSqlUpd = "UPDATE srv_user SET pass='$c2' WHERE ank_id ='" . get('anketa') . "' AND user_id = '" . get('usr_id') . "' AND pass IS NULL"; + $qrySqlUpd = sisplet_query($strSqlUpd); + + // ce imamo if na posiljanje mailov + if ($row11['finish_respondent_cms_if'] > 0) { + if (Check::getInstance()->checkIf($row11['finish_respondent_cms_if'])) { + $emails[] = array('mail' => $row1['email'], 'type' => 'respondent_cms', 'uid' => '0', 'code' => $c2); + } + } else { + $emails[] = array('mail' => $row1['email'], 'type' => 'respondent_cms', 'uid' => '0', 'code' => $c2); + } + + } + + } + + // alert na ostale maile + if ($rowAlert['finish_other'] == 1) { + + $email = explode("\n", str_replace("\r", "", str_replace(",", "\r\n", str_replace(" ", "", $rowAlert['finish_other_emails'])))); + if (count($email) > 0) + foreach ($email AS $mail) { + + $sql11 = sisplet_query("SELECT finish_other_if FROM srv_alert WHERE ank_id='" . get('anketa') . "'"); + $row11 = mysqli_fetch_array($sql11); + + // ce imamo if na posiljanje mailov + if ($row11['finish_other_if'] > 0) { + if (Check::getInstance()->checkIf($row11['finish_other_if'])) { + $emails[] = array('mail' => $mail, 'type' => 'other', 'uid' => '0'); + } + } else { + $emails[] = array('mail' => $mail, 'type' => 'other', 'uid' => '0'); + } + } + } + + // sestavimo sporocilo + if ($row['finish_respondent_cms'] == 1) { + $sql1 = Model::db_select_user(self::$global_user_id); + $row1 = mysqli_fetch_array($sql1); + $ime = '' . $row1['name'] . ' ' . $row1['surname']; + } + + # meta_url + $sql_meta_strings = "SELECT referer FROM srv_user where ank_id ='" . get('anketa') . "' AND id = '" . get('usr_id') . "'"; + $sql_meta_query = sisplet_query($sql_meta_strings); + list($meta_url) = mysqli_fetch_row($sql_meta_query); + + // Podpis + $signature = Common::getEmailSignature(); + + $text = ($rowAlert['finish_text'] == '') ? '[NAME] ' . self::$lang['srv_alert_msg'] . ' [SURVEY] [DATE] ("[URL]")'.$signature : $rowAlert['finish_text']; + $subject = ($rowAlert['finish_subject'] != '') ? $rowAlert['finish_subject'] : self::$lang['srv_alert_subject']; + + $sqlu = sisplet_query("SELECT email FROM users WHERE id = '$row[insert_uid]'"); + $rowu = mysqli_fetch_array($sqlu); + $MailReply = $rowu['email']; + + if ($rowAlert['reply_to'] != '') $MailReply = $rowAlert['reply_to']; + + // preprečimo večkratno pošiljanje na iste naslove + array_unique($emails); + + # preverimo odjavljenost od prejemanja obvestil + $su = new SurveyUnsubscribe(get('anketa')); + + // posljemo maile + foreach ($emails AS $mail_list) { + $mail = trim($mail_list['mail']); + $unsubscribed = $su->isUnsubscribedEmail($mail); + + + $pdf_url = self::$site_url . 'admin/survey/izvoz.php?dc=' . base64_encode( + serialize( + array('a' => 'pdf_results', + 'anketa' => get('anketa'), + 'usr_id' => get('usr_id'), + 'type' => '0', + 'pdf_usr_type' => $mail_list['type'], + 'pdf_usr_id' => $mail_list['uid'] + ))); + + $rtf_url = self::$site_url . 'admin/survey/izvoz.php?dc=' . base64_encode( + serialize( + array('a' => 'rtf_results', + 'anketa' => get('anketa'), + 'b' => 'export', + 'usr_id' => get('usr_id'), + 'pdf_usr_type' => $mail_list['type'], + 'pdf_usr_id' => $mail_list['uid'] + ))); + + + if ($mail != '' && $unsubscribed == false && (strlen($mail) > 1)) { + + $sql_ac = sisplet_query("SELECT subject, text FROM srv_alert_custom WHERE ank_id='" . get('anketa') . "' AND type='{$mail_list['type']}' AND uid='{$mail_list['uid']}'"); + if (mysqli_num_rows($sql_ac) > 0) { + $row_ac = mysqli_fetch_array($sql_ac); + $s = $row_ac['subject']; + $t = $row_ac['text']; + } else { + $s = $subject; + $t = $text; + } + // naredimo še data piping za odgovore + $t = Helper::dataPiping($t); + + #zamenjamo morebitne sistemske variable + $t = str_replace( + array('[NAME]', + '[SURVEY]', + '[DATE]', + '[SITE]', + '[URL]', + '[PDF]', + '[RTF]', + '[META_REFERER_URL]', + '[DURATION]' + ), + array($ime, + $row['akronim'], #$row['naslov'], + date("d.m.Y, H:i:s"), + //''.self::$site_url.'a/'.get('anketa').'', + '' . SurveyInfo::getSurveyLink() . '', + '' . self::$site_url . 'admin/survey/index.php?anketa=' . get('anketa') . '', + '' . self::$lang['srv_alert_link_pdf'] . '', + '' . self::$lang['srv_alert_link_rtf'] . '', + '' . $meta_url . '', + '' . self::$lang['srv_activate_duration'] . '' + ), + $t); + + $s = str_replace( + array('[NAME]', + '[SURVEY]', + '[DATE]', + '[SITE]', + '[URL]', + '[PDF]', + '[RTF]', + '[DURATION]'), + array($ime, + $row['naslov'], + date("d.m.Y, H:i:s"), + //self::$site_url.'a/'.get('anketa'), + SurveyInfo::getSurveyLink(), + self::$site_url . 'admin/survey/index.php?anketa=' . get('anketa'), + '' . self::$lang['srv_alert_link_pdf'] . '', + '' . self::$lang['srv_alert_link_rtf'] . '', + '' . self::$lang['srv_activate_duration'] . ''), + $s); + + if ($mail_list['code'] == null || trim($mail_list['code']) == '') { + # v tabelo srv_survey_unsubscribe_codes dodamo email in kodo za možnost odjave od obveščanja + $uc = $su->generateCodeForEmail($mail); + $unsubscribe = self::$site_url . 'admin/survey/unsubscribe.php?anketa=' . get('anketa') . '&uc=' . $uc . '&em=' . base64_encode($mail); + } else { + $unsubscribe = self::$site_url . 'admin/survey/unsubscribe.php?anketa=' . get('anketa') . '&code=' . $mail_list['code']; + } + + $t = str_replace( + array('#UNSUBSCRIBE#', '[UNSUBSCRIBE]'), + array('' . self::$lang['user_bye_hl'] . '', + '' . self::$lang['user_bye_hl'] . '',) + , $t); + + + try { + $MA = new MailAdapter(get('anketa'), $type='alert'); + $MA->addRecipients($mail); + + // Shranimo email from in reply to (da ju potem nazaj nastavimo - drugace povozimo nastavitve od vabil) + $mailFromBCK = $MA->getMailFrom(); + $mailReplyToBCK = $MA->getMailReplyTo(); + + // Nastavimo na raziskave - obvescanje je iz raziskave@1ka.si ce se ni nastavljeno posebej v smtp nastavitvah + $MA->setMailReplyTo($MailReply); + if ($mailFromBCK == '' || $mailFromBCK == 'info@1ka.si') + $MA->setMailFrom('raziskave@1ka.si'); + + // Posljemo mail + $result = $MA->sendMail(stripslashes($t), $s); + + // Nazaj nastavimo posiljatelja (za nastavitve v vabilih) + $MA->setMailReplyTo($mailReplyToBCK); + $MA->setMailFrom($mailFromBCK); + } catch (Exception $e) { + } + } + } + + return; + } + + /** + * @desc poslje alert o dosezeni kvoti za evoli - team meter + */ + public function alertTeamMeter() + { + global $site_path; + + # kadar popravljamo obstoječe podatke ne pošiljamo več obvestil o končani anketi (Ajda) + if ($_GET['urejanje'] == 1) { + return; + } + + // Ce smo v predogledu ali testiranju ne posiljamo obvestila + if ($_GET['preview'] == 'on') { + return; + } + + + // Preverimo ce smo dosegli kvoto + $sqlGroupTM = sisplet_query("SELECT d.vre_id FROM srv_data_vrednost_active d, srv_spremenljivka s, srv_grupa g + WHERE g.ank_id='" . get('anketa') . "' AND d.usr_id='" . get('usr_id') . "' AND s.skupine='1' + AND s.id=d.spr_id AND g.id=s.gru_id"); + $rowGroupTM = mysqli_fetch_array($sqlGroupTM); + + $sqlTM = sisplet_query("SELECT tm.*, v.vrstni_red AS skupina FROM srv_evoli_teammeter tm, srv_vrednost v + WHERE tm.ank_id='" . get('anketa') . "' AND tm.skupina_id='" . $rowGroupTM['vre_id'] . "' AND tm.skupina_id=v.id"); + $rowTM = mysqli_fetch_array($sqlTM); + + // Preverimo ce smo slucajno ze posiljali porocilo + $datum_posiljanja = $rowTM['datum_posiljanja']; + + // Kvota je dosezena - POSLJEMO OBVESTILO + if ($rowTM['kvota_max'] == $rowTM['kvota_val'] && $datum_posiljanja == '0000-00-00 00:00:00') { + + $row = SurveyInfo::getInstance()->getSurveyRow(); + + $sqlAlert = sisplet_query("SELECT * FROM srv_alert WHERE ank_id = '" . get('anketa') . "'"); + $rowAlert = mysqli_fetch_array($sqlAlert); + + // Podpis + $signature = Common::getEmailSignature(); + + $text = ($rowAlert['finish_text'] == '') ? '[NAME] ' . self::$lang['srv_alert_msg'] . ' [SURVEY] [DATE] ("[URL]")'.$signature : $rowAlert['finish_text']; + $subject = ($rowAlert['finish_subject'] != '') ? $rowAlert['finish_subject'] : self::$lang['srv_alert_subject']; + + $MailReply = $rowTM['email']; + + if ($rowAlert['reply_to'] != '') $MailReply = $rowAlert['reply_to']; + + // Mail posljemo avtorju skupine (podjetja) + $mail = $rowTM['email']; + + $pdf_url = self::$site_url . 'admin/survey/izvoz.php?dc=' . base64_encode( + serialize( + array('m' => 'pdf_teammeter', + 'anketa' => get('anketa'), + 'skupina' => $rowTM['skupina'] + ))); + + if ($mail != '' && (strlen($mail) > 1)) { + + $s = $subject; + $t = $text; + + // naredimo še data piping za odgovore + $t = Helper::dataPiping($t); + + #zamenjamo morebitne sistemske variable + $t = str_replace( + array( + '[NAME]', + '[SURVEY]', + '[DATE]', + '[SITE]', + '[URL]', + '[PDF]', + '[DURATION]' + ), + array( + $ime, + $row['akronim'], #$row['naslov'], + date("d.m.Y, H:i:s"), + '' . SurveyInfo::getSurveyLink() . '', + '' . self::$site_url . 'admin/survey/index.php?anketa=' . get('anketa') . '', + '' . self::$lang['srv_alert_link_pdf'] . '', + '' . self::$lang['srv_activate_duration'] . '' + ), + $t); + + $s = str_replace( + array( + '[NAME]', + '[SURVEY]', + '[DATE]', + '[SITE]', + '[URL]', + '[PDF]', + '[DURATION]' + ), + array( + $ime, + $row['naslov'], + date("d.m.Y, H:i:s"), + SurveyInfo::getSurveyLink(), + self::$site_url . 'admin/survey/index.php?anketa=' . get('anketa'), + '' . self::$lang['srv_alert_link_pdf'] . '', + '' . self::$lang['srv_activate_duration'] . '' + ), + $s); + + try { + $MA = new MailAdapter(get('anketa'), $type='alert'); + $MA->addRecipients($mail); + + // Shranimo email from in reply to (da ju potem nazaj nastavimo - drugace povozimo nastavitve od vabil) + $mailFromBCK = $MA->getMailFrom(); + $mailReplyToBCK = $MA->getMailReplyTo(); + + // Nastavimo na raziskave - obvescanje je iz raziskave@1ka.si ce se ni nastavljeno posebej v smtp nastavitvah + $MA->setMailReplyTo($MailReply); + if ($mailFromBCK == '' || $mailFromBCK == 'info@1ka.si') + $MA->setMailFrom('raziskave@1ka.si'); + + // Posljemo mail + $result = $MA->sendMail(stripslashes($t), $s); + + // Nazaj nastavimo posiljatelja (za nastavitve v vabilih) + $MA->setMailReplyTo($mailReplyToBCK); + $MA->setMailFrom($mailFromBCK); + } + catch (Exception $e) { + } + + // Updatamo timestamp posiljanja + $sql = sisplet_query("UPDATE srv_evoli_teammeter SET datum_posiljanja=NOW() WHERE id='".$rowTM['id']."'"); + } + } + + return; + } +} \ No newline at end of file -- cgit v1.2.3