getParameters(); // Naložimo jezikovno datoteko if($this->language == 'slo') include('../../../../../lang/1.php'); elseif($this->language == 'den') include('../../../../../lang/29.php'); else include('../../../../../lang/2.php'); if ($this->anketa == 0 && $ank_id != 0) $this->anketa = $ank_id; // Ce imamo anketo in email stranke nadaljujemo if ($this->anketa > 0){ # polovimo vrsto tabel (aktivne / neaktivne) SurveyInfo :: getInstance()->SurveyInit($this->anketa); $this->db_table = SurveyInfo::getInstance()->getSurveyArchiveDBString(); } } // Pridobimo parametre (ank_id in email) public function getParameters(){ // Ce imamo kodirane parametre jih najprej odkodiramo if (!isset($_GET['ank_id']) && isset($_GET['dc']) && $_GET['dc'] != null) { $data = $_GET['dc']; $data = base64_decode(urldecode($data)); //$data = unserialize($data); $data = parse_str($data, $params); foreach ($params AS $get_param => $value) { if ($get_param != null && $get_param != '' && $value != null && $value != '' && $value != 'undefined') { $_GET[$get_param] = $value; } } } if(isset($_GET['pass'])) $this->pass = $_GET['pass']; elseif(isset($_POST['pass'])) $this->pass = $_POST['pass']; if(isset($_GET['ank_id'])) $this->anketa = $_GET['ank_id']; elseif(isset($_POST['ank_id'])) $this->anketa = $_POST['ank_id']; else $this->anketa = 0; if(isset($_GET['email'])) $this->email = $_GET['email']; elseif(isset($_POST['email'])) $this->email = $_POST['email']; else $this->email = 0; if(isset($_GET['language'])) $this->language = $_GET['language']; elseif(isset($_POST['language'])) $this->language = $_POST['language']; else $this->language = 'eng'; if(isset($_GET['departments'])) $this->departments = $_GET['departments']; elseif(isset($_POST['departments'])) $this->departments = $_POST['departments']; else $this->departments = 0; if(isset($_GET['group_id'])) $this->group_id = $_GET['group_id']; elseif(isset($_POST['group_id'])) $this->group_id = $_POST['group_id']; else $this->group_id = 0; } public function getPass(){ return $this->pass; } public function getAnkId(){ return $this->anketa; } public function getEmail(){ return $this->email; } public function getLanguage(){ return $this->language; } public function getDepartments(){ return $this->departments; } public function setReportType($type){ $this->type = $type; } // Prikazemo formo za vnos public function displayForm(){ global $lang; echo '
'; // Hidden ank_id in email echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // Ce imamo nastavljen id skupine, potem samo posljemo naknadne maile in nic ne dodajamo v bazo $only_send = false; if($this->group_id != 0 && $this->group_id != ''){ $sql = sisplet_query("SELECT tm.*, v.naslov AS skupina_naslov FROM srv_evoli_teammeter tm, srv_vrednost v WHERE tm.ank_id='".$this->anketa."' AND tm.skupina_id='".$this->group_id."' AND v.id=tm.skupina_id"); $row = mysqli_fetch_assoc($sql); $only_send = true; } // Ime podjetja if($only_send) echo $lang['srv_evoli_form_company_name'].':
'.$row['skupina_naslov']; else echo $lang['srv_evoli_form_company_name'].':
'; echo '

'; // Ime posameznih oddelkov (ce je vklopljeno) if($this->departments == 1){ echo '
'; echo $lang['srv_evoli_form_td'].':'; echo '

'; echo ''; echo ''; echo ''; echo '

'; echo '
'; echo '
'; } // Datum zacetka if($only_send) echo $lang['srv_evoli_form_test_s'].':
'.date("d.m.Y", strtotime($row['date_from'])); else echo $lang['srv_evoli_form_test_s'].':
'; echo '

'; // Datum zakljucka - default 8 dno po zacetku if($only_send) echo $lang['srv_evoli_form_test_e'].':
'.date("d.m.Y", strtotime($row['date_to'])); else echo $lang['srv_evoli_form_test_e'].':
'; echo '

