ErrorHandler::setNotice('language', DATA_NEEDED_TO_LANGUAGE, 'error'); } else { if (!F1DeskUtils::createLanguage($_POST['StTitle'], $_POST['StPath'])) { ErrorHandler::setNotice('language', ERROR_CREATE_LANGUAGE, 'error'); } else { ErrorHandler::setNotice('language', SUCESS_CREATE_LANGUAGE, 'ok'); } } break; } } $ArMenus = F1DeskUtils::getMenuTab('admin'); $ArDepartments = F1DeskUtils::getPublicDepartments(false); $ArGeneralOptions = F1DeskUtils::listGeneralOptions(); $ArTemplates = F1DeskUtils::getTemplates(); $ArLanguages = F1DeskUtils::getLanguages(); $ArSupporters = array(); foreach ($ArDepartments as $ArDepartment) { $ArSupporters[$ArDepartment['IDDepartment']] = F1DeskUtils::getDepartmentSupporters($ArDepartment['IDDepartment']); } $ArUnits = F1DeskUtils::listUnits(); if (F1DeskUtils::isSupporter()) { $BoCreate = F1DeskUtils::getPermission('BoCreateTicket', getSessionProp('IDSupporter')); if ($BoCreate) { $ArDepartments = F1DeskUtils::getPublicDepartments(false); } else { $ArDepartments = F1DeskUtils::getDepartmentsFormatted(getSessionProp('IDSupporter')); } } else { $ArDepartments = F1DeskUtils::getPublicDepartments(); }
/** * Send an email to all users related to the ticket given for each new message. * * @param int $IDTicket * @return Boolean */ public function _sendNotifyMessage($IDTicket) { $ArUsersDepartment = array(); $ArUsersDepartmentReader = array(); # # Preparing mail header # $ArEmails = $ArUsersDepartment = $ArUsersDepartmentReader = array(); $MailHandler = new MailHandler(); $MailHandler->setHTMLBody(true); $StHeaders = "MIME-Version: 1.0\r\n"; $StHeaders .= "Content-type: text/html; charset=utf-8\r\n"; # # Get the users related with the ticket # $ArRecipients = $this->getTicketDestination($IDTicket); $ArReaders = $this->getTicketReaders($IDTicket); $StSQL = ' SELECT StEmail, BoNotify FROM ' . DBPREFIX . 'User U LEFT JOIN ' . DBPREFIX . "Ticket T ON (T.IDUser = U.IDUser)\nWHERE\n T.IDTicket = {$IDTicket}"; $this->execSQL($StSQL); $ArResult = $this->getResult('string'); # # Get the department related with the ticket and his supporters # $ArDepartment = array_shift($this->getTicketDepartments($IDTicket)); $ArDepartmentReaders = array_shift($this->getTicketDepartmentsReader($IDTicket)); if (isset($ArDepartment['IDDepartment']) && isset($ArDepartmentReaders['IDDepartment'])) { $ArUsersDepartment = F1DeskUtils::getDepartmentSupporters($ArDepartment['IDDepartment']); $ArUsersDepartmentReader = F1DeskUtils::getDepartmentSupporters($ArDepartmentReaders['IDDepartment']); } # # Merging all users in one array # $ArUsers = array_merge($ArRecipients, $ArReaders); $ArUsersDepart = array_merge($ArUsersDepartment, $ArUsersDepartmentReader); $ArFinal = array_merge($ArUsers, $ArUsersDepart); $ArFinal = array_merge($ArFinal, $ArResult); # # Insert Message and Subject and strip the emails that already are in array # foreach ($ArFinal as $User) { if ($User['BoNotify']) { if (array_search($User['StEmail'], $ArEmails) === false) { $ArEmails[] = $User['StEmail']; } } } $StSubject = str_replace('###TKTNUM###', $IDTicket, NOTIFY_SUBJ); $StMessage = str_replace('###TKTNUM###', $IDTicket, NOTIFY_MESSAGE); $BoResult = $MailHandler->sendMail($ArEmails, $StSubject, $StMessage, $StHeaders); return $BoResult; }