ftimme
2013-04-19 36e427254618c6ed173d187e562f268add2b58fc
- The Help module now sends email messages when a support request is opened/answered.
- The date and time of support requests is now shown.
9 files modified
110 ■■■■■ changed files
interface/lib/classes/listform.inc.php 16 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/de_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/de_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/en_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/en_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/list/support_message.list.php 9 ●●●●● patch | view | raw | blame | history
interface/web/help/support_message_edit.php 58 ●●●●● patch | view | raw | blame | history
interface/web/help/templates/support_message_list.htm 7 ●●●● patch | view | raw | blame | history
interface/web/help/templates/support_message_view.htm 4 ●●●● patch | view | raw | blame | history
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') {
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.';
?>
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';
?>
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.';
?>
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';
?>
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'        => '');
?>
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
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>
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>