diff --git a/core/default_settings/default_setting_edit.php b/core/default_settings/default_setting_edit.php index 0dfa1462e..7d9db07a1 100644 --- a/core/default_settings/default_setting_edit.php +++ b/core/default_settings/default_setting_edit.php @@ -46,7 +46,6 @@ $default_setting_order = ''; $default_setting_enabled = true; $default_setting_description = ''; - $search = ''; //action add or update if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) { @@ -57,11 +56,6 @@ $action = "add"; } -//get the search variable - if (!empty($_REQUEST['search'])) { - $search = $_REQUEST['search'] ?? ''; - } - //get http post variables and set them to php variables if (!empty($_REQUEST)) { $default_setting_category = strtolower($_REQUEST["default_setting_category"] ?? ''); @@ -73,23 +67,35 @@ $default_setting_description = $_POST["default_setting_description"] ?? ''; } -//sanitize the variables - if (!empty($search)) { - $search = preg_replace('#[^a-zA-Z0-9_\-\. ]#', '', $search); - } - if (!empty($domain_setting_category)) { - $default_setting_category = preg_replace('#[^a-zA-Z0-9_\-\. ]#', '', $default_setting_category); - } +// Set variables from http GET parameters + $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'default_setting_category')); + $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc'; + $search = $_GET['search'] ?? ''; + $show = $_GET['show'] ?? ''; + $default_setting_category = $_GET['default_setting_category'] ?? ''; -//build the query string - $query_string = ''; +//sanitize the variables + $search = preg_replace('#[^a-zA-Z0-9_\-\. ]#', '', $search); + $default_setting_category = preg_replace('#[^a-zA-Z0-9_\-\.]#', '', $default_setting_category); + +// Build the query string + $param = []; + if (!empty($_GET['order_by'])) { + $param['order_by'] = $order_by; + } + if (!empty($_GET['order'])) { + $param['order'] = $order; + } if (!empty($search)) { - $query_string .= 'search='.urlencode($search); + $param['search'] = $search; } - if ($default_setting_category != '') { - if ($query_string == '') { $query_string = ''; } else { $query_string .= '&'; } - $query_string .= 'default_setting_category='.urlencode($default_setting_category); + if (!empty($show) && $show == 'all' && permission_exists('stream_all')) { + $param['show'] = $show; } + if (!empty($default_setting_category)) { + $param['default_setting_category'] = $default_setting_category; + } + $query_string = http_build_query($param); //process the http post if (!empty($_POST) && (empty($_POST["persistformvar"]) || $_POST["persistformvar"] != "true")) { @@ -106,7 +112,7 @@ $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: default_settings.php?'.$query_string); + header('Location: default_settings.php'.($query_string ? '?'.$query_string : '')); exit; } @@ -283,7 +289,7 @@ } echo " \n"; echo "
\n"; - echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'default_settings.php?'.$query_string]); + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','style'=>'margin-right: 15px;','link'=>'default_settings.php'.($query_string ? '?'.$query_string : '')]); echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$settings->get('theme', 'button_icon_save'),'id'=>'btn_save','onclick'=>'submit_form();']); echo "
\n"; echo "
\n"; diff --git a/core/default_settings/default_setting_toggle.php b/core/default_settings/default_setting_toggle.php index a16fd7b19..901ad772a 100644 --- a/core/default_settings/default_setting_toggle.php +++ b/core/default_settings/default_setting_toggle.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2021 + Portions created by the Initial Developer are Copyright (C) 2008-2026 the Initial Developer. All Rights Reserved. Contributor(s): @@ -39,9 +39,34 @@ $text = $language->get(); //get submitted variables - $search = $_REQUEST['search'] ?? ''; $default_setting_uuids = $_REQUEST["id"]; +// Set variables from http GET parameters + $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'default_setting_category')); + $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc'; + $search = $_GET['search'] ?? ''; + $show = $_GET['show'] ?? ''; + $default_setting_category = $_GET['default_setting_category'] ?? ''; + +// Build the query string + $param = []; + if (!empty($_GET['order_by'])) { + $param['order_by'] = $order_by; + } + if (!empty($_GET['order'])) { + $param['order'] = $order; + } + if (!empty($search)) { + $param['search'] = $search; + } + if (!empty($show) && $show == 'all' && permission_exists('stream_all')) { + $param['show'] = $show; + } + if (!empty($default_setting_category)) { + $param['default_setting_category'] = $default_setting_category; + } + $query_string = http_build_query($param); + //toggle the setting $toggled = 0; if (is_array($default_setting_uuids) && sizeof($default_setting_uuids) > 0) { @@ -72,7 +97,6 @@ } //redirect the user - $search = preg_replace('#[^a-zA-Z0-9_\-\.]# ', '', $search); - header("Location: default_settings.php".($search != '' ? '?search='.$search : null)); + header("Location: default_settings.php".($query_string ? '?'.$query_string : '')); ?> diff --git a/core/default_settings/default_settings.php b/core/default_settings/default_settings.php index 4d7c2ee64..f676ca25a 100644 --- a/core/default_settings/default_settings.php +++ b/core/default_settings/default_settings.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008 - 2024 + Portions created by the Initial Developer are Copyright (C) 2008 - 2026 the Initial Developer. All Rights Reserved. Contributor(s): @@ -48,9 +48,6 @@ $text = $language->get(); //set the variables - $search = $_REQUEST['search'] ?? ''; - $show = $_REQUEST['show'] ?? ''; - $default_setting_category = $_REQUEST['default_setting_category'] ?? ''; if (!empty($_POST['default_settings'])) { $action = $_POST['action']; $domain_uuid = $_POST['domain_uuid']; @@ -61,6 +58,13 @@ $default_settings = ''; } +// Set variables from http GET parameters + $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'default_setting_category')); + $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc'; + $search = $_GET['search'] ?? ''; + $show = $_GET['show'] ?? ''; + $default_setting_category = $_GET['default_setting_category'] ?? ''; + //sanitize the variables $action = preg_replace('#[^a-zA-Z0-9_\-\.]#', '', $action); $search = preg_replace('#[^a-zA-Z0-9_\-\. ]#', '', $search); @@ -78,15 +82,24 @@ //set from session variables $list_row_edit_button = $settings->get('theme', 'list_row_edit_button', false); -//build the query string - $query_string = ''; +// Build the query string + $param = []; + if (!empty($_GET['order_by'])) { + $param['order_by'] = $order_by; + } + if (!empty($_GET['order'])) { + $param['order'] = $order; + } if (!empty($search)) { - $query_string .= 'search='.urlencode($search); + $param['search'] = $search; + } + if (!empty($show) && $show == 'all' && permission_exists('stream_all')) { + $param['show'] = $show; } if (!empty($default_setting_category)) { - if ($query_string == '') { $query_string = ''; } else { $query_string .= '&'; } - $query_string .= 'default_setting_category='.urlencode($default_setting_category); + $param['default_setting_category'] = $default_setting_category; } + $query_string = http_build_query($param); //process the http post data by action if (!empty($action) && !empty($default_settings)) { @@ -111,7 +124,7 @@ } break; } - header('Location: default_settings.php?'.(!empty($query_string) ? $query_string : null)); + header('Location: default_settings.php'.($query_string ? '?'.$query_string : '')); exit; } @@ -293,9 +306,9 @@ echo "
".$text['title-default_settings']."
".number_format($num_rows)."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['label-domain'],'icon'=>$settings->get('theme', 'button_icon_domain'),'style'=>'','link'=>PROJECT_PATH.'/core/domain_settings/domain_settings.php?id='.$domain_uuid]); - echo button::create(['label'=>$text['button-reload'],'icon'=>$settings->get('theme', 'button_icon_reload'),'type'=>'button','id'=>'button_reload','link'=>'default_settings_reload.php'.(!empty($search) ? '?search='.urlencode($search) : ''),'style'=>'margin-right: 15px;']); + echo button::create(['label'=>$text['button-reload'],'icon'=>$settings->get('theme', 'button_icon_reload'),'type'=>'button','id'=>'button_reload','link'=>'default_settings_reload.php'.($query_string ? '?'.$query_string : ''),'style'=>'margin-right: 15px;']); if ($permission['default_setting_add']) { - echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$settings->get('theme', 'button_icon_add'),'id'=>'btn_add','link'=>'default_setting_edit.php?'.$query_string]); + echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$settings->get('theme', 'button_icon_add'),'id'=>'btn_add','link'=>'default_setting_edit.php'.($query_string ? '?'.$query_string : '')]); } if ($permission['default_setting_add'] && !empty($default_settings)) { if ($permission['domain_select'] && $permission['domain_setting_add']) { @@ -317,7 +330,12 @@ if ($permission['default_setting_delete'] && $default_settings) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } - echo "