aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2021-07-22 22:44:34 +0200
committerThomas Lange <code@nerdmind.de>2021-07-22 22:44:34 +0200
commit27e7a426b1c7ba7ec878204a937a0ecfff5214ed (patch)
treef6095b189b3d7d0b27eff41930d243f161870e91 /admin
parent8662f123d781a6df4eb5bd05b3556cca94fcf334 (diff)
downloadblog-27e7a426b1c7ba7ec878204a937a0ecfff5214ed.tar.gz
blog-27e7a426b1c7ba7ec878204a937a0ecfff5214ed.tar.xz
blog-27e7a426b1c7ba7ec878204a937a0ecfff5214ed.zip
Add user and category filter on post search
Add a user and category filter option for the post search in the administration area. Filter on default theme is followed later.
Diffstat (limited to 'admin')
-rw-r--r--admin/post/search.php39
1 files changed, 37 insertions, 2 deletions
diff --git a/admin/post/search.php b/admin/post/search.php
index 8cbfafb..46ff60d 100644
--- a/admin/post/search.php
+++ b/admin/post/search.php
@@ -13,6 +13,7 @@ require '../../core/application.php';
#===============================================================================
# Get repositories
#===============================================================================
+$CategoryRepository = Application::getRepository('Category');
$PostRepository = Application::getRepository('Post');
$UserRepository = Application::getRepository('User');
@@ -31,7 +32,12 @@ $offset = ($currentSite-1) * $site_size;
#===============================================================================
if($search = HTTP::GET('q')) {
try {
- foreach ($PostRepository->search($search, [], $site_size, $offset) as $Post) {
+ $filter = [
+ 'user' => HTTP::GET('user'),
+ 'category' => HTTP::GET('category')
+ ];
+
+ foreach ($PostRepository->search($search, $filter, $site_size, $offset) as $Post) {
$User = $UserRepository->find($Post->get('user'));
$templates[] = generatePostItemTemplate($Post, $User);
}
@@ -56,13 +62,42 @@ if($count = $PostRepository->getLastSearchOverallCount()) {
}
#===============================================================================
+# Generate user list
+#===============================================================================
+foreach($UserRepository->getAll([], 'fullname ASC') as $User) {
+ $userList[] = [
+ 'ID' => $User->getID(),
+ 'FULLNAME' => $User->get('fullname'),
+ 'USERNAME' => $User->get('username'),
+ ];
+}
+
+#===============================================================================
+# Generate category list
+#===============================================================================
+foreach($CategoryRepository->getAll([], 'name ASC') as $Category) {
+ $categoryList[] = [
+ 'ID' => $Category->getID(),
+ 'NAME' => $Category->get('name'),
+ 'PARENT' => $Category->get('parent'),
+ ];
+}
+
+#===============================================================================
# Build document
#===============================================================================
$SearchTemplate = Template\Factory::build('post/search');
$SearchTemplate->set('QUERY', $search);
$SearchTemplate->set('POSTS', $templates ?? []);
$SearchTemplate->set('FORM', [
- 'INFO' => $messages ?? []
+ 'INFO' => $messages ?? [],
+ 'DATA' => [
+ 'USER' => HTTP::GET('user'),
+ 'CATEGORY' => HTTP::GET('category')
+ ],
+ 'USER_LIST' => $userList ?? [],
+ 'CATEGORY_LIST' => $categoryList ?? [],
+ 'CATEGORY_TREE' => generateCategoryDataTree($categoryList ?? [])
]);
$SearchTemplate->set('PAGINATION', $pagination_data ?? []);