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">&nbsp;</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