From 00eb7f3f7d1665121bb5c66bcfdcbc53b71d7eb7 Mon Sep 17 00:00:00 2001 From: fusionate Date: Mon, 23 Feb 2026 15:32:06 -0700 Subject: [PATCH] Users - List/Edit: Maintain search, order by and page values through paging and update. (Part 2) --- core/users/user_edit.php | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/core/users/user_edit.php b/core/users/user_edit.php index 8f63c3d909..7cfe891fe4 100644 --- a/core/users/user_edit.php +++ b/core/users/user_edit.php @@ -39,6 +39,12 @@ $language = new text; $text = $language->get(); +//get order and order by, page + $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_REQUEST["order_by"] ?? '')); + $order = $_REQUEST["order"] ?? 'asc'; + $page = isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0; + $search = $_REQUEST['search'] ?? null; + //get user uuid if (permission_exists('user_edit') && !empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) { $user_uuid = $_REQUEST["id"]; @@ -60,7 +66,7 @@ if ($num_rows >= $settings->get('limit', 'users')) { message::add($text['message-maximum_users'].' '.$settings->get('limit', 'users'), 'negative'); - header('Location: users.php'); + header('Location: users.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } } @@ -85,7 +91,7 @@ $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header("Location: users.php"); + header("Location: users.php?".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } @@ -97,7 +103,7 @@ //redirect the user message::add($text['message-delete']); - header("Location: user_edit.php?id=".urlencode($user_uuid)); + header("Location: user_edit.php?id=".urlencode($user_uuid).(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } @@ -152,7 +158,7 @@ $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: users.php'); + header('Location: users.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } @@ -261,7 +267,7 @@ if (message::count() != 0 || !empty($invalid)) { if ($invalid) { message::add($text['message-required'].implode(', ', $invalid), 'negative', 7500); } persistent_form_values('store', $_POST); - header("Location: user_edit.php".(permission_exists('user_edit') && $action != 'add' ? "?id=".urlencode($user_uuid) : null)); + header("Location: user_edit.php".(permission_exists('user_edit') && $action != 'add' ? "?id=".urlencode($user_uuid) : null).(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } else { @@ -610,7 +616,7 @@ else { message::add($text['message-add'],'positive'); } - header("Location: user_edit.php?id=".urlencode($user_uuid)); + header("Location: user_edit.php?id=".urlencode($user_uuid).(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } @@ -650,7 +656,7 @@ } else { message::add($text['message-invalid_user'], 'negative', 7500); - header("Location: user_edit.php?id=".$_SESSION['user_uuid']); + header("Location: user_edit.php?id=".$_SESSION['user_uuid'].(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)); exit; } unset($sql, $parameters, $row); @@ -727,6 +733,7 @@ } echo "
\n"; + echo "\n"; echo "
\n"; echo "
".$text['header-user_edit']."
\n"; @@ -735,7 +742,7 @@ echo "
".$text['message-unsaved_changes']."
"; } if (permission_exists('user_add') || permission_exists('user_edit')) { - echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'users.php']); + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'users.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)]); } $button_margin = 'margin-left: 15px;'; if (permission_exists('ticket_add') || permission_exists('ticket_edit')) {