'; // Seznam emailov echo $lang['srv_evoli_form_email_list'].':
'; echo '
'; // Submit echo ''; echo '
'; // Prikazemo se help na desni $this->displayHelp(); } public function displayFooter(){ global $lang; echo '

'.$lang['srv_evoli_form_footer'].'

'; } public function displayError(){ global $lang; echo $lang['srv_evoli_form_error'].'!'; } public function displayErrorAccess(){ global $lang; echo $lang['srv_evoli_form_error_access'].'!'; } private function displayHelp(){ global $lang; echo '
'; echo '
    '; echo '
  1. '.$lang['srv_evoli_form_help1'].'
  2. '; if($this->departments == 1) echo '
  3. '.$lang['srv_evoli_form_help2'].'
  4. '; echo '
  5. '.$lang['srv_evoli_form_help3'].'
  6. '; echo '
  7. '.$lang['srv_evoli_form_help4'].'
  8. '; echo '
'; echo '
'; } // Po submitu preverimo vnose in shranimo vse podatke public function submitForm(){ global $lang; $errors = array(); // Ime podjetja if(!isset($_POST['company']) || $_POST['company'] == '') $errors['company'] = $lang['srv_evoli_form_missing_company'].'!'; else $company = $_POST['company']; // Datum zacetka if(!isset($_POST['date_from']) || $_POST['date_from'] == '') $date_from = date("d.m.Y", time()); else $date_from = $_POST['date_from']; // Datum trajanja if(!isset($_POST['date_to']) || $_POST['date_to'] == '') $date_to = date("d.m.Y", time() + (60 * 60 * 24 * 8)); else $date_to = $_POST['date_to']; // Deparments $departments = array(); if(isset($_POST['department'])){ foreach($_POST['department'] as $department){ if($department != '') $departments[] = $department; } } // Izpis napak if(!isset($_POST['email_list']) || $_POST['email_list'] == '') $errors['email_list'] = $lang['srv_evoli_form_missing_email'].'!'; if(!isset($_POST['email']) || $_POST['email'] == '') $errors['email'] = $lang['srv_evoli_form_missing_user'].'!'; if(!validEmail($_POST['email'])) $errors['email'] = $lang['srv_evoli_form_invalid_uemail'].'!'; if(!isset($_POST['ank_id']) || $_POST['ank_id'] == '' || $_POST['ank_id'] == '0') $errors['anketa'] = $lang['srv_evoli_form_missing_survey'].'!'; if(!isset($_POST['date_from']) || $_POST['date_from'] == '' || $_POST['date_from'] == '0') $errors['date_from'] = $lang['srv_evoli_form_missing_start'].'!'; if(!isset($_POST['date_to']) || $_POST['date_to'] == '' || $_POST['date_to'] == '0') $errors['date_to'] = $lang['srv_evoli_form_missing_end'].'!'; $text = trim($_POST['email_list']); $email_list = explode('\n', $text); $email_list = array_filter($email_list, 'trim'); // V vsaki vrstici preverimo ce je veljaven mail $email_list_fixed = array(); foreach($email_list as $key => $email) { $email = str_replace('\n', '', str_replace('\r', '', $email)); if($email != ''){ if(!validEmail($email)){ $errors['invalid_email'][] = $email; } else $email_list_fixed[$key] = $email; } } // Preverimo stevilo vnesenih emailov - brez departmentov je limit 39 if(count($email_list_fixed) > 39 && !isset($_POST['department'])){ $errors['email_list_count'] = $lang['srv_evoli_form_email_count'].'!'; } // Ce je vse ok, shranimo podatke aktiviramo skupino in posljemo maile if(count($errors) == 0){ $this->saveData($company, $date_from, $date_to, $email_list_fixed, $departments); // Zabelezimo da je kupec uspesno izvedel posiljanje in mu preprecimo nadaljni dostop if($this->pass != '') $sqlA = sisplet_query("UPDATE srv_evoli_landingPage_access SET used='1' WHERE ank_id='".$this->anketa."' AND email='".$this->email."' AND pass='".$this->pass."'"); } // Drugace izpisemo opozorila za manjkajoca polja else{ echo '
'; foreach($errors as $error => $value){ if($error == 'invalid_email'){ foreach($value as $invalid_email){ echo $lang['srv_evoli_form_invalid_email'].': '.$invalid_email.'
'; } } else echo $value.'
'; } echo '
'; $this->displayForm(); } } // Shranimo submitane podatke in aktiviramo skupino private function saveData($company, $date_from, $date_to, $email_list, $departments=array()){ global $lang; // Najprej ustvarimo skupino $data = array('title' => $company, 'email' => $this->email, 'language' => $this->language, //'quota' => '39', 'date_from' => $date_from, 'date_to' => $date_to ); // Ce imamo departmente ni kvote (oz. je zaenkrat 1000), drugace je kvota enaka stevilu emailov if(count($email_list) > 0) $data['quota'] = count($email_list); else $data['quota'] = 39; // Ce imamo dolocen id skupine, potem samo posiljamo dodatne emaile in dodajamo nove deparmente if($this->group_id != 0 && $this->group_id != ''){ $tm_group = array(); $tm_group['group'] = $this->group_id; $sql = sisplet_query("SELECT id FROM srv_evoli_teammeter WHERE ank_id='".$this->anketa."' AND skupina_id='".$this->group_id."'"); $row = mysqli_fetch_array($sql); $tm_group['tm_id'] = $row['id']; // Se povecamo max kvoto if(count($email_list) > 0){ $sqlI = sisplet_query("UPDATE srv_evoli_teammeter SET kvota_max=kvota_max+".count($email_list)." WHERE ank_id='".$this->anketa."' AND skupina_id='".$this->group_id."'"); } } // Drugace dodamo novo skupino/podjetje else{ $tm_group = $this->addGroupTeamMeter($this->anketa, $data); } // Ce je prislo do napake pri dodajanju skupine if(isset($tm_group['error']) || !isset($tm_group['group']) || !isset($tm_group['tm_id'])){ echo $tm_group['error']; die(); } // Potem dodamo ustrezne vnose za oddelke (v tabelo) if(count($departments) > 0){ $data = array('tm_id' => $tm_group['tm_id'], 'departments' => $departments ); $tm_departments = $this->addSubGroupTeamMeter($this->anketa, $data); // Ce je prislo do napake pri dodajanju podskupine (oddelka) if(isset($tm_departments['error'])){ echo $tm_departments['error']; die(); } } // Na koncu posljemo maile - ce je $date_from v prihodnosti samo shranimo za kasnejse posiljanje in poslejmo s cronjobom na ustrezen dan $date_delayed = new DateTime($date_from); $date_now = new DateTime(); if($date_delayed > $date_now) { $delayed_sending = $this->saveDelayedEmails($this->anketa, $date_from, $tm_group, $email_list); } // Drugace normalno posljemo maileshranimo podatke else{ $sending = $this->sendEmails($this->anketa, $tm_group, $email_list); if(isset($sending['error'])){ echo $sending['error']; die(); } } // Izpisemo povzetek vseh vnesenih podatkov /*echo 'Survey: '.$this->anketa; echo '
';*/ echo $lang['srv_evoli_form_author_email'].': '.$this->email; echo '

