Title:
Version: 0.94.1
Author: Mathias Schöffel
Short description: If a Customer or Staff-Member Change the Status it sends a mail
*************************************/
Description:
File: admin_change_status.php
Change Line:
Code: Select all
if ($status==3) {.....
Code: Select all
if ($status==3) {
$action=$hesklang['closed'];
$fileresult = 'emails/closed_ticket_customer.txt';
$txtlang = 'ticket_closed';
} else {
$action=$hesklang['opened'];
$fileresult = 'emails/reopened_ticket_customer.txt';
$txtlang = 'ticket_reopened';
}
Code: Select all
$admin_trackingURL=$hesk_settings['hesk_url'].'/admin_ticket.php?track='.$trackingID.'&Refresh='.rand(10000,99999);
Code: Select all
/* Get e-mail message for customer */
$fp=fopen($fileresult,'r');
$message=fread($fp,filesize($fileresult));
fclose($fp);
$sql = "SELECT name,email,subject,message FROM `hesk_tickets` WHERE `trackid`='".$trackingID."' LIMIT 1" ;
$result = hesk_dbQuery($sql) or hesk_error("$hesklang[cant_sql]: $sql</p><p>$hesklang[mysql_said]:<br>".mysql_error()."</p><p>$hesklang[contact_webmsater] $hesk_settings[webmaster_mail]");
if (hesk_dbNumRows($result) != 1) {hesk_error($hesklang['ticket_not_found']);}
$ticket = hesk_dbFetchAssoc($result);
$trackingURL=$hesk_settings['hesk_url'].'/ticket.php?track='.$trackingID;
$message=str_replace('%%RISP%%',$ticket['message'],$message);
$message=str_replace('%%NAME%%',$ticket['name'],$message);
$message=str_replace('%%SUBJECT%%',$ticket['subject'],$message);
$message=str_replace('%%TRACK_ID%%',$trackingID,$message);
$message=str_replace('%%TRACK_URL%%',$trackingURL,$message);
$message=str_replace('%%SITE_TITLE%%',$hesk_settings['site_title'] ,$message);
$message=str_replace('%%SITE_URL%%',$hesk_settings['site_url'] ,$message);
/* Send e-mail */
$headers="From: $hesk_settings[noreply_mail]\n";
$headers.="Reply-to: $hesk_settings[noreply_mail]\n";
@mail($ticket['email'],$hesklang[$txtlang]." Ticket: ".$trackingID,$message,$headers);
File: change_status.php
Change Line:
Code: Select all
if ($status==3) {.....
Code: Select all
if ($status==3) {
$action=$hesklang['closed'];
$fileresult = 'emails/closed_ticket_staff.txt';
$txtlang = 'closed_ticket_submitted';
} else {
$action=$hesklang['opened'];
$fileresult = 'emails/reopened_ticket_staff.txt';
$txtlang = 'reopened_ticket_submitted';
}
and add after Line:
Code: Select all
$trackingURL=$hesk_settings['hesk_url'].'/ticket.php?track='.$trackingID.'&Refresh='.rand(10000,99999);
Code: Select all
/* Query for Category */
$sql = "SELECT name,email,subject,message,category FROM `hesk_tickets` WHERE `trackid`='".$trackingID."' LIMIT 1" ;
$result = hesk_dbQuery($sql) or hesk_error("$hesklang[cant_sql]: $sql</p><p>$hesklang[mysql_said]:<br>".mysql_error()."</p><p>$hesklang[contact_webmsater] $hesk_settings[webmaster_mail]");
if (hesk_dbNumRows($result) != 1) {hesk_error($hesklang['ticket_not_found']);}
$ticket = hesk_dbFetchAssoc($result);
$category = $ticket['category'];
/* Need to notify any admins? */
$admins=array();
$sql = "SELECT `email`,`isadmin`,`categories` FROM `hesk_users` WHERE `notify`='1'";
$result = hesk_dbQuery($sql) or hesk_error("$hesklang[cant_sql]: $sql</p><p>$hesklang[mysql_said]:<br>".mysql_error()."</p><p>$hesklang[contact_webmsater] $hesk_settings[webmaster_mail]");
while ($myuser=hesk_dbFetchAssoc($result))
{
/* Is this an administrator? */
if ($myuser['isadmin']) {$admins[]=$myuser['email']; continue;}
/* Not admin, is he allowed this category? */
$cat=substr($myuser['categories'], 0, -1);
$myuser['categories']=explode(',',$cat);
if (in_array($category,$myuser['categories']))
{
$admins[]=$myuser['email']; continue;
}
}
if (count($admins)>0)
{
$trackingURL_admin=$hesk_settings['hesk_url'].'/admin_ticket.php?track='.$trackingID;
/* Get e-mail message for customer */
$fp=fopen($fileresult,'r');
$message=fread($fp,filesize($fileresult));
fclose($fp);
$sql = "SELECT name,email,subject,message FROM `hesk_tickets` WHERE `trackid`='".$trackingID."' LIMIT 1" ;
$result = hesk_dbQuery($sql) or hesk_error("$hesklang[cant_sql]: $sql</p><p>$hesklang[mysql_said]:<br>".mysql_error()."</p><p>$hesklang[contact_webmsater] $hesk_settings[webmaster_mail]");
if (hesk_dbNumRows($result) != 1) {hesk_error($hesklang['ticket_not_found']);}
$ticket = hesk_dbFetchAssoc($result);
$message=str_replace('%%RISP%%',$ticket['message'],$message);
$message=str_replace('%%NAME%%',$ticket['name'],$message);
$message=str_replace('%%SUBJECT%%',$ticket['subject'],$message);
$message=str_replace('%%TRACK_ID%%',$trackingID,$message);
$message=str_replace('%%TRACK_URL%%',$trackingURL,$message);
$message=str_replace('%%SITE_TITLE%%',$hesk_settings['site_title'] ,$message);
$message=str_replace('%%SITE_URL%%',$hesk_settings['site_url'] ,$message);
/* Send e-mail to staff */
$email=implode(',',$admins);
$headers="From: $hesk_settings[noreply_mail]\n";
$headers.="Reply-to: $hesk_settings[noreply_mail]\n";
@mail($email,$hesklang[$txtlang]." Ticket: ".$trackingID,$message,$headers);
} // End if
make under folder "emails" some new files (maybe a copy of other files with your own text):
closed_ticket_customer.txt
closed_ticket_staff.txt
reopened_ticket_customer.txt
reopened_ticket_staff.txt
You can use %%RISP%% to get the original Text Message in this Mails! (added from another ADD-On)
and the last change in your language (english.inc.php) file add:
Code: Select all
$hesklang['reopened_ticket_submitted']='Wiedereröffnetes Support';
$hesklang['closed_ticket_submitted']='Geschlossenes Support';
$hesklang['ticket_reopened']='Support-Ticket wieder geöffnet.';
$hesklang['ticket_closed']='Support-Ticket geschlossen.';

I hope i forgot nothing to copy...
br,
Mathias
EDIT: Sorry...i have a Error in change_status.php... only Admins notified... but error cleaned now!