foreach ($ArAttached as $IDAttach) { if (!F1DeskUtils::isAttached($IDTicket, $IDAttach)) { $ObjTicket->attachTicket($IDTicket, $IDAttach); } } } } elseif (!empty($_POST) && $_POST['StAction'] == 'addSupporters') { $ArSupporters = F1DeskUtils::getAllSupporters(); if ($ArSupporters[0]['IDSupporter'] == 0) { array_shift($ArSupporters); } } /*************************************** * Create Data * ****************************************/ 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(); } $ArTypes = F1DeskUtils::listTicketTypes(); $ArPriorities = F1DeskUtils::listPriorities(); $ArCategories = F1DeskUtils::listCategories(); if (F1DeskUtils::IsSupporter()) { $ArSub = F1DeskUtils::getSubDepartments(getSessionProp('IDSupporter')); }
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(); }
<?php /*default*/ handleLanguage(__FILE__); $currentPage = F1DeskUtils::$CurrentPage; if (file_exists(ABSTEMPLATEDIR . $currentPage . '.php') && Validate::Session(true) === true) { $ArMenu = F1DeskUtils::getMenuTab($currentPage); } else { $ArMenu = array(); } ?> <? print('<?xml version="1.0" encoding="UTF-8"?>' . "\n"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt"> <head> <title><?php echo getOption('title'); ?> </title> <style type="text/css" media="screen"> @import url('<?php echo TEMPLATEDIR; ?> css/style.css'); @import url('<?php echo TEMPLATEDIR; ?> css/fonts.css'); </style> <?php echo defaultCSS();
public static function setDepartment($IDDepartment = NULL) { $IDDepartment = self::NumberValidate($IDDepartment, EXC_INVALID_IDDEPARTMENT); if (!empty($IDDepartment)) { $StWhere = " TD.IDDepartment = {$IDDepartment} "; } else { if (empty(self::$IDSupporterLogged)) { throw new errorHandler(EXC_BAD_ARGUMENT . ' "IDSupporterLogged" '); } // die('aqui >> '. self::$IDSupporterLogged); $ArDepartment = F1DeskUtils::getDepartments(self::$IDSupporterLogged); $ArDepartment = array_keys($ArDepartment); // print_R($ArDepartment); foreach ((array) $ArDepartment as $StDepartment) { if (is_numeric($StDepartment)) { $ArIDDepartment[] = $StDepartment; } } unset($ArDepartment); $StInDepartment = implode(',', $ArIDDepartment); $StWhere = " TD.IDDepartment IN ( {$StInDepartment} ) "; } self::$BoSetDepartment = TRUE; self::ArWhereAdd($StWhere); }
<?php require_once 'main.php'; $ObjTicket = new TicketHandler(); if (F1DeskUtils::IsSupporter()) { $IDSupporter = getSessionProp('IDSupporter'); $ArDepartments = F1DeskUtils::getDepartments($IDSupporter); $ArIDDepartments = array_keys($ArDepartments); $ArTickets = $ObjTicket->getTickets($ArIDDepartments, $IDSupporter); } else { $IDUser = getSessionProp('IDUser'); $ArDepartments = F1DeskUtils::getUserDepartments(); $ArIDDepartments = array_keys($ArDepartments); $ArTickets = $ObjTicket->getUserTickets($IDUser); }
if (F1DeskUtils::isSupporter()) { $ArResult['BoPermission'] = 'true'; } if (isset($ArResult['BoPermission']) && $ArResult['BoPermission'] == 'true') { if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { $StFileName = preg_replace('/\\./', '%2e', $ArResult['StFile'], substr_count($ArResult['StFile'], '.') - 1); } else { $StFileName = $ArResult['StFile']; } $StFileName = strtr($StFileName, ' ', '_'); if (isset($ArResult['StLink']) && !is_dir($ArResult['StLink'])) { $ItFileSize = filesize($ArResult['StLink']); $tmpFile = F1DeskUtils::toTMP($ArResult['StLink'], 'path'); } else { $ItFileSize = mb_strlen($ArResult['ByFile'], 'latin1'); $tmpFile = F1DeskUtils::toTMP($ArResult['ByFile'], 'file'); } # # Verificar este header pois o mesmo não exibe corretamente o tamanho do arquivo, quando disponiblizado para download # header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename=" . $StFileName . ";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $ItFileSize); rewind($tmpFile); fpassthru($tmpFile);
/** * Create the combobox with the Canned Answers * * @param unknown_type $ArResponses * @return unknown */ public static function createCannedCombo($ArResponses) { $StHtml = ''; if (F1DeskUtils::IsSupporter()) { $StHtml = "<select class='inputCombo' id='cannedAnswers'>"; if ($ArResponses[0]['IDCannedResponse'] != '') { foreach ($ArResponses as $Response) { $StHtml .= "<option value='" . f1desk_escape_string($Response['TxMessage'], true, true) . "' >" . $Response['StTitle'] . "</option>"; } } else { $StHtml .= "<option value='null'>" . NO_ANSWER . "</option>"; } $StHtml .= '</select>'; $StHtml .= "<button class='button' onclick='Ticket.addCannedResponse(); return false;'>" . ADD . "</button>"; } return $StHtml; }
<?php require_once dirname(__FILE__) . '/main.php'; Validate::Session(); $StPage = array_key_exists('page', $_GET) ? $_GET['page'] : ''; F1DeskUtils::showPage($StPage);
/** * 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; }
/** * validate users session * * @param bool $Return * * @return bool * * @author Dimitri Lameri <*****@*****.**> */ public static function Session($Return = false) { $Valid = true; if (!(array_key_exists('StHash', $_SESSION) && array_key_exists('IDUser', $_SESSION) && array_key_exists('StName', $_SESSION))) { $Valid = false; } if ($Valid === true) { $StHash = $_SESSION['StHash']; $StComparison = md5($_SESSION['IDUser'] . $_SESSION['StName']); if ($StHash !== $StComparison) { $Valid = false; } } if ($Return == true || $Valid === true) { return $Valid; } else { if ($Valid === false) { $_SESSION = array(); if (array_key_exists('page', $_GET)) { setSessionProp('lastPage', $_GET['page']); } F1DeskUtils::showPage('login'); die; } } }
public static function getDepartmentsFormatted($IDSupporter) { $ArFormatted = array(); $ArDepartments = F1DeskUtils::getDepartments($IDSupporter); $ArSubDepartments = F1DeskUtils::getSubDepartments($IDSupporter); foreach ($ArDepartments as $IDDepartment => $StDepartment) { if (array_key_exists($IDDepartment, $ArSubDepartments) === true) { $ArSubs = $ArSubDepartments[$IDDepartment]; } else { $ArSubs = array(); } $ArFormatted[$IDDepartment] = array('ID' => $IDDepartment, 'StDepartment' => $StDepartment, 'ArSubDepartments' => $ArSubs); } foreach ($ArSubDepartments as $IDDepartment => $ArSubDepartments) { foreach ($ArSubDepartments as $IDSubDepartments) { if (array_key_exists($IDSubDepartments, $ArDepartments) === true) { $ArFormatted[$IDSubDepartments] = array('ID' => $IDSubDepartments, 'StDepartment' => $ArDepartments[$IDDepartment] . '::' . $ArDepartments[$IDSubDepartments]); } } } return $ArFormatted; }
echo ADD_SUPPORTER; ?> </p> <div id='addedRecipients' class='NoDisplay'> <h4><?php echo ADDED_SUP; ?> </h4> </div> <?php } ?> </div> <?php if (F1DeskUtils::IsSupporter()) { ?> <div id='respondTo'> <h3><?php echo REPLY_TO; ?> </h3> <?php echo TemplateHandler::createFormattedCombo($ArDepartments, 'IDReader', 'IDReader', 'inputCombo'); ?> <p><?php echo CLICK; ?> <a href='javascript:void(0);' class='Link' onclick='Writing.listSupporters("Readers")'><?php echo HERE; ?>
ErrorHandler::setNotice('bookmark', BOOKMARK_OK, 'ok'); } break; default: ErrorHandler::setNotice('user', NO_ACTION, 'error'); break; } } /*************************************** * Home data * ****************************************/ # # User's data # if ($isSupporter) { $ArUser = F1DeskUtils::getUserData(getSessionProp('IDSupporter'), 0); # # Canned response's data # $ArCannedResponses = F1DeskUtils::listCannedResponses(getSessionProp('IDSupporter')); # # Note's Data # $ArNotes = F1DeskUtils::listNotes(getSessionProp('IDSupporter')); # # Bookmarked Ticket's data # $ArBookmark = F1DeskUtils::listSupporterBookmark(getSessionProp('IDSupporter')); } else { $ArUser = F1DeskUtils::getUserData(getSessionProp('IDClient'), 1); }
} else { $IDDepartment = 'single'; } $StSupporter = !empty($ArHeaders['StName']) ? $ArHeaders['StName'] : ''; $StSituation = $ArHeaders['StSituation']; if ($isSupporter) { $BoIgnored = isset($BoIgnored) ? $BoIgnored : F1DeskUtils::isIgnored($IDSupporter, $IDTicket); $BoBookMark = isset($BoBookMark) ? $BoBookMark : F1DeskUtils::isBookmarked($IDSupporter, $IDTicket); } # # Ticket Info # if ($isSupporter) { $ArAttachedTickets = $ObjTicket->getAttachedTickets($IDTicket); $ArTicketsAttached = $ObjTicket->getTicketsAttached($IDTicket); $ArTicketDepartments = $ObjTicket->getTicketDepartments($IDTicket); $ArTicketDepartmentsReader = $ObjTicket->getTicketDepartmentsReader($IDTicket); $ArTicketDestinations = $ObjTicket->getTicketDestination($IDTicket); $ArTicketReaders = $ObjTicket->getTicketReaders($IDTicket); } $ArMessages = $ObjTicket->listTicketMessages($IDTicket); $DtOpened = F1DeskUtils::formatDate('datetime_format', $ArHeaders['DtOpened']); $StTicketCategory = $ObjTicket->getTicketCategory($IDTicket); $StTicketPriority = $ObjTicket->getTicketPriority($IDTicket); $StTicketType = $ObjTicket->getTicketType($IDTicket); $ArRates = F1DeskUtils::listRate(); if ($isSupporter) { $ArResponses = F1DeskUtils::listCannedResponses($IDSupporter, $IDDepartment); } } /************************** ### End - Loading Data ### ***************************/