response is being sent from the correct support group atm
--HG-- branch : quitta-gsoc-2013
This commit is contained in:
parent
69192712a0
commit
ba2c506120
3 changed files with 28 additions and 95 deletions
|
@ -12,30 +12,29 @@ class Mail_Handler{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function send_ticketing_mail($ticketObj, $content, $type, $author) {
|
public static function send_ticketing_mail($ticketObj, $content, $type, $sendingGroupId = 0) {
|
||||||
global $TICKET_MAILING_SUPPORT;
|
global $TICKET_MAILING_SUPPORT;
|
||||||
if($TICKET_MAILING_SUPPORT){
|
if($TICKET_MAILING_SUPPORT){
|
||||||
$txt = "";
|
//$txt = "";
|
||||||
$subject = "";
|
//$subject = "";
|
||||||
|
if($sendingGroupId == 0){
|
||||||
|
//if it is not forwarded (==public == which returns 0) then make it NULL which is needed to be placed in the DB.
|
||||||
|
$sendingGroupId = NULL;
|
||||||
|
}
|
||||||
if($type == "REPLY"){
|
if($type == "REPLY"){
|
||||||
$txt = "---------- Ticket #". $ticketObj->getTId() . " ----------\n You received a new reply on your ticket: " . $ticketObj->getTitle() .
|
$txt = "---------- Ticket #". $ticketObj->getTId() . " ----------\n You received a new reply on your ticket: " . $ticketObj->getTitle() .
|
||||||
"\n --------------------\n\n";
|
"\n --------------------\n\n";
|
||||||
$subject = "New reply on [Ticket #" . $ticketObj->getTId() ."]";
|
$subject = "New reply on [Ticket #" . $ticketObj->getTId() ."]";
|
||||||
$endTxt = "\n\n----------\nYou can reply on this message to answer directly on the ticket!";
|
$endTxt = "\n\n----------\nYou can reply on this message to answer directly on the ticket!";
|
||||||
$txt = $txt . $content . $endTxt;
|
$txt = $txt . $content . $endTxt;
|
||||||
self::send_mail($ticketObj->getAuthor(),$subject,$txt, $ticketObj->getTId(),$author);
|
self::send_mail($ticketObj->getAuthor(),$subject,$txt, $ticketObj->getTId(),$sendingGroupId);
|
||||||
}else if($type == "NEW"){
|
}else if($type == "NEW"){
|
||||||
$txt = "---------- Ticket #". $ticketObj->getTId() . " ----------\n Your ticket: " . $ticketObj->getTitle() . " is newly created";
|
$txt = "---------- Ticket #". $ticketObj->getTId() . " ----------\n Your ticket: " . $ticketObj->getTitle() . " is newly created";
|
||||||
if($ticketObj->getAuthor() != $author){
|
|
||||||
$txt = $txt . " by " . Ticket_User::get_username_from_id($author);
|
|
||||||
}else{
|
|
||||||
$author = $ticketObj->getAuthor();
|
|
||||||
}
|
|
||||||
$txt = $txt . "\n --------------------\n\n";
|
$txt = $txt . "\n --------------------\n\n";
|
||||||
$subject = "New ticket created [Ticket #" . $ticketObj->getTId() ."]";
|
$subject = "New ticket created [Ticket #" . $ticketObj->getTId() ."]";
|
||||||
$endTxt = "\n\n----------\nYou can reply on this message to answer directly on the ticket!";
|
$endTxt = "\n\n----------\nYou can reply on this message to answer directly on the ticket!";
|
||||||
$txt = $txt . $content . $endTxt;
|
$txt = $txt . $content . $endTxt;
|
||||||
self::send_mail($ticketObj->getAuthor(),$subject,$txt, $ticketObj->getTId());
|
self::send_mail($ticketObj->getAuthor(),$subject,$txt, $ticketObj->getTId(), $sendingGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -62,8 +61,8 @@ class Mail_Handler{
|
||||||
$default_groupname = $cfg['mail']['default_groupname'];
|
$default_groupname = $cfg['mail']['default_groupname'];
|
||||||
/*
|
/*
|
||||||
$inbox_host = $cfg['mail']['host'];
|
$inbox_host = $cfg['mail']['host'];
|
||||||
$oms_reply_to = "Ryzom Ticketing Support <ticketing@".$inbox_host.">";
|
$oms_reply_to = "Ryzom Ticketing Support <ticketing@".$inbox_host.">";*/
|
||||||
global $MAIL_DIR;*/
|
global $MAIL_DIR;
|
||||||
|
|
||||||
|
|
||||||
// Deliver new mail
|
// Deliver new mail
|
||||||
|
@ -154,7 +153,7 @@ class Mail_Handler{
|
||||||
if($tid) {
|
if($tid) {
|
||||||
//TODO: base file on Ticket + timestamp
|
//TODO: base file on Ticket + timestamp
|
||||||
$file = fopen($MAIL_DIR."/mail/ticket".$tid.".".time(), 'w');
|
$file = fopen($MAIL_DIR."/mail/ticket".$tid.".".time(), 'w');
|
||||||
fwrite($file, $entire_email);
|
fwrite($file, imap_fetchheader($mbox, $i) . imap_body($mbox, $i));
|
||||||
fclose($file);
|
fclose($file);
|
||||||
|
|
||||||
//mark message $i of $mbox for deletion!
|
//mark message $i of $mbox for deletion!
|
||||||
|
@ -255,7 +254,7 @@ class Mail_Handler{
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
print("\n Email found that is a reply to a ticket!\n");
|
print("\n Email found that is a reply to a ticket at:".$group->getGroupEmail());
|
||||||
return $ticket_id;
|
return $ticket_id;
|
||||||
|
|
||||||
}else if($from != "FALSE"){
|
}else if($from != "FALSE"){
|
||||||
|
@ -263,91 +262,21 @@ class Mail_Handler{
|
||||||
//if ticket_id isn't found, create a new ticket!
|
//if ticket_id isn't found, create a new ticket!
|
||||||
//if an existing email address mailed the ticket
|
//if an existing email address mailed the ticket
|
||||||
|
|
||||||
$newTicketId = Ticket::create_Ticket($subject, $txt,1, $from, $from);
|
//if not default group, then forward it by giving the $group->getSGroupId's param
|
||||||
|
$newTicketId = Ticket::create_Ticket($subject, $txt,1, $from, $from, $group->getSGroupId());
|
||||||
|
|
||||||
//if not default group, then forward it!
|
print("\n Email regarding new ticket found at:".$group->getGroupEmail());
|
||||||
if($group->getSGroupId()){
|
|
||||||
Ticket::forwardTicket(0, $newTicketId, $group->getSGroupId());
|
|
||||||
}
|
|
||||||
print("\n Email found that is a new ticket!\n");
|
|
||||||
return $newTicketId;
|
return $newTicketId;
|
||||||
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//if it's a email that has nothing to do with ticketing, return 0;
|
//if it's a email that has nothing to do with ticketing, return 0;
|
||||||
print("\n Email found that isn't a reply or new ticket!\n");
|
print("\n Email found that isn't a reply or new ticket, at:".$group->getGroupEmail());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*function ams_create_email($from, $subject, $body, $html, $recipient = 0, $sender = NULL) {
|
|
||||||
|
|
||||||
//TODO:
|
|
||||||
if($recipient == 0 && !is_string($recipient)) {
|
|
||||||
global $user;
|
|
||||||
$recipient = $user->uid;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($sender !== NULL && !is_numeric($sender)) $sender = self::get_id_from_username($sender);
|
|
||||||
if(!is_numeric($recipient)) $recipient = self::get_id_from_username($recipient);
|
|
||||||
|
|
||||||
$message = array(
|
|
||||||
'creator' => $sender,
|
|
||||||
'owner' => $recipient,
|
|
||||||
'type' => 'email',
|
|
||||||
'summary' => $subject,
|
|
||||||
'data' => array (
|
|
||||||
'subject' => $subject,
|
|
||||||
'body' => $body,
|
|
||||||
'html' => $html,
|
|
||||||
'sender' => oms_get_username_from_id($sender),
|
|
||||||
'from' => $from,
|
|
||||||
'recipient' => oms_get_username_from_id($recipient),
|
|
||||||
'time' => time(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
//TO ASK:
|
|
||||||
oms_task_create($message);
|
|
||||||
oms_task_index($message, array('subject', 'body', 'sender', 'recipient'));
|
|
||||||
//---------------------------
|
|
||||||
return $message['id_task'];
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*function oms_get_email($id) {
|
|
||||||
|
|
||||||
$message = oms_task_load($id);
|
|
||||||
if($message) {
|
|
||||||
oms_prepare_email($message);
|
|
||||||
return $message;
|
|
||||||
} else {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*function oms_prepare_email(&$message) {
|
|
||||||
|
|
||||||
$data = $message['data'];
|
|
||||||
$data['id_message'] = $message['id_task'];
|
|
||||||
$data['read'] = ($message['status'] != 'NEW' && $message['status'] != 'UNREAD');
|
|
||||||
$message = $data;
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*function oms_email_mark_read($mid) {
|
|
||||||
|
|
||||||
db_exec("update task set status = 'READ' where id_task = ? and type = 'email' and module = 'email'", array($mid));
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function decode_utf8($str) {
|
function decode_utf8($str) {
|
||||||
|
|
|
@ -81,9 +81,9 @@ class Ticket{
|
||||||
|
|
||||||
/*FUNCTION: create_Ticket()
|
/*FUNCTION: create_Ticket()
|
||||||
* creates a ticket + first initial reply and fills in the content of it!
|
* creates a ticket + first initial reply and fills in the content of it!
|
||||||
*
|
* for_support_group defines to which support group the ticket has to be forwarded
|
||||||
*/
|
*/
|
||||||
public static function create_Ticket( $title, $content, $category, $author, $real_author) {
|
public static function create_Ticket( $title, $content, $category, $author, $real_author, $for_support_group = 0) {
|
||||||
|
|
||||||
$ticket = new Ticket();
|
$ticket = new Ticket();
|
||||||
$values = array("Title" => $title, "Status"=> 1, "Queue"=> 0, "Ticket_Category" => $category, "Author" => $author, "Priority" => 0);
|
$values = array("Title" => $title, "Status"=> 1, "Queue"=> 0, "Ticket_Category" => $category, "Author" => $author, "Priority" => 0);
|
||||||
|
@ -97,7 +97,13 @@ class Ticket{
|
||||||
Ticket_Log::createLogEntry( $ticket_id, $real_author, 2, $author);
|
Ticket_Log::createLogEntry( $ticket_id, $real_author, 2, $author);
|
||||||
}
|
}
|
||||||
Ticket_Reply::createReply($content, $author, $ticket_id, 0, $author);
|
Ticket_Reply::createReply($content, $author, $ticket_id, 0, $author);
|
||||||
Mail_Handler::send_ticketing_mail($ticket, $content, "NEW", $real_author);
|
|
||||||
|
//send email that new ticket has been created
|
||||||
|
if($for_support_group){
|
||||||
|
Ticket::forwardTicket(0, $ticket_id, $for_support_group);
|
||||||
|
}
|
||||||
|
|
||||||
|
Mail_Handler::send_ticketing_mail($ticket, $content, "NEW", $real_author, $ticket->getForwardedGroupId());
|
||||||
return $ticket_id;
|
return $ticket_id;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -160,7 +166,7 @@ class Ticket{
|
||||||
|
|
||||||
//notify ticket author that a new reply is added!
|
//notify ticket author that a new reply is added!
|
||||||
if($ticket->getAuthor() != $author){
|
if($ticket->getAuthor() != $author){
|
||||||
Mail_Handler::send_ticketing_mail($ticket, $content, "REPLY", $author);
|
Mail_Handler::send_ticketing_mail($ticket, $content, "REPLY", $ticket->getForwardedGroupId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -82,8 +82,6 @@ class WebUsers extends Users{
|
||||||
$statement = $dbw->execute("SELECT * FROM ams_user WHERE Email=:email", array('email' => $email));
|
$statement = $dbw->execute("SELECT * FROM ams_user WHERE Email=:email", array('email' => $email));
|
||||||
$row = $statement->fetch();
|
$row = $statement->fetch();
|
||||||
if(!empty($row)){
|
if(!empty($row)){
|
||||||
print "shouldn't be here!" . $row . "seee";
|
|
||||||
|
|
||||||
return $row['UId'];
|
return $row['UId'];
|
||||||
}else{
|
}else{
|
||||||
return "FALSE";
|
return "FALSE";
|
||||||
|
|
Loading…
Reference in a new issue