Email Templates: Add Category filter.

This commit is contained in:
fusionate 2023-04-21 14:03:14 +00:00
parent 7c10962a5f
commit 11e01e416d
No known key found for this signature in database
1 changed files with 37 additions and 5 deletions

View File

@ -46,6 +46,7 @@
//get posted data //get posted data
if (is_array($_POST['email_templates'])) { if (is_array($_POST['email_templates'])) {
$action = $_POST['action']; $action = $_POST['action'];
$category = $_POST['category'];
$search = $_POST['search']; $search = $_POST['search'];
$email_templates = $_POST['email_templates']; $email_templates = $_POST['email_templates'];
} }
@ -73,7 +74,7 @@
break; break;
} }
header('Location: email_templates.php'.($search != '' ? '?search='.urlencode($search) : null)); header('Location: email_templates.php?'.($search != '' ? '&search='.urlencode($search) : null).($category != '' ? '&category='.urlencode($category) : null));
exit; exit;
} }
@ -81,12 +82,21 @@
$order_by = $_GET["order_by"]; $order_by = $_GET["order_by"];
$order = $_GET["order"]; $order = $_GET["order"];
//add the category
$category = strtolower($_GET["category"]);
if ($category) {
$sql_category = "and (";
$sql_category .= " lower(template_category) = :category";
$sql_category .= ") ";
$parameters['category'] = $category;
}
//add the search term //add the search term
$search = strtolower($_GET["search"]); $search = strtolower($_GET["search"]);
if (strlen($search) > 0) { if (strlen($search) > 0) {
$sql_search = " ("; $sql_search = " (";
$sql_search .= " lower(template_language) like :search "; $sql_search .= " lower(template_language) like :search ";
$sql_search .= " or lower(template_category) like :search "; //$sql_search .= " or lower(template_category) like :search ";
$sql_search .= " or lower(template_subcategory) like :search "; $sql_search .= " or lower(template_subcategory) like :search ";
$sql_search .= " or lower(template_subject) like :search "; $sql_search .= " or lower(template_subject) like :search ";
$sql_search .= " or lower(template_body) like :search "; $sql_search .= " or lower(template_body) like :search ";
@ -98,19 +108,20 @@
} }
//prepare to page the results //prepare to page the results
$sql = "select count(*) from v_email_templates "; $sql = "select count(*) from v_email_templates where true ";
if ($_GET['show'] == "all" && permission_exists('email_template_all')) { if ($_GET['show'] == "all" && permission_exists('email_template_all')) {
if ($sql_search != '') { if ($sql_search != '') {
$sql .= "where ".$sql_search; $sql .= "and ".$sql_search;
} }
} }
else { else {
$sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; $sql .= "and (domain_uuid = :domain_uuid or domain_uuid is null) ";
if ($sql_search != '') { if ($sql_search != '') {
$sql .= "and ".$sql_search; $sql .= "and ".$sql_search;
} }
$parameters['domain_uuid'] = $domain_uuid; $parameters['domain_uuid'] = $domain_uuid;
} }
$sql .= $sql_category;
$database = new database; $database = new database;
$num_rows = $database->select($sql, $parameters, 'column'); $num_rows = $database->select($sql, $parameters, 'column');
@ -138,6 +149,18 @@
$result = $database->select($sql, $parameters, 'all'); $result = $database->select($sql, $parameters, 'all');
unset($sql, $parameters); unset($sql, $parameters);
//get email template categories
$sql = "select distinct template_category from v_email_templates ";
$sql .= "order by template_category asc ";
$database = new database;
$rows = $database->select($sql, $parameters, 'all');
if (is_array($rows) && @sizeof($rows) != 0) {
foreach ($rows as $row) {
$template_categories[$row['template_category']] = ucwords(str_replace('_',' ',$row['template_category']));
}
}
unset($sql, $parameters);
//create token //create token
$object = new token; $object = new token;
$token = $object->create($_SERVER['PHP_SELF']); $token = $object->create($_SERVER['PHP_SELF']);
@ -171,6 +194,15 @@
echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all']); echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all']);
} }
} }
echo "<select name='category' id='category' class='formfld' style='margin-left: 18px;' onchange=\"$('#form_search').submit();\">\n";
echo "<option value='' ".(!$category ? "selected='selected'" : null)." disabled='disabled'>".$text['label-category']."...</option>\n";
echo "<option value=''></option>\n";
if (is_array($template_categories) && @sizeof($template_categories) != 0) {
foreach ($template_categories as $template_category_value => $template_category_label) {
echo "<option value='".$template_category_value."' ".($category == $template_category_value ? "selected='selected'" : null).">".escape($template_category_label)."</option>\n";
}
}
echo "</select>\n";
echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown=''>"; echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown=''>";
echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search']); echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search']);
//echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'email_templates.php','style'=>($search == '' ? 'display: none;' : null)]); //echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'email_templates.php','style'=>($search == '' ? 'display: none;' : null)]);