diff --git a/interface/web/client/client_message.php b/interface/web/client/client_message.php new file mode 100644 index 0000000000000000000000000000000000000000..f555c9995515a4acf364325aff376d9cb5845a9a --- /dev/null +++ b/interface/web/client/client_message.php @@ -0,0 +1,110 @@ +auth->check_module_permissions('client'); + +//* This function is not available in demo mode +if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); + +$app->uses('tpl'); + +$app->tpl->newTemplate('form.tpl.htm'); +$app->tpl->setInclude('content_tpl', 'templates/client_message.htm'); + +//* load language file +$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_client_message.lng'; +include($lng_file); +$app->tpl->setVar($wb); + +$msg = ''; +$error = ''; + +//* Save data +if(isset($_POST) && count($_POST) > 1) { + + //* Check values + if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-zA-Z0-9\-]{2,30}$/i", $_POST['sender'])) $error .= $wb['sender_invalid_error'].'
'; + if(empty($_POST['subject'])) $error .= $wb['subject_invalid_error'].'
'; + if(empty($_POST['message'])) $error .= $wb['message_invalid_error'].'
'; + + //* Send message + if($error == '') { + //* Select all clients and resellers + if($_SESSION["s"]["user"]["typ"] == 'admin'){ + $sql = "SELECT * FROM client WHERE email != ''"; + } else { + $client_id = intval($_SESSION['s']['user']['client_id']); + if($client_id == 0) die('Invalid Client ID.'); + $sql = "SELECT * FROM client WHERE email != '' AND parent_client_id = '$client_id'"; + } + + //* Get clients + $clients = $app->db->queryAllRecords($sql); + if(is_array($clients)) { + $msg = $wb['email_sent_to_txt'].' '; + foreach($clients as $client) { + + //* Parse cleint details into message + $message = $_POST['message']; + foreach($client as $key => $val) { + $message = str_replace('{'.$key.'}', $val, $message); + } + + //* Send the email + $app->functions->mail($client['email'], $_POST['subject'], $message, $_POST['sender']); + $msg .= $client['email'].', '; + } + $msg = substr($msg,0,-2); + } + + } else { + $app->tpl->setVar('sender',$_POST['sender']); + $app->tpl->setVar('subject',$_POST['subject']); + $app->tpl->setVar('message',$_POST['message']); + } +} + +if($_SESSION["s"]["user"]["typ"] == 'admin'){ + $app->tpl->setVar('form_legend_txt',$wb['form_legend_admin_txt']); +} else { + $app->tpl->setVar('form_legend_txt',$wb['form_legend_client_txt']); +} + +$app->tpl->setVar('okmsg',$msg); +$app->tpl->setVar('error',$error); + +$app->tpl_defaults(); +$app->tpl->pparse(); + + +?> diff --git a/interface/web/client/lib/lang/en.lng b/interface/web/client/lib/lang/en.lng index 4b10b2b8e687a879d6f69aa92cbdc6693a9372d4..03e36b2ceb254a8df92a473cfb90fcbd7aa7f069 100644 --- a/interface/web/client/lib/lang/en.lng +++ b/interface/web/client/lib/lang/en.lng @@ -12,4 +12,6 @@ $wb['Resellers'] = 'Resellers'; $wb["error_has_clients"] = 'This reseller has clients. Delete the clients of the reseller first.'; $wb['add_additional_template_txt'] = 'Add additional template'; $wb['delete_additional_template_txt'] = 'Delete additional template'; +$wb['Messaging'] = 'Messaging'; +$wb['Send Email'] = 'Send Email'; ?> \ No newline at end of file diff --git a/interface/web/client/lib/lang/en_client_message.lng b/interface/web/client/lib/lang/en_client_message.lng new file mode 100644 index 0000000000000000000000000000000000000000..4f4ef3799f6380b3749c69d50ea7696b64041c5e --- /dev/null +++ b/interface/web/client/lib/lang/en_client_message.lng @@ -0,0 +1,13 @@ + diff --git a/interface/web/client/lib/module.conf.php b/interface/web/client/lib/module.conf.php index f37461d0d9740fe6ded82fad3b8200d5caf15aa7..3e36a26e88782d011f0a389c98da3a4210f4702e 100644 --- a/interface/web/client/lib/module.conf.php +++ b/interface/web/client/lib/module.conf.php @@ -52,9 +52,19 @@ $items[] = array( 'title' => "Add Reseller", $module["nav"][] = array( 'title' => 'Resellers', 'open' => 1, 'items' => $items); + +unset($items); } +$items[] = array( 'title' => "Send email", + 'target' => 'content', + 'link' => 'client/client_message.php', + 'html_id' => 'reseller_add'); +$module["nav"][] = array( 'title' => 'Messaging', + 'open' => 1, + 'items' => $items); +unset($items); ?> \ No newline at end of file diff --git a/interface/web/client/templates/client_message.htm b/interface/web/client/templates/client_message.htm new file mode 100644 index 0000000000000000000000000000000000000000..cc2183ed4b9eba9552ce6a3399f2cf9cd3f1f16b --- /dev/null +++ b/interface/web/client/templates/client_message.htm @@ -0,0 +1,31 @@ +

+

+ +
+
+
{tmpl_var name='form_legend_txt'} + +

+
+ +

ERROR

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+