|
|
@@ -40,17 +40,20 @@ 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',
|
|
|
- 'action' => 'showLast30',
|
|
|
- 'label' => 'Beiträge, die in den letzten 30 Tagen ausgelaufen sind'
|
|
|
+ 'action' => 'showLast',
|
|
|
+ 'label' => 'Beiträge, die in den letzten 30 Tagen ausgelaufen sind',
|
|
|
+ 'parameters' => ['daysPast' => 30]
|
|
|
],
|
|
|
'expiredlast90' => [
|
|
|
'controller' => 'Backend',
|
|
|
- 'action' => 'showLast90',
|
|
|
- 'label' => 'Beiträge, die in den letzten 90 Tagen ausgelaufen sind'
|
|
|
+ 'action' => 'showLast',
|
|
|
+ 'label' => 'Beiträge, die in den letzten 90 Tagen ausgelaufen sind',
|
|
|
+ 'parameters' => ['daysPast' => 90]
|
|
|
],
|
|
|
];
|
|
|
|
|
|
@@ -60,21 +63,29 @@ class BackendController extends ActionController
|
|
|
$menu = $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->makeMenu();
|
|
|
$menu->setIdentifier('PageManagerModuleMenu');
|
|
|
|
|
|
- foreach ($menuItems as $menuItemConfig) {
|
|
|
+ foreach ($menuItems as $key => $menuItemConfig) {
|
|
|
$isActive = false;
|
|
|
if ($this->request->getControllerName() === $menuItemConfig['controller']) {
|
|
|
if ($this->request->getControllerActionName() === $menuItemConfig['action']) {
|
|
|
- $isActive = true;
|
|
|
+ $queryParams = $this->request->getQueryParams();
|
|
|
+ if (!isset($menuItemConfig['parameters']['daysPast']) ||
|
|
|
+ (isset($queryParams['tx_pagemanager_tools_pagemanagerpgmgt']['daysPast']) &&
|
|
|
+ $queryParams['tx_pagemanager_tools_pagemanagerpgmgt']['daysPast'] == $menuItemConfig['parameters']['daysPast'])) {
|
|
|
+ $isActive = true;
|
|
|
+ $activeMenuItem = $key; // store the key of the active menu item
|
|
|
+ $view->assign('activeMenuItem', $activeMenuItem);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
$menuItem = $menu->makeMenuItem()
|
|
|
->setTitle($menuItemConfig['label'])
|
|
|
- ->setHref($this->getHref($menuItemConfig['controller'], $menuItemConfig['action']))
|
|
|
+ ->setHref(
|
|
|
+ $this->getHref($menuItemConfig['controller'], $menuItemConfig['action'], $menuItemConfig['parameters'] ?? []))
|
|
|
->setActive($isActive);
|
|
|
$menu->addMenuItem($menuItem);
|
|
|
}
|
|
|
$this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
|
|
|
+// $view->assign('activeMenuItem', $activeMenuItem);
|
|
|
}
|
|
|
|
|
|
protected function translate($key, $arguments): string
|
|
|
@@ -96,80 +107,34 @@ class BackendController extends ActionController
|
|
|
|
|
|
public function indexAction(): ResponseInterface
|
|
|
{
|
|
|
- $this->utilities = GeneralUtility::makeInstance(Utilities::class);
|
|
|
- $activePages = $this->activePageRepository->findActivePagesAndPageCreatetors();
|
|
|
- $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 showLast30Action()
|
|
|
+ public function showLastAction(int $daysPast = 0)
|
|
|
{
|
|
|
- $this->utilities = GeneralUtility::makeInstance(Utilities::class);
|
|
|
- $activePagesExpiredInlast30days = $this->activePageRepository->findExpiredRecordsInTheLast30OR90Days(30);
|
|
|
- $itemsperpage = $this->settings['itemsPerPage'] ?? 50;
|
|
|
-
|
|
|
- $pageObjectArray = [];
|
|
|
-
|
|
|
- foreach ($activePagesExpiredInlast30days 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(22, 1, $daysPast, 'DESC', true);
|
|
|
+ return $response;
|
|
|
}
|
|
|
|
|
|
- public function showLast90Action()
|
|
|
+ public function displayPages(int $redStatus, int $hiddenStatus, int $daysPast = 0, string $orderBy = 'ASC', bool $isExpired = false): ResponseInterface
|
|
|
{
|
|
|
$this->utilities = GeneralUtility::makeInstance(Utilities::class);
|
|
|
- $activePagesExpiredInlast90days = $this->activePageRepository->findExpiredRecordsInTheLast30OR90Days(90);
|
|
|
+ $pages = $this->activePageRepository->findPages($redStatus, $hiddenStatus, $daysPast, $orderBy);
|
|
|
$itemsperpage = $this->settings['itemsPerPage'] ?? 50;
|
|
|
|
|
|
$pageObjectArray = [];
|
|
|
|
|
|
- foreach ($activePagesExpiredInlast90days 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);
|
|
|
}
|
|
|
@@ -177,10 +142,15 @@ class BackendController extends ActionController
|
|
|
|
|
|
$this->buildPagination($pageObjectArray, $itemsperpage, $currentPage);
|
|
|
|
|
|
+ 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
|
|
|
@@ -201,11 +171,8 @@ class BackendController extends ActionController
|
|
|
case 'index':
|
|
|
$actionName = 'index';
|
|
|
break;
|
|
|
- case 'showLast30':
|
|
|
- $actionName = 'showLast30';
|
|
|
- break;
|
|
|
- case 'showLast90':
|
|
|
- $actionName = 'showLast90';
|
|
|
+ case 'showLast':
|
|
|
+ $actionName = 'showLast';
|
|
|
break;
|
|
|
}
|
|
|
|