Changes to AgileBill
This commit is contained in:
@@ -1,527 +1,329 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AgileBill - Open Billing Software
|
||||
*
|
||||
* This body of work is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the Open AgileBill License
|
||||
* License as published at http://www.agileco.com/agilebill/license1-4.txt
|
||||
*
|
||||
* For questions, help, comments, discussion, etc., please join the
|
||||
* Agileco community forums at http://forum.agileco.com/
|
||||
*
|
||||
* Originally authored by Tony Landis, AgileBill LLC
|
||||
*
|
||||
* Recent modifications by Deon George
|
||||
*
|
||||
* @author Deon George <deonATleenooksDOTnet>
|
||||
* @copyright 2009 Deon George
|
||||
* @link http://osb.leenooks.net
|
||||
*
|
||||
* @link http://www.agileco.com/
|
||||
* @copyright 2004-2008 Agileco, LLC.
|
||||
* @license http://www.agileco.com/agilebill/license1-4.txt
|
||||
* @author Tony Landis <tony@agileco.com>
|
||||
* @author Tony Landis <tony@agileco.com>
|
||||
* @package AgileBill
|
||||
* @version 1.4.93
|
||||
* @subpackage Module:Mail
|
||||
*/
|
||||
|
||||
/**
|
||||
* The main AgileBill Mail Template Class
|
||||
*
|
||||
* include_once(PATH_MODULES.'email_template/email_template.inc.php');
|
||||
* $my = new email_template;
|
||||
* $my->send('newsletter_subscribe', '4d1800b401f5d340f022688de0ac2687', 'f1714072da3c05a220ac3b60a3a57d88', '2', '3');
|
||||
* $my->send('newsletter_subscribe','4d1800b401f5d340f022688de0ac2687','f1714072da3c05a220ac3b60a3a57d88','2','3');
|
||||
*
|
||||
* @package AgileBill
|
||||
* @subpackage Module:Mail
|
||||
*/
|
||||
class email_template
|
||||
{
|
||||
var $debug=false;
|
||||
|
||||
# Open the constructor for this mod
|
||||
function construct()
|
||||
{
|
||||
# name of this module:
|
||||
$this->module = "email_template";
|
||||
|
||||
# location of the construct XML file:
|
||||
$this->xml_construct = PATH_MODULES . "" . $this->module . "/" . $this->module . "_construct.xml";
|
||||
|
||||
# open the construct file for parsing
|
||||
$C_xml = new CORE_xml;
|
||||
$construct = $C_xml->xml_to_array($this->xml_construct);
|
||||
|
||||
$this->method = $construct["construct"]["method"];
|
||||
$this->trigger = $construct["construct"]["trigger"];
|
||||
$this->field = $construct["construct"]["field"];
|
||||
$this->table = $construct["construct"]["table"];
|
||||
$this->module = $construct["construct"]["module"];
|
||||
$this->cache = $construct["construct"]["cache"];
|
||||
$this->order_by = $construct["construct"]["order_by"];
|
||||
$this->limit = $construct["construct"]["limit"];
|
||||
}
|
||||
|
||||
|
||||
|
||||
##############################
|
||||
## ADD ##
|
||||
##############################
|
||||
function add($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "add";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->add($VAR, $this, $type);
|
||||
}
|
||||
|
||||
##############################
|
||||
## VIEW ##
|
||||
##############################
|
||||
function view($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "view";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->view($VAR, $this, $type);
|
||||
}
|
||||
|
||||
##############################
|
||||
## UPDATE ##
|
||||
##############################
|
||||
function update($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "update";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->update($VAR, $this, $type);
|
||||
}
|
||||
|
||||
##############################
|
||||
## DELETE ##
|
||||
##############################
|
||||
function delete($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$this->associated_DELETE[] = Array( 'table' => 'email_template_translate',
|
||||
'field' => 'email_template_id');
|
||||
|
||||
$db = new CORE_database;
|
||||
$db->mass_delete($VAR, $this, "");
|
||||
}
|
||||
|
||||
##############################
|
||||
## SEARCH FORM ##
|
||||
##############################
|
||||
function search_form($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "search";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->search_form($VAR, $this, $type);
|
||||
}
|
||||
|
||||
##############################
|
||||
## SEARCH ##
|
||||
##############################
|
||||
function search($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "search";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->search($VAR, $this, $type);
|
||||
}
|
||||
|
||||
##############################
|
||||
## SEARCH SHOW ##
|
||||
##############################
|
||||
|
||||
function search_show($VAR)
|
||||
{
|
||||
$this->construct();
|
||||
$type = "search";
|
||||
$this->method["$type"] = explode(",", $this->method["$type"]);
|
||||
$db = new CORE_database;
|
||||
$db->search_show($VAR, $this, $type);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
##############################
|
||||
## SEND EMAIL TEMPLATE ##
|
||||
##############################
|
||||
|
||||
function send($template, $acct, $sql1, $sql2, $sql3, $queue=true)
|
||||
{
|
||||
global $VAR, $C_debug;
|
||||
class email_template extends OSB_module {
|
||||
/**
|
||||
* Send or Queue template based email
|
||||
*
|
||||
* Prefixing the template with "admin->" will result in the mail being
|
||||
* sent to the admin only.
|
||||
*
|
||||
* @param string $template_name Name of template to use
|
||||
* @param int $acct Account ID or email address
|
||||
*/
|
||||
public function send($template_name,$acct,$sql1,$sql2,$sql3,$queue=true) {
|
||||
global $VAR,$C_debug,$C_list;
|
||||
$db = &DB();
|
||||
|
||||
# Send to admin only?
|
||||
# Send to admin only?
|
||||
$admin_only = false;
|
||||
if(eregi('admin->', $template)) {
|
||||
if (preg_match('/^admin->/',$template_name)) {
|
||||
$admin_only = true;
|
||||
$template = eregi_replace('admin->', '', $template);
|
||||
}
|
||||
$template_name = preg_replace('/^admin->/','',$template_name);
|
||||
}
|
||||
|
||||
$template = $db->Execute(sqlselect($db,'email_template','*',array('name'=>$template_name)));
|
||||
|
||||
############################################################
|
||||
### Get the template settings
|
||||
# If the template is not active, return.
|
||||
if (! $template || $template->fields['status'] != '1')
|
||||
return;
|
||||
|
||||
$q = "SELECT * FROM ".AGILE_DB_PREFIX."email_template WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
name = ".$db->qstr($template);
|
||||
$template = $db->Execute($q);
|
||||
if($template->fields['status'] != '1')
|
||||
return;
|
||||
# Setup our Email
|
||||
$E = array();
|
||||
|
||||
$E['priority'] = $template->fields["priority"];
|
||||
# Email Priority
|
||||
$E['priority'] = $template->fields['priority'];
|
||||
|
||||
############################################################
|
||||
### Get the setup_email settings
|
||||
|
||||
if(empty($template->fields["setup_email_id"]))
|
||||
# Get the setup_email settings
|
||||
if (empty($template->fields['setup_email_id']))
|
||||
$setup_email_id = DEFAULT_SETUP_EMAIL;
|
||||
else
|
||||
$setup_email_id = $template->fields["setup_email_id"];
|
||||
$setup_email_id = $template->fields['setup_email_id'];
|
||||
|
||||
$q = "SELECT * FROM ".AGILE_DB_PREFIX."setup_email WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
id = ".$db->qstr($setup_email_id);
|
||||
$setup_email = $db->Execute($q);
|
||||
$setup_email = $db->Execute(sqlSelect($db,'setup_email','*',array('id'=>$setup_email_id)));
|
||||
|
||||
### E-mail queue?
|
||||
if($setup_email->fields['queue'] == 1 && $queue)
|
||||
{
|
||||
# Queue the email
|
||||
if ($queue && $C_list->is_installed('email_queue') && $setup_email->fields['queue']) {
|
||||
# Set sql vars
|
||||
if(is_array($sql1)) $sql1 = serialize($sql1);
|
||||
if(is_array($sql2)) $sql2 = serialize($sql2);
|
||||
if(is_array($sql3)) $sql3 = serialize($sql3);
|
||||
if(is_array($VAR)) $var = serialize($VAR);
|
||||
if(@$admin_only)
|
||||
$sql_template = "admin->".$template->fields['name'];
|
||||
if (is_array($sql1))
|
||||
$sql1 = serialize($sql1);
|
||||
if (is_array($sql2))
|
||||
$sql2 = serialize($sql2);
|
||||
if (is_array($sql3))
|
||||
$sql3 = serialize($sql3);
|
||||
if (is_array($VAR))
|
||||
$var = serialize($VAR);
|
||||
|
||||
# If this was an admin only email, we need to rewrite the template name again.
|
||||
if ($admin_only)
|
||||
$sql_template = sprintf('admin->%s',$template->fields['name']);
|
||||
else
|
||||
$sql_template = $template->fields['name'];
|
||||
|
||||
# Check that this email is not already in the queue:
|
||||
$q = "SELECT id FROM ".AGILE_DB_PREFIX."email_queue WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
status = 0 AND
|
||||
account_id = '$acct' AND
|
||||
email_template= ".$db->qstr($sql_template)." AND
|
||||
sql1 = ".$db->qstr(@$sql1)." AND
|
||||
sql2 = ".$db->qstr(@$sql2)." AND
|
||||
sql3 = ".$db->qstr(@$sql3);
|
||||
$duplicates = $db->Execute($q);
|
||||
if($duplicates != false && $duplicates->RecordCount() > 0)
|
||||
return;
|
||||
# Check that this email is not already in the queue
|
||||
$duplicates = $db->Execute(sqlSelect($db,'email_queue','id',
|
||||
array('status'=>0,'account_id'=>$acct,'email_template'=>$sql_template,'sql1'=>$sql1,'sql2'=>$sql2,'sql3'=>$sql3)
|
||||
));
|
||||
if ($duplicates != false && $duplicates->RecordCount() > 0)
|
||||
return;
|
||||
|
||||
# queue this e-mail:
|
||||
$id = $db->GenID(AGILE_DB_PREFIX.'email_queue_id');
|
||||
$sql = "INSERT INTO ".AGILE_DB_PREFIX."email_queue SET
|
||||
id = $id,
|
||||
site_id = ".DEFAULT_SITE.",
|
||||
date_orig = ".time().",
|
||||
date_last = ".time().",
|
||||
status = 0,
|
||||
account_id = '$acct',
|
||||
email_template= ".$db->qstr($sql_template).",
|
||||
sql1 = ".$db->qstr(@$sql1).",
|
||||
sql2 = ".$db->qstr(@$sql2).",
|
||||
sql3 = ".$db->qstr(@$sql3).",
|
||||
var = ".$db->qstr(@$var);
|
||||
$db->Execute($sql);
|
||||
return;
|
||||
}
|
||||
|
||||
if($setup_email->fields['type'] == 0) {
|
||||
$type = 0;
|
||||
} else {
|
||||
$type = 1;
|
||||
$E['server'] = $setup_email->fields['server'];
|
||||
$E['account'] = $setup_email->fields['username'];
|
||||
$E['password'] = $setup_email->fields['password'];
|
||||
}
|
||||
|
||||
$E['from_name'] = $setup_email->fields['from_name'];
|
||||
$E['from_email'] = $setup_email->fields['from_email'];
|
||||
|
||||
if($setup_email->fields['cc_list'] != '')
|
||||
$E['cc_list'] = explode(',', $setup_email->fields['cc_list']);
|
||||
|
||||
if($setup_email->fields['bcc_list'] != '')
|
||||
$E['bcc_list'] = explode(',', $setup_email->fields['bcc_list']);
|
||||
|
||||
|
||||
|
||||
############################################################
|
||||
### Get the account settings
|
||||
|
||||
$q = "SELECT * FROM ".AGILE_DB_PREFIX."account WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
(
|
||||
email = ".$db->qstr($acct)." OR
|
||||
id = ".$db->qstr($acct). "
|
||||
)";
|
||||
$account = $db->Execute($q);
|
||||
if($account == false)
|
||||
{
|
||||
$C_debug->error('email_template.inc.php','send1', $db->ErrorMsg() . " " . $sql);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($admin_only == false)
|
||||
{
|
||||
if($account->RecordCount() > 0) {
|
||||
$E['to_email'] = $account->fields['email'];
|
||||
$E['to_name'] = $account->fields['first_name'] . ' ' . $account->fields['last_name'];
|
||||
$this->ab_account = true;
|
||||
} else {
|
||||
$E['to_email'] = $acct;
|
||||
$E['to_name'] = $acct;
|
||||
$this->ab_account = false;
|
||||
}
|
||||
} else {
|
||||
$E['to_email'] = $setup_email->fields['from_email'];
|
||||
$E['to_name'] = $setup_email->fields['from_name'];
|
||||
$this->ab_account = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
### Get the template translation for the specified account for text/htm
|
||||
|
||||
if(@$this->ab_account && @$account->fields["language_id"] != "")
|
||||
$language_id = $account->fields["language_id"];
|
||||
else
|
||||
$language_id = DEFAULT_LANGUAGE;
|
||||
|
||||
$q = "SELECT * FROM ".AGILE_DB_PREFIX."email_template_translate WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
language_id = ".$db->qstr($language_id)." AND
|
||||
email_template_id = ".$db->qstr($template->fields["id"]);
|
||||
$setup_email = $db->Execute($q);
|
||||
|
||||
if(!$setup_email || !$setup_email->RecordCount()) {
|
||||
# get the default translation for this email:
|
||||
$q = "SELECT * FROM ".AGILE_DB_PREFIX."email_template_translate WHERE
|
||||
site_id = ".$db->qstr(DEFAULT_SITE)." AND
|
||||
language_id = ".$db->qstr(DEFAULT_LANGUAGE)." AND
|
||||
email_template_id = ".$db->qstr($template->fields["id"]);
|
||||
$setup_email = $db->Execute($q);
|
||||
}
|
||||
|
||||
if(!$setup_email || !$setup_email->RecordCount()) {
|
||||
# unable to locate translation!
|
||||
global $C_debug;
|
||||
$message = 'Unable to locate translation for Email Template "'.$template->fields['name'].'" and Language "'. $language_id .'" OR "' . DEFAULT_LANGUAGE . '"';
|
||||
$C_debug->error('email_template.inc.php','send', $message);
|
||||
# Queue this Email
|
||||
$db->Execute(sqlInsert($db,'email_queue',array(
|
||||
'date_orig'=>time(),
|
||||
'date_last'=>time(),
|
||||
'status'=>0,
|
||||
'account_id'=>$acct,
|
||||
'email_template'=>$sql_template,
|
||||
'sql1'=>$sql1,
|
||||
'sql2'=>$sql2,
|
||||
'sql3'=>$sql3,
|
||||
'var'=>$var)
|
||||
));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
# set the subject:
|
||||
$E['subject'] = $setup_email->fields['subject'];
|
||||
|
||||
# determine whether to send HTML or not...
|
||||
if(@$this->ab_account && $account->fields['email_type'] == 1) {
|
||||
if(!empty($setup_email->fields['message_html'])) {
|
||||
$E['body_html'] = $setup_email->fields['message_html'];
|
||||
$E['html'] = '1';
|
||||
} else {
|
||||
$E['body_html'] = false;
|
||||
$E['html'] = '0';
|
||||
}
|
||||
} else {
|
||||
$E['html'] = '0';
|
||||
# Is this an SMTP connection
|
||||
if ($setup_email->fields['type'] == 1) {
|
||||
$E['server'] = $setup_email->fields['server'];
|
||||
$E['account'] = $setup_email->fields['username'];
|
||||
$E['password'] = $setup_email->fields['password'];
|
||||
}
|
||||
|
||||
$E['body_text'] = $setup_email->fields['message_text'];
|
||||
$E['from_name'] = $setup_email->fields['from_name'];
|
||||
$E['from_email'] = $setup_email->fields['from_email'];
|
||||
|
||||
### Get the date-time
|
||||
if ($setup_email->fields['cc_list'])
|
||||
$E['cc_list'] = explode(',',$setup_email->fields['cc_list']);
|
||||
|
||||
if ($setup_email->fields['bcc_list'])
|
||||
$E['bcc_list'] = explode(',',$setup_email->fields['bcc_list']);
|
||||
|
||||
# Get the account settings
|
||||
$account = $db->Execute($q=sqlSelect($db,'account','*',sprintf('(email=::%s:: OR id=::%s::)',$acct,$acct)));
|
||||
if (! $account) {
|
||||
$C_debug->error(__FILE__,__METHOD__,sprintf('%s %s',$db->ErrorMsg(),$q));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($admin_only) {
|
||||
$E['to_email'] = $setup_email->fields['from_email'];
|
||||
$E['to_name'] = $setup_email->fields['from_name'];
|
||||
$ab_account = true;
|
||||
|
||||
} else {
|
||||
if ($account->RecordCount() > 0) {
|
||||
$E['to_email'] = $account->fields['email'];
|
||||
$E['to_name'] = sprintf('%s %s',$account->fields['first_name'],$account->fields['last_name']);
|
||||
$ab_account = true;
|
||||
|
||||
} else {
|
||||
$E['to_email'] = $acct;
|
||||
$E['to_name'] = $acct;
|
||||
$ab_account = false;
|
||||
}
|
||||
}
|
||||
|
||||
# Get the template translation for the specified account for text/htm
|
||||
if ($ab_account && $account->fields['language_id'])
|
||||
$language_id = $account->fields['language_id'];
|
||||
else
|
||||
$language_id = DEFAULT_LANGUAGE;
|
||||
|
||||
$email_template_translate = $db->Execute(sqlSelect($db,'email_template_translate','*',array('language_id'=>$language_id,'email_template_id'=>$template->fields['id'])));
|
||||
|
||||
# If there is no translation, get the default translation for this email
|
||||
if (! $email_template_translate || ! $email_template_translate->RecordCount())
|
||||
$email_template_translate = $db->Execute(sqlSelect($db,'email_template_translate','*',array('language_id'=>DEFAULT_LANGUAGE,'email_template_id'=>$template->fields['id'])));
|
||||
|
||||
# Unable to locate translation?
|
||||
if (! $email_template_translate || ! $email_template_translate->RecordCount()) {
|
||||
global $C_debug;
|
||||
|
||||
$C_debug->error(__FILE__,__METHOD__,
|
||||
sprintf('Unable to locate translation for Email Template %s and Language %s OR %s',$template->fields['name'],$language_id,DEFAULT_LANGUAGE));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# Set the subject:
|
||||
$E['subject'] = $email_template_translate->fields['subject'];
|
||||
|
||||
# Determine whether to send HTML or not...
|
||||
if ($ab_account && $account->fields['email_type'] == 1) {
|
||||
if (! empty($email_template_translate->fields['message_html'])) {
|
||||
$E['body_html'] = $email_template_translate->fields['message_html'];
|
||||
$E['html'] = '1';
|
||||
|
||||
} else {
|
||||
$E['body_html'] = false;
|
||||
$E['html'] = '0';
|
||||
}
|
||||
|
||||
} else {
|
||||
$E['html'] = '0';
|
||||
}
|
||||
|
||||
$E['body_text'] = $email_template_translate->fields['message_text'];
|
||||
|
||||
# Get the date-time
|
||||
include_once(PATH_CORE.'list.inc.php');
|
||||
$C_list = new CORE_list;
|
||||
$date = $C_list->date_time(time());
|
||||
$cl = new CORE_list;
|
||||
|
||||
### Url formatting...
|
||||
if($admin_only) {
|
||||
$date = $cl->date_time(time());
|
||||
|
||||
# Url formatting.
|
||||
if ($admin_only) {
|
||||
$site_url = URL.'admin.php';
|
||||
$site_ssl_url = SSL_URL.'admin.php';
|
||||
|
||||
} else {
|
||||
$site_url = URL;
|
||||
$site_ssl_url = SSL_URL;
|
||||
$site_ssl_url = SSL_URL;
|
||||
}
|
||||
|
||||
### Get the replace vars from the email template:
|
||||
$replace = Array('%site_name%' => $E['from_name'],
|
||||
'%site_email%' => $E['from_email'],
|
||||
'%url%' => $site_url,
|
||||
'%date%' => $date,
|
||||
'%ssl_url%' => $site_ssl_url);
|
||||
# Get the replace vars from the email template:
|
||||
$replace = array(
|
||||
'%site_name%' => $E['from_name'],
|
||||
'%site_email%' => $E['from_email'],
|
||||
'%url%' => $site_url,
|
||||
'%date%' => $date,
|
||||
'%ssl_url%' => $site_ssl_url);
|
||||
|
||||
### Get the replace vars from the $VAR variable:
|
||||
reset($VAR);
|
||||
while(list($key, $value) = each($VAR))
|
||||
{
|
||||
$re_this = "%var_".$key."%";
|
||||
# Include the replace vars from the $VAR variable:
|
||||
foreach ($VAR as $key => $value) {
|
||||
$re_this = sprintf('%%var_%s%%',$key);
|
||||
$replace[$re_this] = $value;
|
||||
}
|
||||
|
||||
### Get the replace vars from the account:
|
||||
# Get the replace vars from the account
|
||||
$replace['%acct_id%'] = $acct;
|
||||
if(@$this->ab_account) {
|
||||
while(list($key, $value) = each($account->fields)) {
|
||||
$re_this = "%acct_".$key."%";
|
||||
if ($ab_account)
|
||||
foreach ($account->fields as $key => $value) {
|
||||
$re_this = sprintf('%%acct_%s%%',$key);
|
||||
$replace[$re_this] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
############################################################
|
||||
### Get the SQL1 Query/Arrays
|
||||
if(!empty($template->fields["sql_1"]) && !empty($sql1) &&!is_array($sql1))
|
||||
{
|
||||
$sql = eregi_replace('%DB_PREFIX%', AGILE_DB_PREFIX, $template->fields["sql_1"]);
|
||||
$sql = eregi_replace('%SQL1%', $db->qstr($sql1), $sql);
|
||||
if(!is_array($sql2))
|
||||
$sql = eregi_replace('%SQL2%', $db->qstr($sql2), $sql);
|
||||
if(!is_array($sql3))
|
||||
$sql = eregi_replace('%SQL3%', $db->qstr($sql3), $sql);
|
||||
$sql .= " AND site_id = ". $db->qstr(DEFAULT_SITE);
|
||||
$SQL_1 = $db->Execute($sql);
|
||||
|
||||
if($SQL_1 == false)
|
||||
{
|
||||
### return the error message
|
||||
global $C_debug;
|
||||
$C_debug->error('email_template.inc.php','send', $db->ErrorMsg() . " " . $sql);
|
||||
}
|
||||
else if($SQL_1->RecordCount() > 0)
|
||||
{
|
||||
### Get the replace vars from the sql results:
|
||||
while(list($key, $value) = each($SQL_1->fields))
|
||||
{
|
||||
$re_this = "%sql1_".$key."%";
|
||||
$replace[$re_this] = $value;
|
||||
|
||||
# Get the SQL1/2/3 Query/Arrays
|
||||
foreach (array(1,2,3) as $i)
|
||||
if ($template->fields['sql_'.$i] && $sql1 && ! is_array($sql1)) {
|
||||
# Set our DB prefix
|
||||
$sql = str_replace('%DB_PREFIX%',AGILE_DB_PREFIX,$template->fields['sql_'.$i]);
|
||||
|
||||
# Set the SQL
|
||||
$sql = str_replace('%SQL1%',$db->qstr($sql1),$sql);
|
||||
if ($sql2 && ! is_array($sql2))
|
||||
$sql = str_replace('%SQL2%',$db->qstr($sql2),$sql);
|
||||
if ($sql3 && ! is_array($sql3))
|
||||
$sql = str_replace('%SQL3%',$db->qstr($sql3),$sql);
|
||||
|
||||
$sql .= sprintf(' AND site_id=%s',DEFAULT_SITE);
|
||||
|
||||
$SQL = $db->Execute($sql);
|
||||
|
||||
if (! $SQL) {
|
||||
# Return the error message
|
||||
global $C_debug;
|
||||
|
||||
$C_debug->error(__FILE__,__METHOD__,sprintf('%s %s',$db->ErrorMsg(),$sql));
|
||||
|
||||
} elseif ($SQL->RecordCount() > 0) {
|
||||
# Get the replace vars from the sql results:
|
||||
foreach ($SQL->fields as $key => $value) {
|
||||
$re_this = sprintf('%%sql%s_%s%%',$i,$key);
|
||||
$replace[$re_this] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (is_array($sql1))
|
||||
{
|
||||
while(list($key, $value) = each($sql1[$i]))
|
||||
$replace[$key] = $value;
|
||||
}
|
||||
elseif (!empty($sql1))
|
||||
{
|
||||
$replace['%sql1%'] = $sql3;
|
||||
|
||||
if (is_array($sql1)) {
|
||||
echo '<PRE>1a.HOW DID I GET HERE??? (WHAT SHOULD THIS DO??)';debug_print_backtrace();die();
|
||||
while(list($key,$value) = each($sql1))
|
||||
$replace[$key] = $value;
|
||||
|
||||
} elseif ($sql1 && ! $template->fields['sql_1']) {
|
||||
$replace['%sql1%'] = $sql1;
|
||||
}
|
||||
|
||||
if (is_array($sql2)) {
|
||||
echo '<PRE>2a.HOW DID I GET HERE??? (WHAT SHOULD THIS DO??)';debug_print_backtrace();die();
|
||||
while(list($key,$value) = each($sql2))
|
||||
$replace[$key] = $value;
|
||||
|
||||
############################################################
|
||||
### Get the SQL2 Query/Arrays
|
||||
if(!empty($template->fields["sql_2"]) && !empty($sql2) &&!is_array($sql2))
|
||||
{
|
||||
$sql = eregi_replace('%DB_PREFIX%', AGILE_DB_PREFIX, $template->fields["sql_2"]);
|
||||
$sql = eregi_replace('%SQL1%', $db->qstr($sql1), $sql);
|
||||
if(!is_array($sql2))
|
||||
$sql = eregi_replace('%SQL2%', $db->qstr($sql2), $sql);
|
||||
if(!is_array($sql3))
|
||||
$sql = eregi_replace('%SQL3%', $db->qstr($sql3), $sql);
|
||||
$sql .= " AND site_id = ".$db->qstr(DEFAULT_SITE);
|
||||
$SQL_2 = $db->Execute($sql);
|
||||
if($SQL_2 == false)
|
||||
{
|
||||
### return the error message
|
||||
global $C_debug;
|
||||
$C_debug->error('email_template.inc.php','send', $db->ErrorMsg() . " " . $sql);
|
||||
} elseif ($sql2 && ! $template->fields['sql_2']) {
|
||||
$replace['%sql2%'] = $sql2;
|
||||
}
|
||||
|
||||
if (is_array($sql3)) {
|
||||
echo '<PRE>3a.HOW DID I GET HERE??? (WHAT SHOULD THIS DO??)';debug_print_backtrace();die();
|
||||
while(list($key,$value) = each($sql3))
|
||||
$replace[$key] = $value;
|
||||
|
||||
} elseif ($sql3 && ! $template->fields['sql_3']) {
|
||||
$replace['%sql3%'] = $sql3;
|
||||
}
|
||||
|
||||
foreach (array('subject','body_text','body_html') as $i)
|
||||
if (! empty($E[$i])) {
|
||||
# Replace the $replace vars in the body and subject
|
||||
foreach ($replace as $key => $value)
|
||||
$E[$i] = str_replace($key,$value,$E[$i]);
|
||||
|
||||
# Remove any unparsed vars from the body text and html:
|
||||
if (preg_match('/%/',$E[$i]))
|
||||
$E[$i] = preg_replace('/%[a-zA-Z0-9_]{1,}%/','',$E[$i]);
|
||||
}
|
||||
else if($SQL_2->RecordCount() > 0)
|
||||
{
|
||||
### Get the replace vars from the sql results:
|
||||
while(list($key, $value) = each($SQL_2->fields))
|
||||
{
|
||||
$re_this = "%sql2_".$key."%";
|
||||
$replace[$re_this] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (is_array($sql2))
|
||||
{
|
||||
while(list($key, $value) = each($sql2[$i]))
|
||||
$replace[$key] = $value;
|
||||
}
|
||||
elseif (!empty($sql2))
|
||||
{
|
||||
$replace['%sql2%'] = $sql2;
|
||||
}
|
||||
|
||||
# Set any attachments (not currently supported)
|
||||
$E['attatchments'] = '';
|
||||
|
||||
############################################################
|
||||
### Get the SQL3 Query/Arrays
|
||||
if(!empty($template->fields["sql_3"]) && !empty($sql3) &&!is_array($sql3))
|
||||
{
|
||||
$sql = eregi_replace('%DB_PREFIX%', AGILE_DB_PREFIX, $template->fields["sql_3"]);
|
||||
$sql = eregi_replace('%SQL1%', $db->qstr($sql1), $sql);
|
||||
if(!is_array($sql2))
|
||||
$sql = eregi_replace('%SQL2%', $db->qstr($sql2), $sql);
|
||||
if(!is_array($sql3))
|
||||
$sql = eregi_replace('%SQL3%', $db->qstr($sql3), $sql);
|
||||
$sql .= " AND site_id = ".$db->qstr(DEFAULT_SITE);
|
||||
$SQL_3 = $db->Execute($sql);
|
||||
if($SQL_3 == false)
|
||||
{
|
||||
### return the error message
|
||||
global $C_debug;
|
||||
$C_debug->error('email_template.inc.php','send', $db->ErrorMsg() . " " . $sql);
|
||||
}
|
||||
else if($SQL_3->RecordCount() > 0)
|
||||
{
|
||||
### Get the replace vars from the sql results:
|
||||
while(list($key, $value) = each($SQL_3->fields))
|
||||
{
|
||||
$re_this = "%sql3_".$key."%";
|
||||
$replace[$re_this] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (is_array($sql3))
|
||||
{
|
||||
while(list($key, $value) = each($sql3))
|
||||
$replace[$key] = $value;
|
||||
}
|
||||
elseif (!empty($sql3))
|
||||
{
|
||||
$replace['%sql3%'] = $sql3;
|
||||
}
|
||||
|
||||
### Replace the $replace vars in the body and subject
|
||||
while(list($key, $value) = each($replace))
|
||||
{
|
||||
$E['subject'] = eregi_replace($key, $value, $E['subject']);
|
||||
$E['body_text'] = eregi_replace($key, $value, $E['body_text']);
|
||||
if(!empty($E['body_html']))
|
||||
$E['body_html'] = eregi_replace($key, $value, $E['body_html']);
|
||||
}
|
||||
|
||||
### Remove any unparsed vars from the body text and html:
|
||||
if(!empty($E['body_html']) && ereg('%',$E['body_html']))
|
||||
@$E['body_html'] = ereg_replace("%[a-zA-Z0-9_]{1,}%", '', $E['body_html']);
|
||||
if(!empty($E['body_text']) && ereg("%",$E['body_text']))
|
||||
@$E['body_text'] = ereg_replace("%[a-zA-Z0-9_]{1,}%", '', $E['body_text']);
|
||||
|
||||
### Set any attachments (not currently supported)
|
||||
$E['attatchments'] = '';
|
||||
|
||||
/* email log? */
|
||||
global $C_list;
|
||||
if(is_object($C_list) && $C_list->is_installed('email_log')) {
|
||||
# Email log?
|
||||
if ($C_list->is_installed('email_log')) {
|
||||
include_once(PATH_MODULES.'email_log/email_log.inc.php');
|
||||
$log = new email_log;
|
||||
$log->add($acct, $E['subject'], $E['body_text'], $E['to_email'], false, $E['priority']);
|
||||
$log = new email_log;
|
||||
|
||||
$log->add($acct,$E['subject'],$E['body_text'],$E['to_email'],false,$E['priority']);
|
||||
}
|
||||
|
||||
### Call the mail class
|
||||
require_once(PATH_CORE . 'email.inc.php');
|
||||
# Call the mail class
|
||||
require_once(PATH_CORE.'email.inc.php');
|
||||
$email = new CORE_email;
|
||||
$email->debug=$this->debug;
|
||||
if($type == 0)
|
||||
return $email->PHP_Mail($E);
|
||||
|
||||
if ($setup_email->fields['type'] == 1)
|
||||
return $email->SMTP_Mail($E);
|
||||
else
|
||||
return $email->SMTP_Mail($E);
|
||||
return $email->PHP_Mail($E);
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
@@ -1,74 +1,118 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<construct>
|
||||
<!-- define the module name -->
|
||||
<module>email_template</module>
|
||||
<!-- define the module table name -->
|
||||
<table>email_template</table>
|
||||
<!-- define the module dependancy(s) -->
|
||||
<dependancy/>
|
||||
<!-- define the DB cache in seconds -->
|
||||
<cache>0</cache>
|
||||
<!-- define the default order_by field for SQL queries -->
|
||||
<order_by>name</order_by>
|
||||
<!-- define the methods -->
|
||||
<limit>25</limit>
|
||||
<!-- define database indexes -->
|
||||
<index>
|
||||
<name>name</name>
|
||||
</index>
|
||||
<!-- define the fields -->
|
||||
<field>
|
||||
<id>
|
||||
<type>I8</type>
|
||||
<unique>1</unique>
|
||||
<index>1</index>
|
||||
</id>
|
||||
<site_id>
|
||||
<type>I4</type>
|
||||
<index>1</index>
|
||||
</site_id>
|
||||
<setup_email_id>
|
||||
<type>I4</type>
|
||||
<asso_table>setup_email</asso_table>
|
||||
<asso_field>name</asso_field>
|
||||
<index>1</index>
|
||||
</setup_email_id>
|
||||
<name>
|
||||
<type>C(128)</type>
|
||||
<min_len>4</min_len>
|
||||
<max_len>128</max_len>
|
||||
<validate>any</validate>
|
||||
</name>
|
||||
<priority>
|
||||
<type>L</type>
|
||||
</priority>
|
||||
<shortcuts>
|
||||
<type>X2</type>
|
||||
</shortcuts>
|
||||
<notes>
|
||||
<type>X2</type>
|
||||
</notes>
|
||||
<sql_1>
|
||||
<type>X2</type>
|
||||
</sql_1>
|
||||
<sql_2>
|
||||
<type>X2</type>
|
||||
</sql_2>
|
||||
<sql_3>
|
||||
<type>X2</type>
|
||||
</sql_3>
|
||||
<status>
|
||||
<type>L</type>
|
||||
</status>
|
||||
</field>
|
||||
<!-- define all the methods for this class, and the fields they have access to, if applicable. -->
|
||||
<method>
|
||||
<add>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</add>
|
||||
<update>id,site_id,setup_email_id,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</update>
|
||||
<delete>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</delete>
|
||||
<view>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</view>
|
||||
<search>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</search>
|
||||
</method>
|
||||
<!-- define the method triggers -->
|
||||
<trigger>0</trigger>
|
||||
<!-- Module name -->
|
||||
<module>email_template</module>
|
||||
<!-- Module supporting database table -->
|
||||
<table>email_template</table>
|
||||
<!-- Module dependancy(s) (module wont install if these modules are not yet installed) -->
|
||||
<dependancy></dependancy>
|
||||
<!-- DB cache in seconds -->
|
||||
<cache>0</cache>
|
||||
<!-- Default order_by field for SQL queries -->
|
||||
<order_by>name</order_by>
|
||||
<!-- Default SQL limit for SQL queries -->
|
||||
<limit>25</limit>
|
||||
<!-- Schema version (used to determine if the schema has change during upgrades) -->
|
||||
<version>0</version>
|
||||
|
||||
<!-- Database indexes -->
|
||||
<index>
|
||||
<name>name</name>
|
||||
</index>
|
||||
|
||||
<!-- Database fields -->
|
||||
<field>
|
||||
<!-- Record ID -->
|
||||
<id>
|
||||
<index>1</index>
|
||||
<type>I8</type>
|
||||
<unique>1</unique>
|
||||
</id>
|
||||
<!-- Site ID -->
|
||||
<site_id>
|
||||
<index>1</index>
|
||||
<type>I4</type>
|
||||
</site_id>
|
||||
<!-- Record active (BOOL)-->
|
||||
<status>
|
||||
<display>Active</display>
|
||||
<type>L</type>
|
||||
</status>
|
||||
<setup_email_id>
|
||||
<asso_table>setup_email</asso_table>
|
||||
<asso_field>name</asso_field>
|
||||
<display>Setup Email</display>
|
||||
<index>1</index>
|
||||
<type>I4</type>
|
||||
</setup_email_id>
|
||||
<name>
|
||||
<display>Name</display>
|
||||
<type>C(128)</type>
|
||||
<min_len>4</min_len>
|
||||
<max_len>128</max_len>
|
||||
<validate>any</validate>
|
||||
</name>
|
||||
<priority>
|
||||
<display>Priority</display>
|
||||
<type>L</type>
|
||||
</priority>
|
||||
<shortcuts>
|
||||
<type>X2</type>
|
||||
</shortcuts>
|
||||
<notes>
|
||||
<display>Notes</display>
|
||||
<type>X2</type>
|
||||
</notes>
|
||||
<sql_1>
|
||||
<display>SQL 1</display>
|
||||
<type>X2</type>
|
||||
</sql_1>
|
||||
<sql_2>
|
||||
<display>SQL 2</display>
|
||||
<type>X2</type>
|
||||
</sql_2>
|
||||
<sql_3>
|
||||
<display>SQL 3</display>
|
||||
<type>X2</type>
|
||||
</sql_3>
|
||||
</field>
|
||||
|
||||
<!-- Methods for this class, and the fields they have access to, if applicable -->
|
||||
<method>
|
||||
<add>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</add>
|
||||
<update>id,site_id,setup_email_id,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</update>
|
||||
<delete>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</delete>
|
||||
<view>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</view>
|
||||
<search>id,site_id,setup_email_id,name,priority,shortcuts,notes,sql_1,sql_2,sql_3,status</search>
|
||||
</method>
|
||||
|
||||
<!-- Method triggers -->
|
||||
<trigger></trigger>
|
||||
|
||||
<!-- Template page display titles -->
|
||||
<title>
|
||||
</title>
|
||||
|
||||
<!-- Template helpers -->
|
||||
<tpl>
|
||||
<search_show>
|
||||
<checkbox>
|
||||
<field>id</field>
|
||||
<type>checkbox</type>
|
||||
<width>25px</width>
|
||||
</checkbox>
|
||||
<name>
|
||||
<field>name</field>
|
||||
</name>
|
||||
<priority>
|
||||
<field>priority</field>
|
||||
<type>bool</type>
|
||||
</priority>
|
||||
<icon>
|
||||
<field>status</field>
|
||||
<type>bool_icon</type>
|
||||
<width>20px</width>
|
||||
</icon>
|
||||
</search_show>
|
||||
</tpl>
|
||||
</construct>
|
||||
|
@@ -1,35 +1,55 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<install>
|
||||
<!-- Tree Menu Module Properties -->
|
||||
<module_properties>
|
||||
<name>email_template</name>
|
||||
<parent>setup</parent>
|
||||
<notes><![CDATA[This module controls the various email templates]]></notes>
|
||||
<!-- MODULE Dependancy, this module wont be installed if the dependant modules dont exist -->
|
||||
<dependancy></dependancy>
|
||||
<!-- Translated display to use on the tree -->
|
||||
<display></display>
|
||||
<!-- Display a module in the menu tree -->
|
||||
<menu_display>1</menu_display>
|
||||
<!-- MODULE Name -->
|
||||
<name>email_template</name>
|
||||
<!-- MODULE Notes, these notes show up in the modules table, as a description of the module -->
|
||||
<notes><![CDATA[This module controls the various email templates]]></notes>
|
||||
<!-- MODULE Parent, the parent node in the tree -->
|
||||
<parent>setup</parent>
|
||||
<!-- SUB Modules to install with this one -->
|
||||
<sub_modules></sub_modules>
|
||||
<!-- MODULE Type (core|base), core modules cannot be deleted, unrecognised types are ignored. -->
|
||||
<type>base</type>
|
||||
</module_properties>
|
||||
<sql_inserts>
|
||||
<module_method>
|
||||
<search>
|
||||
<name>search</name>
|
||||
</search>
|
||||
<view>
|
||||
<name>view</name>
|
||||
<notes><![CDATA[Allow users to view records]]></notes>
|
||||
<page><![CDATA[core:search&module=%%&_escape=1&_next_page_one=view]]></page>
|
||||
<menu_display>1</menu_display>
|
||||
</view>
|
||||
<search_show>
|
||||
<name>search_show</name>
|
||||
</search_show>
|
||||
<add>
|
||||
<name>add</name>
|
||||
<notes><![CDATA[Allow users to add records]]></notes>
|
||||
<menu_display>1</menu_display>
|
||||
</add>
|
||||
<delete>
|
||||
<name>delete</name>
|
||||
</delete>
|
||||
<update>
|
||||
<name>update</name>
|
||||
</update>
|
||||
</module_method>
|
||||
</sql_inserts>
|
||||
</install>
|
||||
|
||||
<!-- Tree Menu & Module Methods to load, they will be assigned the group permissions on install time, as selected by the user. -->
|
||||
<module_method>
|
||||
<add>
|
||||
<display>Add</display>
|
||||
<menu_display>1</menu_display>
|
||||
<name>add</name>
|
||||
<notes><![CDATA[Add records]]></notes>
|
||||
</add>
|
||||
<delete>
|
||||
<name>delete</name>
|
||||
<notes><![CDATA[Delete records]]></notes>
|
||||
</delete>
|
||||
<search>
|
||||
<display>List</display>
|
||||
<menu_display>1</menu_display>
|
||||
<name>search</name>
|
||||
<notes><![CDATA[List records]]></notes>
|
||||
<page><![CDATA[core:search&module=%%&_next_page_one=view]]></page>
|
||||
</search>
|
||||
<search_show>
|
||||
<name>search_show</name>
|
||||
<notes><![CDATA[Show the results of a search]]></notes>
|
||||
</search_show>
|
||||
<update>
|
||||
<name>update</name>
|
||||
<notes><![CDATA[Update a record]]></notes>
|
||||
</update>
|
||||
<view>
|
||||
<name>view</name>
|
||||
<notes><![CDATA[View a record]]></notes>
|
||||
</view>
|
||||
</module_method>
|
||||
</install>
|
||||
|
@@ -481,116 +481,6 @@
|
||||
<sql_3>SELECT * FROM %DB_PREFIX%voip_vm WHERE mailbox=%SQL3%</sql_3>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>658</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>3</setup_email_id>
|
||||
<name>ticket_piping_add_user</name>
|
||||
<priority>0</priority>
|
||||
<notes>This e-mail is set to the user when a e-mail message is successfully piped to a new ticket.</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>659</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>3</setup_email_id>
|
||||
<name>ticket_piping_add_user_pending</name>
|
||||
<priority>0</priority>
|
||||
<notes>This e-mail is set to the user when a e-mail message is piped to a new ticket and requires further authorization...</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>660</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>3</setup_email_id>
|
||||
<name>ticket_piping_add_user_unauth</name>
|
||||
<priority>0</priority>
|
||||
<notes>This e-mail is set to the user when a e-mail message is piped to a new ticket and requires further authorization...</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>661</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_staff_add</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This template is sent to all applicable staff members (except the staff member who added the ticket) when a staff member adds a new ticket</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<sql_2>SELECT * FROM %DB_PREFIX%ticket_department WHERE id = %SQL2%</sql_2>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>662</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_staff_add_user</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This template is sent to the user when a staff member adds a new ticket to their account</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>663</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_staff_update_user</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This template is sent out to the user when a staff member updates one of their tickets...</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>664</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_user_add</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This template is sent out when a new ticket is added</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>665</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_user_add_staff</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This email is sent to all ticket staff members who are set to recieve new ticket notices</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<sql_2>SELECT * FROM %DB_PREFIX%ticket_department WHERE id = %SQL2%</sql_2>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>666</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_user_update</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>All</shortcuts>
|
||||
<notes>This is sent to the user when they respond to a ticket</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>667</id>
|
||||
<site_id>1</site_id>
|
||||
<setup_email_id>1</setup_email_id>
|
||||
<name>ticket_user_update_staff</name>
|
||||
<priority>0</priority>
|
||||
<shortcuts>all</shortcuts>
|
||||
<notes>This email is sent to all ticket staff members who are set to recieve updated ticket notices</notes>
|
||||
<sql_1>SELECT * FROM %DB_PREFIX%ticket WHERE id = %SQL1%</sql_1>
|
||||
<sql_2>SELECT * FROM %DB_PREFIX%ticket_department WHERE id = %SQL2%</sql_2>
|
||||
<status>1</status>
|
||||
</email_template>
|
||||
<email_template>
|
||||
<id>668</id>
|
||||
<site_id>1</site_id>
|
||||
@@ -608,4 +498,4 @@
|
||||
<email_template_id>
|
||||
<id>668</id>
|
||||
</email_template_id>
|
||||
</install>
|
||||
</install>
|
||||
|
Reference in New Issue
Block a user