From 36e427254618c6ed173d187e562f268add2b58fc Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Fri, 19 Apr 2013 09:14:15 -0400
Subject: [PATCH] - The Help module now sends email messages when a support request is opened/answered. - The date and time of support requests is now shown.
---
interface/web/help/templates/support_message_list.htm | 7 ++-
interface/web/help/support_message_edit.php | 58 +++++++++++++++++++++++++++++
interface/web/help/lib/lang/en_support_message.lng | 7 +++
interface/web/help/templates/support_message_view.htm | 4 ++
interface/web/help/lib/lang/en_support_message_list.lng | 1
interface/lib/classes/listform.inc.php | 16 ++++++++
interface/web/help/lib/lang/de_support_message_list.lng | 1
interface/web/help/list/support_message.list.php | 9 ++++
interface/web/help/lib/lang/de_support_message.lng | 7 +++
9 files changed, 108 insertions(+), 2 deletions(-)
diff --git a/interface/lib/classes/listform.inc.php b/interface/lib/classes/listform.inc.php
index e690a1c..a57f8e5 100644
--- a/interface/lib/classes/listform.inc.php
+++ b/interface/lib/classes/listform.inc.php
@@ -357,6 +357,16 @@
}
}
break;
+ case 'DATETIMETSTAMP':
+ if ($record[$key] > 0) {
+ // is value int?
+ if (preg_match("/^[0-9]+[\.]?[0-9]*$/", $record[$key], $p)) {
+ $record[$key] = date($this->lng('conf_format_datetime'), $record[$key]);
+ } else {
+ $record[$key] = date($this->lng('conf_format_datetime'), strtotime($record[$key]));
+ }
+ }
+ break;
case 'DATE':
if ($record[$key] > 0) {
// is value int?
@@ -422,6 +432,12 @@
$record[$key] = date('Y-m-d',strtotime($record[$key]));
}
break;
+
+ case 'DATETIMETSTAMP':
+ if($record[$key] > 0) {
+ $record[$key] = date('Y-m-d H:i:s',strtotime($record[$key]));
+ }
+ break;
case 'DATE':
if($record[$key] != '' && $record[$key] != '0000-00-00') {
diff --git a/interface/web/help/lib/lang/de_support_message.lng b/interface/web/help/lib/lang/de_support_message.lng
index 60d3c0c..67d68f9 100644
--- a/interface/web/help/lib/lang/de_support_message.lng
+++ b/interface/web/help/lib/lang/de_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Nachricht';
$wb['tstamp_txt'] = 'Zeitpunkt';
$wb['reply_txt'] = 'Antworten';
+$wb['date_txt'] = 'Datum';
+$wb['support_request_subject_txt'] = 'Supportanfrage';
+$wb['support_request_txt'] = 'Sie haben eine Supportanfrage erhalten. Bitte antworten Sie nicht auf diese Email, sondern bearbeiten Sie die Supportanfrage in ISPConfig.';
+$wb['answer_to_support_request_txt'] = 'Sie haben eine Antwort auf Ihre Supportanfrage erhalten. Bitte antworten Sie nicht auf diese Email, sondern bearbeiten Sie die Nachricht in ISPConfig.';
+$wb['answer_to_support_request_sent_txt'] = 'Ihre Antwort auf die Supportanfrage ist verschickt worden. Bitte antworten Sie nicht auf diese Email.';
+$wb['support_request_sent_txt'] = 'Ihre Supportanfrage ist verschickt worden. Bitte antworten Sie nicht auf diese Email.';
+$wb['recipient_or_sender_email_address_not_valid_txt'] = 'Die Nachricht konnte nicht verschickt werden, da die Empfänger- und/oder die Sender-Email-Adresse nicht gültig ist.';
?>
diff --git a/interface/web/help/lib/lang/de_support_message_list.lng b/interface/web/help/lib/lang/de_support_message_list.lng
index 7273475..74fbeb2 100644
--- a/interface/web/help/lib/lang/de_support_message_list.lng
+++ b/interface/web/help/lib/lang/de_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Absender';
$wb['subject_txt'] = 'Betreff';
$wb['add_new_record_txt'] = 'Neue Supportnachricht erstellen';
+$wb['date_txt'] = 'Datum';
?>
diff --git a/interface/web/help/lib/lang/en_support_message.lng b/interface/web/help/lib/lang/en_support_message.lng
index 59816c6..bcc50ac 100644
--- a/interface/web/help/lib/lang/en_support_message.lng
+++ b/interface/web/help/lib/lang/en_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Message';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
+$wb['date_txt'] = 'Date';
+$wb['support_request_subject_txt'] = 'Support Request';
+$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
+$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
+$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
+$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
+$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
diff --git a/interface/web/help/lib/lang/en_support_message_list.lng b/interface/web/help/lib/lang/en_support_message_list.lng
index 9f2b3fd..2cea311 100644
--- a/interface/web/help/lib/lang/en_support_message_list.lng
+++ b/interface/web/help/lib/lang/en_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Sender';
$wb['subject_txt'] = 'Subject';
$wb["add_new_record_txt"] = 'Create new support message';
+$wb['date_txt'] = 'Date';
?>
\ No newline at end of file
diff --git a/interface/web/help/list/support_message.list.php b/interface/web/help/list/support_message.list.php
index 1f2f8e3..1474959 100644
--- a/interface/web/help/list/support_message.list.php
+++ b/interface/web/help/list/support_message.list.php
@@ -57,6 +57,15 @@
'suffix' => '%',
'width' => '',
'value' => '');
+
+$liste['item'][] = array( 'field' => 'tstamp',
+ 'datatype' => 'DATETIMETSTAMP',
+ 'formtype' => 'TEXT',
+ 'op' => '=',
+ 'prefix' => '',
+ 'suffix' => '',
+ 'width' => '',
+ 'value' => '');
?>
\ No newline at end of file
diff --git a/interface/web/help/support_message_edit.php b/interface/web/help/support_message_edit.php
index c6e992f..b1cbf2a 100644
--- a/interface/web/help/support_message_edit.php
+++ b/interface/web/help/support_message_edit.php
@@ -31,6 +31,53 @@
//* Set the sender_id field to the ID of the current user
$this->dataRecord['sender_id'] = $_SESSION['s']['user']['userid'];
+ //* Get recipient email address
+ if($this->dataRecord['recipient_id'] > 1){
+ $sql = "SELECT client.email FROM sys_user, client WHERE sys_user.userid = ".$this->dataRecord['recipient_id']." AND sys_user.client_id = client.client_id";
+ $client = $app->db->queryOneRecord($sql);
+ $recipient_email = $client['email'];
+ } else {
+ $app->uses('ini_parser,getconf');
+ $system_config_mail_settings = $app->getconf->get_global_config('mail');
+ $recipient_email = $system_config_mail_settings['admin_mail'];
+ }
+
+ //* Get sender email address
+ if($this->dataRecord['sender_id'] > 1){
+ $sql = "SELECT client.email FROM sys_user, client WHERE sys_user.userid = ".$this->dataRecord['sender_id']." AND sys_user.client_id = client.client_id";
+ $client = $app->db->queryOneRecord($sql);
+ $sender_email = $client['email'];
+ } else {
+ $app->uses('ini_parser,getconf');
+ $system_config_mail_settings = $app->getconf->get_global_config('mail');
+ $sender_email = $system_config_mail_settings['admin_mail'];
+ }
+
+ $email_regex = '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}$/i';
+ if(preg_match($email_regex, $sender_email, $match) && preg_match($email_regex, $recipient_email, $match)){
+ $subject = $app->tform->lng('support_request_subject_txt').': '.$this->dataRecord['subject'];
+ if($this->dataRecord['recipient_id'] == 1){
+ $message = $app->tform->lng('support_request_txt');
+ } else {
+ $message = $app->tform->lng('answer_to_support_request_txt');
+ }
+ $message .= "\n\n".$app->tform->lng('message_txt').": \"".$this->dataRecord['message']."\"";
+ $message .= "\n\nISPConfig: ".($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];
+ $app->functions->mail($recipient_email, $subject, $message, $sender_email);
+
+ //* Send confirmation email to sender
+ if($this->dataRecord['sender_id'] == 1){
+ $confirmation_message = $app->tform->lng('answer_to_support_request_sent_txt');
+ } else {
+ $confirmation_message = $app->tform->lng('support_request_sent_txt');
+ }
+ $confirmation_message .= "\n\n".$app->tform->lng('message_txt').": \"".$this->dataRecord['message']."\"";
+ $confirmation_message .= "\n\nISPConfig: ".($_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];
+ $app->functions->mail($sender_email, $subject, $confirmation_message, $recipient_email);
+ } else {
+ $app->tform->errorMessage .= $app->tform->lng("recipient_or_sender_email_address_not_valid_txt")."<br />";
+ }
+
//* call the onSubmit function of the parent class
parent::onSubmit();
}
@@ -44,6 +91,17 @@
//* read only template if a existing message is loaded
if($this->id > 0) {
$app->tform->formDef['tabs']['message']['template'] = 'templates/support_message_view.htm';
+ $record = $app->db->queryOneRecord("SELECT * FROM support_message WHERE support_message_id = ".$this->id);
+ if ($record['tstamp'] > 0) {
+ // is value int?
+ if (preg_match("/^[0-9]+[\.]?[0-9]*$/", $record['tstamp'], $p)) {
+ $record['tstamp'] = date($app->lng('conf_format_datetime'), $record['tstamp']);
+ } else {
+ $record['tstamp'] = date($app->lng('conf_format_datetime'), strtotime($record['tstamp']));
+ }
+ }
+ $app->tpl->setVar("date", $record['tstamp']);
+ //die(print_r($this->dataRecord));
}
//* call the onShow function of the parent class
diff --git a/interface/web/help/templates/support_message_list.htm b/interface/web/help/templates/support_message_list.htm
index af20223..d3fa429 100644
--- a/interface/web/help/templates/support_message_list.htm
+++ b/interface/web/help/templates/support_message_list.htm
@@ -20,11 +20,13 @@
<tr class="caption">
<th class="tbl_col_sender_id" scope="col"><tmpl_var name="sender_id_txt"></th>
<th class="tbl_col_subject" scope="col"><tmpl_var name="subject_txt"></th>
+ <th class="tbl_col_tstamp" scope="col"><tmpl_var name="date_txt"></th>
<th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th>
</tr>
<tr class="filter">
<td class="tbl_col_sender_id"><select name="search_sender_id">{tmpl_var name='search_sender_id'}</select></td>
<td class="tbl_col_subject"><input type="text" name="search_subject" value="{tmpl_var name='search_subject'}" /></td>
+ <td class="tbl_col_tstamp"> </td>
<td class="tbl_col_buttons">
<button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','help/support_message_list.php');"><span>{tmpl_var name="filter_txt"}</span></button>
</td>
@@ -35,6 +37,7 @@
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
<td class="tbl_col_sender_id"><a href="#" onclick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sender_id"}</a></td>
<td class="tbl_col_subject"><a href="#" onclick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="subject"}</a></td>
+ <td class="tbl_col_tstamp"><a href="#" onclick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="tstamp"}</a></td>
<td class="tbl_col_buttons">
<a class="button icons16 icoDelete" href="javascript: del_record('help/support_message_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a>
</td>
@@ -42,13 +45,13 @@
</tmpl_loop>
<tmpl_unless name="records">
<tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
- <td colspan="3">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
+ <td colspan="4">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
</tr>
</tmpl_unless>
</tbody>
<tfoot>
<tr>
- <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td>
+ <td class="tbl_footer tbl_paging" colspan="4"><tmpl_var name="paging"></td>
</tr>
</tfoot>
</table>
diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm
index c399e90..f7145e0 100644
--- a/interface/web/help/templates/support_message_view.htm
+++ b/interface/web/help/templates/support_message_view.htm
@@ -13,6 +13,10 @@
<label for="message">{tmpl_var name='message_txt'}</label>
<p>{tmpl_var name='message'}</p>
</div>
+ <div class="ctrlHolder">
+ <label for="message">{tmpl_var name='date_txt'}</label>
+ <p>{tmpl_var name='date'}</p>
+ </div>
</fieldset>
<div class="buttonHolder buttons">
<button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='reply_txt'}" onclick="loadContent('help/support_message_edit.php?reply={tmpl_var name='id'}');"><span>{tmpl_var name='reply_txt'}</span></button>
--
Gitblit v1.9.1