From c1980aa2410445885472e1a91edddd1aebeca39f Mon Sep 17 00:00:00 2001 From: fusionate Date: Sat, 27 May 2023 03:39:27 +0000 Subject: [PATCH] Email Queue: Add Email Test feature, updates for PHP 8.1 --- app/email_queue/email_queue.php | 142 ++++++++++++++++++++++++++------ 1 file changed, 118 insertions(+), 24 deletions(-) diff --git a/app/email_queue/email_queue.php b/app/email_queue/email_queue.php index 10b7b15b7a..99391a063b 100644 --- a/app/email_queue/email_queue.php +++ b/app/email_queue/email_queue.php @@ -1,4 +1,28 @@ + Portions created by the Initial Developer are Copyright (C) 2022-2023 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ //set the include path $conf = glob("{/usr/local/etc,/etc}/fusionpbx/config.conf", GLOB_BRACE); @@ -23,14 +47,14 @@ $text = $language->get(); //get the http post data - if (is_array($_POST['email_queue'])) { + if (!empty($_POST['email_queue']) && is_array($_POST['email_queue'])) { $action = $_POST['action']; $search = $_POST['search']; $email_queue = $_POST['email_queue']; } //process the http post data by action - if ($action != '' && is_array($email_queue) && @sizeof($email_queue) != 0) { + if (!empty($action) && !empty($email_queue) && is_array($email_queue) && @sizeof($email_queue) != 0) { //validate the token $token = new token; @@ -41,9 +65,10 @@ } //prepare the array - foreach($email_queue as $row) { + $x = 0; + foreach ($email_queue as $row) { //email class queue uuid - $array[$x]['checked'] = $row['checked']; + $array[$x]['checked'] = $row['checked'] ?? null; $array[$x]['uuid'] = $row['email_queue_uuid']; // database class uuid @@ -92,8 +117,8 @@ } //get order and order by - $order_by = $_GET["order_by"]; - $order = $_GET["order"]; + $order_by = $_GET["order_by"] ?? null; + $order = $_GET["order"] ?? null; //add the search if (isset($_GET["search"])) { @@ -123,15 +148,15 @@ // $parameters['domain_uuid'] = $domain_uuid; //} $database = new database; - $num_rows = $database->select($sql, $parameters, 'column'); + $num_rows = $database->select($sql, $parameters ?? null, 'column'); unset($sql, $parameters); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; - $param = $_GET["email_status"] ? "&email_status=".urlencode($_GET["email_status"]) : null; - $param .= $search ? "&search=".urlencode($search) : null; - $param .= ($_REQUEST['show'] == 'all' && permission_exists('email_queue_all')) ? "&show=all" : null; - $page = is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0; + $param = !empty($_GET["email_status"]) ? "&email_status=".urlencode($_GET["email_status"]) : null; + $param .= !empty($search) ? "&search=".urlencode($search) : null; + $param .= !empty($_REQUEST['show']) && $_REQUEST['show'] == 'all' && permission_exists('email_queue_all') ? "&show=all" : null; + $page = !empty($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0; list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true); $offset = $rows_per_page * $page; @@ -176,12 +201,52 @@ //create token $object = new token; - $token = $object->create($_SERVER['PHP_SELF']); + $token = $object->create('/app/email_queue/email_queue.php'); //additional includes $document['title'] = $text['title-email_queue']; require_once "resources/header.php"; +//test result layer + echo "\n"; + + echo "\n"; + //show the content echo "
\n"; echo "
".$text['title-email_queue']." (".$num_rows.")
\n"; @@ -195,6 +260,13 @@ //if (permission_exists('email_queue_edit') && $email_queue) { // echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'id'=>'btn_toggle','name'=>'btn_toggle','style'=>'display:none;','onclick'=>"modal_open('modal-toggle','btn_toggle');"]); //} + echo "
\n"; + echo button::create(['label'=>$text['button-test'],'icon'=>'tools','type'=>'button','id'=>'test_button','style'=>'margin-right: 15px;','onclick'=>"$(this).fadeOut(400, function(){ $('span#form_test').fadeIn(400); $('#to').trigger('focus'); });"]); + echo " \n"; + echo "
"; if (permission_exists('email_queue_delete') && $email_queue) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'id'=>'btn_delete','name'=>'btn_delete','style'=>'display:none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } @@ -202,10 +274,10 @@ echo " \n"; //if (permission_exists('email_queue_all')) { // if ($_GET['show'] == 'all') { @@ -215,7 +287,7 @@ // echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all']); // } //} - echo ""; + echo ""; echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search']); if ($paging_controls_mini != '') { echo "".$paging_controls_mini."\n"; @@ -237,13 +309,13 @@ echo "
\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; if (permission_exists('email_queue_add') || permission_exists('email_queue_edit') || permission_exists('email_queue_delete')) { echo " \n"; } //if ($_GET['show'] == 'all' && permission_exists('email_queue_all')) { @@ -256,13 +328,11 @@ echo "\n"; echo th_order_by('email_to', $text['label-email_to'], $order_by, $order); echo th_order_by('email_subject', $text['label-email_subject'], $order_by, $order); -// echo "\n"; echo th_order_by('email_status', $text['label-email_status'], $order_by, $order); echo th_order_by('email_retry_count', $text['label-email_retry_count'], $order_by, $order); - //echo th_order_by('email_action_before', $text['label-email_action_before'], $order_by, $order); echo "\n"; - if (permission_exists('email_queue_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + if (permission_exists('email_queue_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { echo " \n"; } echo "\n"; @@ -302,7 +372,7 @@ echo " \n"; //echo " \n"; echo " \n"; - if (permission_exists('email_queue_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + if (permission_exists('email_queue_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { echo " \n"; @@ -319,7 +389,31 @@ echo "\n"; echo "\n"; + +//test script + echo "\n"; + //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file
\n"; - echo " \n"; + echo " \n"; echo " ".$text['label-email_from']."".$text['label-email_body']."".$text['label-email_action_after']." 
".escape($row['email_retry_count'])."".escape($row['email_action_before'])."".escape($row['email_action_after'])."\n"; echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]); echo "