本文整理汇总了PHP中Ticket_User::isAlternateEmailForTicket方法的典型用法代码示例。如果您正苦于以下问题:PHP Ticket_User::isAlternateEmailForTicket方法的具体用法?PHP Ticket_User::isAlternateEmailForTicket怎么用?PHP Ticket_User::isAlternateEmailForTicket使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ticket_User
的用法示例。
在下文中一共展示了Ticket_User::isAlternateEmailForTicket方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildTicket
/** function buildTicket - Builds,and returns, the major structure of the ticket to be entered.
*
* @param $i mail ID
* @param $options array options
*
* @return ticket fields array
*/
function buildTicket($i, $options = array())
{
$play_rules = isset($options['play_rules']) && $options['play_rules'];
$head = $this->getHeaders($i);
// Get Header Info Return Array Of Headers
// **Key Are (subject,to,toOth,toNameOth,from,fromName)
$tkt = array();
$tkt['_blacklisted'] = false;
// Detect if it is a mail reply
$glpi_message_match = "/GLPI-([0-9]+)\\.[0-9]+\\.[0-9]+@\\w*/";
// Check if email not send by GLPI : if yes -> blacklist
if (preg_match($glpi_message_match, $head['message_id'], $match)) {
$tkt['_blacklisted'] = true;
return $tkt;
}
// max size = 0 : no import attachments
if ($this->fields['filesize_max'] > 0) {
if (is_writable(GLPI_DOC_DIR . "/_tmp/")) {
$_FILES = $this->getAttached($i, GLPI_DOC_DIR . "/_tmp/", $this->fields['filesize_max']);
} else {
logInFile('mailgate', GLPI_DOC_DIR . "/_tmp/ is not writable");
}
}
// Who is the user ?
$tkt['_users_id_requester'] = User::getOrImportByEmail($head['from']);
$tkt["_users_id_requester_notif"]['use_notification'] = 1;
if (!$tkt['_users_id_requester']) {
$tkt["_users_id_requester_notif"]['alternative_email'] = $head['from'];
}
// Add to and cc as additional observer if user found
if (count($head['ccs'])) {
foreach ($head['ccs'] as $cc) {
if ($cc != $head['from'] && strcasecmp($cc, $this->fields['name']) && ($tmp = User::getOrImportByEmail($cc)) > 0) {
$tkt['_additional_observers'][] = array('users_id' => $tmp, 'use_notification' => 1);
}
}
}
if (count($head['tos'])) {
foreach ($head['tos'] as $to) {
if ($to != $head['from'] && strcasecmp($to, $this->fields['name']) && ($tmp = User::getOrImportByEmail($to, false)) > 0) {
$tkt['_additional_observers'][] = array('users_id' => $tmp, 'use_notification' => 1);
}
}
}
// Auto_import
$tkt['_auto_import'] = 1;
// For followup : do not check users_id = login user
$tkt['_do_not_check_users_id'] = 1;
$body = $this->getBody($i);
// Do it before using charset variable
$head['subject'] = $this->decodeMimeString($head['subject']);
$tkt['_head'] = $head;
if (!empty($this->charset) && !$this->body_converted) {
$body = encodeInUtf8($body, $this->charset);
$this->body_converted = true;
}
if (!seems_utf8($body)) {
$tkt['content'] = encodeInUtf8($body);
} else {
$tkt['content'] = $body;
}
// Add message from getAttached
if ($this->addtobody) {
$tkt['content'] .= $this->addtobody;
}
// See In-Reply-To field
if (isset($head['in_reply_to'])) {
if (preg_match($glpi_message_match, $head['in_reply_to'], $match)) {
$tkt['tickets_id'] = intval($match[1]);
}
}
// See in References
if (!isset($tkt['tickets_id']) && isset($head['references'])) {
if (preg_match($glpi_message_match, $head['references'], $match)) {
$tkt['tickets_id'] = intval($match[1]);
}
}
// See in title
if (!isset($tkt['tickets_id']) && preg_match('/\\[GLPI #(\\d+)\\]/', $head['subject'], $match)) {
$tkt['tickets_id'] = intval($match[1]);
}
// Found ticket link
if (isset($tkt['tickets_id'])) {
// it's a reply to a previous ticket
$job = new Ticket();
// Check if ticket exists and users_id exists in GLPI
/// TODO check if users_id have right to add a followup to the ticket
if ($job->getFromDB($tkt['tickets_id']) && $job->fields['status'] != 'closed' && ($tkt['_users_id_requester'] > 0 || Ticket_User::isAlternateEmailForTicket($tkt['tickets_id'], $head['from']))) {
$content = explode("\n", $tkt['content']);
$tkt['content'] = "";
$first_comment = true;
$to_keep = array();
foreach ($content as $ID => $val) {
//.........这里部分代码省略.........