From 7430846fdf3fe618163be5fe76690dedbf5ac24a Mon Sep 17 00:00:00 2001 From: Torsten Oppermann <torsten@sgalinski.de> Date: Fri, 28 Jul 2017 11:34:46 +0200 Subject: [PATCH] [TASK] Filtering options --- Classes/Service/Backend/Utility.php | 6 ++--- .../Private/Partials/Backend/Filter.html | 25 +++++++++++++++++++ .../Private/Templates/Backend/Index.html | 1 + 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 Resources/Private/Partials/Backend/Filter.html diff --git a/Classes/Service/Backend/Utility.php b/Classes/Service/Backend/Utility.php index c5adcef..1a2a6f9 100644 --- a/Classes/Service/Backend/Utility.php +++ b/Classes/Service/Backend/Utility.php @@ -120,11 +120,11 @@ class Utility { $databaseConnection = $GLOBALS['TYPO3_DB']; $where = 'doktype = ' . self::CATEGORY_DOKTYPE . ' AND uid in (' . $childPids . ')'; - $result = $databaseConnection->exec_SELECTquery('uid', 'pages', $where)->fetch_all(); + $result = $databaseConnection->exec_SELECTquery('uid, title', 'pages', $where)->fetch_all(); $categories = []; /** @var array $result */ foreach ($result as $item) { - $categories[] = $item[0]; + $categories[$item[0]] = $item[1]; } return $categories; @@ -140,6 +140,6 @@ class Utility { $objectManager = GeneralUtility::makeInstance(ObjectManager::class); /** @var NewsRepository $newsRepository */ $newsRepository = $objectManager->get(NewsRepository::class); - return $newsRepository->findAllSortedNewsByCategories($categories, 0, 0, 'date', NULL, $raw = TRUE); + return $newsRepository->findAllSortedNewsByCategories(array_keys($categories), 0, 0, 'date', NULL, $raw = TRUE); } } diff --git a/Resources/Private/Partials/Backend/Filter.html b/Resources/Private/Partials/Backend/Filter.html new file mode 100644 index 0000000..5bae71a --- /dev/null +++ b/Resources/Private/Partials/Backend/Filter.html @@ -0,0 +1,25 @@ +<f:form action="index" controller="Backend" method="post" objectName="filters" object="{filters}"> + <div class="row"> + <div class="col-xs-5"> + <div class="form-group"> + <label for="filter-category"> + <f:translate key="backend.filters.category" /> + <small><f:translate key="backend.filters.categories.description" /></small> + </label> + <f:form.select class="form-control" multiple="1" size="4" property="categories" options="{categories}" id="filter-category" /> + </div> + </div> + <div class="col-xs-4"> + <div class="form-group"> + <label for="filter-search"><f:translate key="backend.filters.search" /></label> + <f:form.textfield class="form-control" property="search" id="filter-search" /> + </div> + </div> + <div class="col-xs-3"> + <div class="form-group"> + <label> </label><br /> + <f:form.button class="btn btn-success form-group col-xs-12" type="submit">Filter</f:form.button> + </div> + </div> + </div> +</f:form> diff --git a/Resources/Private/Templates/Backend/Index.html b/Resources/Private/Templates/Backend/Index.html index 00f2f02..1555ee6 100644 --- a/Resources/Private/Templates/Backend/Index.html +++ b/Resources/Private/Templates/Backend/Index.html @@ -11,6 +11,7 @@ <p> <f:translate key="backend.message" /> </p> + <f:render partial="Backend/Filter" arguments="{categories: categories, filters: filters}" /> <f:if condition="{news}"> <div class="panel panel-default recordlist"> -- GitLab