From ebd0e986ed11f2a34fb58cdd33efbfab192083ad Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 22 Apr 2016 05:26:17 -0400 Subject: [PATCH] Added PHP 7 check in installer and updater. --- interface/web/help/support_message_edit.php | 100 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 83 insertions(+), 17 deletions(-) diff --git a/interface/web/help/support_message_edit.php b/interface/web/help/support_message_edit.php index a36b5db..2d47bbf 100644 --- a/interface/web/help/support_message_edit.php +++ b/interface/web/help/support_message_edit.php @@ -4,14 +4,11 @@ $tform_def_file = 'form/support_message.tform.php'; //* include the basic application and configuration files -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; -//* Checking module permissions -if(!stristr($_SESSION['s']['user']['modules'],'help')) { - header("Location: ../index.php"); - exit; -} +//* Check permissions for module +$app->auth->check_module_permissions('help'); //* Loading the templating and form classes $app->uses('tpl,tform,tform_actions'); @@ -22,36 +19,105 @@ //* Custom onSubmit Event handler function onSubmit() - { + { global $app, $conf; - + //* If the current user is not the admin user if($_SESSION['s']['user']['typ'] != 'admin') { //* Set the admin as recipient $this->dataRecord['recipient_id'] = 1; } - + //* 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 = ".$app->functions->intval($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 = ".$app->functions->intval($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(); } - + //* Custom onShow Event handler - function onShow() - { + function onShow() + { global $app, $conf; - //* We do not want that messages get edited, so we switch to a + //* We do not want that messages get edited, so we switch to a //* 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 parent::onShow(); } + + function onAfterInsert() + { + global $app, $conf; + + if($_SESSION['s']['user']['typ'] == 'admin') { + $app->db->query("UPDATE support_message SET sys_userid = ".$app->functions->intval($this->dataRecord['recipient_id'])." WHERE support_message_id = ".$this->id); + } + + } + } //* Create the new page object @@ -60,4 +126,4 @@ //* Start the page rendering and action handling $page->onLoad(); -?> \ No newline at end of file +?> -- Gitblit v1.9.1