Selaa lähdekoodia

reduce controller

ksieren 2 vuotta sitten
vanhempi
commit
699cac0492
1 muutettua tiedostoa jossa 26 lisäystä ja 37 poistoa
  1. 26 37
      Classes/Controller/BackendController.php

+ 26 - 37
Classes/Controller/BackendController.php

@@ -40,7 +40,8 @@ class BackendController extends ActionController
             'index' => [
                 'controller' => 'Backend',
                 'action' => 'index',
-                'label' => 'Heute oder demnächst auslaufende Beiträge'
+                'label' => 'Heute oder demnächst auslaufende Beiträge',
+                'parameters' => ['daysPast' => 0]
             ],
             'expiredlast30' => [
                 'controller' => 'Backend',
@@ -105,51 +106,34 @@ class BackendController extends ActionController
 
     public function indexAction(): ResponseInterface
     {
-        $this->utilities = GeneralUtility::makeInstance(Utilities::class);
-        $activePages = $this->activePageRepository->findPages(12, 0);
-        $itemsperpage = $this->settings['itemsPerPage'] ?? 50;
-
-        $pageObjectArray = [];
-
-        foreach ($activePages as $activePage) {
-            $pageObj = new ActivePage();
-            $pageObj->setUid($activePage['uid']);
-            $pageObj->setStarttime($activePage['starttime']);
-            $pageObj->setEndtime($activePage['endtime']);
-            $pageObj->setTitle($activePage['title']);
-            $pageObj->setRoof($activePage['roof']);
-            $pageObj->setCategory($this->utilities->createCategoryFromSlug($activePage['slug']));
-            $pageObj->setCreator($activePage['username']);
-            $pageObj->setFullName($activePage['realName']);
-
-            array_push($pageObjectArray, $pageObj);
-        }
-        $currentPage = $this->request->hasArgument('currentPage') ? $this->request->getArgument('currentPage') : 1;
-
-        $this->buildPagination($pageObjectArray, $itemsperpage, $currentPage);
-
-        $this->moduleTemplate->setContent($this->view->render());
-        return $this->htmlResponse($this->moduleTemplate->renderContent());
+        $response = $this->displayPages(12, 0);
+        return $response;
     }
 
     public function showLastAction(int $daysPast = 0)
+    {
+        $response = $this->displayPages(22, 1, $daysPast, 'DESC', true);
+        return $response;
+    }
+
+    public function displayPages(int $redStatus, int $hiddenStatus, int $daysPast = 0, string $orderBy = 'ASC', bool $isExpired = false): ResponseInterface
     {
         $this->utilities = GeneralUtility::makeInstance(Utilities::class);
-        $expiredRecords = $this->activePageRepository->findPages(22, 1, $daysPast, 'DESC');
+        $pages = $this->activePageRepository->findPages($redStatus, $hiddenStatus, $daysPast, $orderBy);
         $itemsperpage = $this->settings['itemsPerPage'] ?? 50;
 
         $pageObjectArray = [];
 
-        foreach ($expiredRecords as $activePage) {
+        foreach ($pages as $page) {
             $pageObj = new ActivePage();
-            $pageObj->setUid($activePage['uid']);
-            $pageObj->setStarttime($activePage['starttime']);
-            $pageObj->setEndtime($activePage['endtime']);
-            $pageObj->setTitle($activePage['title']);
-            $pageObj->setRoof($activePage['roof']);
-            $pageObj->setCategory($this->utilities->createCategoryFromSlug($activePage['slug']));
-            $pageObj->setCreator($activePage['username']);
-            $pageObj->setFullName($activePage['realName']);
+            $pageObj->setUid($page['uid']);
+            $pageObj->setStarttime($page['starttime']);
+            $pageObj->setEndtime($page['endtime']);
+            $pageObj->setTitle($page['title']);
+            $pageObj->setRoof($page['roof']);
+            $pageObj->setCategory($this->utilities->createCategoryFromSlug($page['slug']));
+            $pageObj->setCreator($page['username']);
+            $pageObj->setFullName($page['realName']);
 
             array_push($pageObjectArray, $pageObj);
         }
@@ -157,10 +141,15 @@ class BackendController extends ActionController
 
         $this->buildPagination($pageObjectArray, $itemsperpage, $currentPage);
 
-        $this->moduleTemplate->setContent($this->view->assign('daysPast',$daysPast)->render());
+        if($isExpired) {
+            $this->view->assign('daysPast',$daysPast);
+        }
+
+        $this->moduleTemplate->setContent($this->view->render());
         return $this->htmlResponse($this->moduleTemplate->renderContent());
     }
 
+
     /**
      * @param array $activePages
      * @param int $currentPage