Beispiel #1
0
                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();
}
Beispiel #2
0
    /**
     * 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;
    }