'; echo $lang['srv_evoli_form_company'].': '.$company; echo '

'; echo $lang['srv_evoli_form_date_from'].': '.$date_from; echo '

'; echo $lang['srv_evoli_form_date_to'].': '.$date_to; echo '

'; if(count($departments) > 0){ echo $lang['srv_evoli_form_dep'].':'; foreach($departments as $department){ echo '
'.$department; } echo '

'; } echo $lang['srv_evoli_form_emails'].':'; foreach($email_list as $email){ echo '
'.$email; } echo '

'; echo $lang['srv_evoli_form_success'].'!'; } // Posljemo email vabila public function sendEmails($ank_id, $tm_group, $email_list){ global $lang; global $global_user_id; global $admin_type; $return = array(); // Preverimo ce sploh imamo vklopljena vabila $isEmail = (int)SurveyInfo::getInstance()->checkSurveyModule('email'); $d = new Dostop(); if(!((int)$isEmail > 0)){ $return['error'] = $lang['srv_evoli_form_err_inv'].'!'; return $return; exit(); } // Loop cez maile foreach($email_list as $email){ // Preverimo ce obstajajo vse 3 sistemske spremenljivke $sqlVariable = 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='".$ank_id."'"); if(mysqli_num_rows($sqlVariable) == 0){ $return['error'] = $lang['srv_evoli_form_err_sys'].'!'; } else{ $skupina_id = 0; $lang_id = 0; // Preverimo ce obstaja skupina $sqlTM = sisplet_query("SELECT * FROM srv_evoli_teammeter WHERE ank_id='".$ank_id."' AND id='".$tm_group['tm_id']."'"); if(mysqli_num_rows($sqlTM) == 1){ $rowTM = mysqli_fetch_array($sqlTM); $skupina_id = $rowTM['skupina_id']; $lang_id = $rowTM['lang_id']; $date_start = date("d.m.Y", strtotime($rowTM['date_from'])); $date_end = date("d.m.Y", strtotime($rowTM['date_to'])); } if($skupina_id == 0 || $lang_id == 0){ $return['error'] = $lang['srv_evoli_form_err_g1'].' "'.$tm_group['tm_id'].'" '.$lang['srv_evoli_form_err_g2'].'!'; return $return; exit(); } else{ $SI = new SurveyInvitationsNew($ank_id); // 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='".$ank_id."' AND variable IN('email') 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)) { $sys_vars[$row['spr_id']]['vre_id'] = $row['vre_id']; } $list_id = ''; // Generiramo kodo za respondenta // katera gesla (code) že imamo v bazi za to anketo $password_in_db = array(); $sql_query = sisplet_query("SELECT password FROM srv_invitations_recipients WHERE ank_id='".$ank_id."' AND deleted = '0'"); while ($sql_row = mysqli_fetch_assoc($sql_query)) { $password_in_db[$sql_row['password']] = $sql_row['password']; } // Izberemo random hash, ki se ni v bazi do { list($code,$cookie) = $SI->generateCode(); } while (in_array($code, $password_in_db)); // VSTAVIMO RESPONDENTA V SEZNAM $sql_insert_start = sisplet_query("INSERT INTO srv_invitations_recipients (ank_id, email, password, cookie, sent, responded, unsubscribed, deleted, date_inserted, inserted_uid, list_id) VALUES ('".$ank_id."', '".$email."', '".$code."', '".$cookie."', '0', '0', '0', '0', NOW(), '".$global_user_id."', '".$list_id."')"); $rec_id = mysqli_insert_id($GLOBALS['connect_db']); // 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 = '".$ank_id."' AND isdefault='1'"); if (mysqli_num_rows($sql_query_m) > 0 ) { $sql_row_m = mysqli_fetch_assoc($sql_query_m); } else { // Nimamo še vsebine sporočila $return['error'] = $lang['srv_evoli_form_err_server'].'!'; return $return; exit(); } // Kreiramo mail $subject_text = $sql_row_m['subject_text']; $body_text = $sql_row_m['body_text']; // Naslov za odgovor je avtor ankete if ($SI->validEmail($sql_row_m['reply_to'])) { $reply_to = $sql_row_m['reply_to']; } else { $reply_to = Common::getInstance()->getReplyToEmail(); } # če mamo SEO $nice_url = SurveyInfo::getSurveyLink(); $date_sent = date ("Y-m-d H:i:s"); $msg_url = $sql_row_m['url']; # odvisno ali imamo url za jezik. if ($msg_url != null && trim($msg_url) != '' ) { $url = $msg_url.'?code='.$code; } else { $url = $nice_url.'&code='.$code; } $url .= '&ai='.(int)$arch_id; // Url-ju dodamo se grupo in jezik $url .= '&skupina='.$skupina_id.'&language='.$lang_id; #odjava $unsubscribe = $site_url . 'admin/survey/unsubscribe.php?anketa=' . $ank_id . '&code='.$code; // VSTAVIMO POSILJANJE V ARHIV $arvhive_naslov = 'mailing_'.date("d.m.Y").', '.date("H:i:s"); $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, '$ank_id', '$date_sent', '$subject_text', '$body_text', '$global_user_id', '', '$arvhive_naslov', '1')"); $arch_id = mysqli_insert_id($GLOBALS['connect_db']); // Datapiping - dodatno zamenjamo še text #DATE_START# in #DATE_END# posebej za trajanje team meter testa $user_body_text = str_replace( array( '#URL#', '#URLLINK#', '#UNSUBSCRIBE#', '#EMAIL#', '#CODE#', '#PASSWORD#', '#DATE_START#', '#DATE_END#' ), array( '' . $url . '', $url, '' . $lang['user_bye_hl'] . '', $email, $code, $code, $date_start, $date_end ), $body_text ); // POSLJEMO MAIL $resultX = null; try{ $MA = new MailAdapter($ank_id, $type='invitation'); $MA->addRecipients($email); $resultX = $MA->sendMail($user_body_text, $subject_text); } catch (Exception $e){ // todo fajn bi bilo zalogirat kaj se dogaja $__error = $e->getMessage(); $__errStack = $e->getTraceAsString(); } // Vabilo OK poslano if ($resultX) { // Updatamo prejemnika - status in sent $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET sent='1', date_sent='".$date_sent."', last_status='1' WHERE id='".$rec_id."'"); // Updatamo se arhiv $sqlQuery = sisplet_query("UPDATE srv_invitations_archive SET cnt_succsess='1', cnt_error='0' WHERE id='".$arch_id."'"); // Updatamo arhiv prejemnikov $sqlQuery = sisplet_query("INSERT INTO srv_invitations_archive_recipients (arch_id,rec_id,success) VALUES ('".$arch_id."','".$rec_id."','1')"); // Updatamo tracking $sqlQueryTracking = sisplet_query("INSERT INTO srv_invitations_tracking (inv_arch_id, time_insert, res_id, status) VALUES ('".$arch_id."',NOW(),'".$rec_id."','1')"); // Dodamo userje v bazo $sqlUserInsert = sisplet_query("INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$ank_id."', '".$email."', '".$cookie."', '".$code."', '1', NOW(), '".$rec_id."') ON DUPLICATE KEY UPDATE cookie = '".$cookie."', pass='".$code."'"); $usr_id = mysqli_insert_id($GLOBALS['connect_db']); if ($usr_id) { // vstavimo v srv_userbase sisplet_query("INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES ('".$usr_id."','0',NOW(),'".$global_user_id."')"); // vstavimo v srv_userstatus sisplet_query("INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES ('".$usr_id."', '0', '0', NOW())"); // vstavimo v srv_data_text (email, ime, priimek) SurveyInfo::getInstance()->SurveyInit($ank_id); $db_table = (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) ? '_active' : ''; foreach ($sys_vars AS $sid => $spremenljivka) { if($spremenljivka['variable'] == 'email') sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$email."', '".$usr_id."')"); /*elseif($spremenljivka['variable'] == 'ime') sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$firstname."', '".$usr_id."')"); elseif($spremenljivka['variable'] == 'priimek') sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$lastname."', '".$usr_id."')");*/ } } else { // lahko da user že obstaja in je šlo za duplicated keys } $return['note'] = $lang['srv_evoli_form_sent'].'.'; } // Vabilo ni bilo poslano else { // Updatamo prejemnika - status in sent $sqlQuery = sisplet_query("UPDATE srv_invitations_recipients SET last_status='2' WHERE id='".$rec_id."'"); // Updatamo se arhiv $sqlQuery = sisplet_query("UPDATE srv_invitations_archive SET cnt_succsess='0', cnt_error='1' WHERE id='".$arch_id."'"); // Updatamo arhiv prejemnikov $sqlQuery = sisplet_query("INSERT INTO srv_invitations_archive_recipients (arch_id,rec_id,success) VALUES ('".$arch_id."','".$rec_id."','0')"); // Updatamo tracking $sqlQueryTracking = sisplet_query("INSERT INTO srv_invitations_tracking (inv_arch_id, time_insert, res_id, status) VALUES ('".$arch_id."',NOW(),'".$rec_id."','2')"); // Dodamo userje v bazo $sqlUserInsert = sisplet_query("INSERT INTO srv_user (ank_id, email, cookie, pass, last_status, time_insert, inv_res_id) VALUES ('".$ank_id."', '".$email."', '".$cookie."', '".$code."', '2', NOW(), '".$rec_id."') ON DUPLICATE KEY UPDATE cookie = '".$cookie."', pass='".$code."'"); $usr_id = mysqli_insert_id($GLOBALS['connect_db']); if ($usr_id) { // vstavimo v srv_userbase sisplet_query("INSERT INTO srv_userbase (usr_id, tip, datetime, admin_id) VALUES ('".$usr_id."','0',NOW(),'".$global_user_id."')"); // vstavimo v srv_userstatus sisplet_query("INSERT INTO srv_userstatus (usr_id, tip, status, datetime) VALUES ('".$usr_id."', '0', '0', NOW())"); // vstavimo v srv_data_text (email, ime, priimek) SurveyInfo::getInstance()->SurveyInit($ank_id); $db_table = (SurveyInfo::getInstance()->getSurveyColumn('db_table') == 1) ? '_active' : ''; foreach ($sys_vars AS $sid => $spremenljivka) { if($spremenljivka['variable'] == 'email'){ $data_insert = sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$email."', '".$usr_id."')"); } /*elseif($spremenljivka['variable'] == 'ime'){ $data_insert = sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$firstname."', '".$usr_id."')"); } elseif($spremenljivka['variable'] == 'priimek'){ $data_insert = sisplet_query("INSERT INTO srv_data_text".$db_table." (spr_id, vre_id, text, usr_id) VALUES ('".$sid."', '".$spremenljivka['vre_id']."', '".$lastname."', '".$usr_id."')"); }*/ } } else { // lahko da user že obstaja in je šlo za duplicated keys } $return['error'] = $lang['srv_evoli_form_err_sending'].'!'; } } } } return $return; } // Shranimo podatke za naknadno posiljanje (skupina je aktivna sele kasneje) private function saveDelayedEmails($ank_id, $date_from, $tm_group, $email_list){ $tm_group_string = serialize($tm_group); $email_list_string = serialize($email_list); $date_from = date("Y-m-d", strtotime($date_from)); // Vstavimo polje za naknadno posiljanje $sql_insert_start = sisplet_query("INSERT INTO srv_evoli_teammeter_delayed (ank_id, date_from, tm_group, emails) VALUES ('".$ank_id."', '".$date_from."', '".$tm_group_string."', '".$email_list_string."')"); } // Doda novo skupino za Evoli - teammeter private function addGroupTeamMeter($ank_id, $data){ global $lang; global $global_user_id; global $admin_type; global $site_path; $return = array(); // Obvezni parametri $group_naslov = (isset($data['title'])) ? $data['title'] : ''; $email = (isset($data['email'])) ? $data['email'] : ''; $language = (isset($data['language'])) ? $data['language'] : ''; $kvota_max = (isset($data['quota'])) ? $data['quota'] : ''; $date_from = (isset($data['date_from'])) ? $data['date_from'] : ''; $date_to = (isset($data['date_to'])) ? $data['date_to'] : ''; if($group_naslov != '' && $email != '' && $language != '' && $kvota_max != ''){ $ss = new SurveySkupine($ank_id); $spr_id = $ss->hasSkupine(); // Na zacetku moramo ustvarit najprej vprasanje if($spr_id == 0){ $sqlG = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id='$ank_id' AND vrstni_red='1'"); $rowG = mysqli_fetch_array($sqlG); $gru_id = $rowG['id']; $b = new Branching($ank_id); $spr_id = $b->nova_spremenljivka($grupa=$gru_id, $grupa_vrstni_red=1, $vrstni_red=0); $sql = sisplet_query("UPDATE srv_spremenljivka SET naslov='".$lang['srv_skupina']."', variable='skupina', variable_custom='1', skupine='1', sistem='1', visible='0', size='0' WHERE id='$spr_id'"); Vprasanje::change_tip($spr_id, 1); } // Ustvarimo vrednost v vprasanju $v = new Vprasanje($ank_id); $v->spremenljivka = $spr_id; $vre_id = $v->vrednost_new($group_naslov); // Preverimo ce imamo nice URL -> dodamo dodatnega za skupine $sql = sisplet_query("SELECT * FROM srv_nice_links WHERE ank_id='$ank_id'"); if(mysqli_num_rows($sql) > 0){ Common::updateEditStamp(); $row = mysqli_fetch_array($sql); $add = false; $anketa = $ank_id; $nice_url = $row['link']; $sql2 = sisplet_query("SELECT variable, vrstni_red FROM srv_vrednost WHERE id='$vre_id'"); $row2 = mysqli_fetch_array($sql2); $nice_url .= '_'.$row2['vrstni_red']; $f = @fopen($site_path.'.htaccess', 'rb'); if ($f !== false) { $add = true; while (!feof($f)) { $r = fgets($f); if (strpos($r, "^".$nice_url.'\b') !== false) { // preverimo, da ni tak redirect ze dodan $add = false; } } fclose($f); } if (strlen($nice_url) < 3) $add = false; if (SurveyInfo::getInstance()->checkSurveyModule('uporabnost')) $link = 'main/survey/uporabnost.php?anketa='.$anketa.'&skupina='.$vre_id; else $link = 'main/survey/index.php?anketa='.$anketa.'&skupina='.$vre_id; if ($add) { $f = @fopen($site_path.'.htaccess', 'a'); if ($f !== false) { fwrite($f, "\nRewriteRule ^".$nice_url.'\b(.*) '.$link."&foo=\$1&%{QUERY_STRING}"); fclose($f); $sqlI = sisplet_query("INSERT INTO srv_nice_links_skupine (id,ank_id,nice_link_id,vre_id,link) VALUES ('','$ank_id','$row[id]','$vre_id','$nice_url')"); } } } if($language == 'slo') $lang_id = 1; elseif($language == 'den') $lang_id = 29; else $lang_id = 2; $nice_url = SurveyInfo::getSurveyLink(); $group_url = $nice_url.'?skupina='.$vre_id.'&language='.$lang_id; // Popravimo datuma od in do $date_from = date("Y-m-d", strtotime($date_from)); $date_to = date("Y-m-d", strtotime($date_to)); // Dodamo se vrednosti v posebno tabelo za evoli team meter $sqlI = sisplet_query("INSERT INTO srv_evoli_teammeter (ank_id, skupina_id, email, lang_id, url, kvota_max, date_from, date_to) VALUES ('".$ank_id."', '".$vre_id."', '".$email."', '".$lang_id."', '".$group_url."', '".$kvota_max."', '".$date_from."', '".$date_to."')"); // Vrnemo id tm vnosa $return['tm_id'] = mysqli_insert_id($GLOBALS['connect_db']); // Vrnemo grupo $return['group'] = $vre_id; // Vrnemo tudi url do ankete za ustvarjeno skupino $return['url'] = $group_url; $return['note'] = $lang['srv_evoli_form_group_added'].'.'; } else{ $return['error'] = $lang['srv_evoli_form_err_parameter1'].'!'; } return $return; } // Doda novo PODskupino (department) za Evoli - teammeter private function addSubGroupTeamMeter($ank_id, $data){ global $lang; global $global_user_id; global $admin_type; global $site_path; $return = array(); // Obvezni parametri $departments = (isset($data['departments'])) ? $data['departments'] : ''; $tm_id = (isset($data['tm_id'])) ? $data['tm_id'] : ''; if(count($departments) > 0 && $tm_id != ''){ foreach($departments as $department){ // Dodamo se vrednosti v posebno tabelo oddelkov za evoli team meter $sqlI = sisplet_query("INSERT INTO srv_evoli_teammeter_department (tm_id, department) VALUES ('".$tm_id."', '".$department."')"); } } else{ $return['error'] = $lang['srv_evoli_form_err_parameter2'].'!'; } return $return; } // Preverimo ce ima kupec ustrezen pass za dostop do forme public function checkAccess(){ // Ce obstaja user v bazi z ustreznim geslom ali gre za posebno geslo za rocen vnos $sql = sisplet_query("SELECT pass FROM srv_evoli_landingPage_access WHERE ank_id='".$this->anketa."' AND email='".$this->email."' AND pass='".$this->pass."' AND used='0'"); if(mysqli_num_rows($sql) > 0 || $this->pass == 'evoli99admin') return true; else return false; } } ?>