7 Commits c79fb534af ... f0c1b70a3b

Autore SHA1 Messaggio Data
  jabongwa f0c1b70a3b add README.md 2 anni fa
  ksieren 2f28e4c30b assign activeMenuItem to view only if it is defined 2 anni fa
  ksieren 699cac0492 reduce controller 2 anni fa
  ksieren 059677f2a5 reduce queries to one 2 anni fa
  ksieren f2c557516c fix typos 2 anni fa
  ksieren 6c475549f2 fix some minor pagination issues 2 anni fa
  ksieren fc601b0dc2 reduce duplicated code and use querybuilder 2 anni fa

+ 43 - 76
Classes/Controller/BackendController.php

@@ -40,17 +40,20 @@ class BackendController extends ActionController
             'index' => [
             'index' => [
                 'controller' => 'Backend',
                 'controller' => 'Backend',
                 'action' => 'index',
                 'action' => 'index',
-                'label' => 'Heute oder demnächst auslaufende Beiträge'
+                'label' => 'Heute oder demnächst auslaufende Beiträge',
+                'parameters' => ['daysPast' => 0]
             ],
             ],
             'expiredlast30' => [
             'expiredlast30' => [
                 'controller' => 'Backend',
                 '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' => [
             'expiredlast90' => [
                 'controller' => 'Backend',
                 '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 = $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->makeMenu();
         $menu->setIdentifier('PageManagerModuleMenu');
         $menu->setIdentifier('PageManagerModuleMenu');
 
 
-        foreach ($menuItems as $menuItemConfig) {
+        foreach ($menuItems as $key => $menuItemConfig) {
             $isActive = false;
             $isActive = false;
             if ($this->request->getControllerName() === $menuItemConfig['controller']) {
             if ($this->request->getControllerName() === $menuItemConfig['controller']) {
                 if ($this->request->getControllerActionName() === $menuItemConfig['action']) {
                 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()
             $menuItem = $menu->makeMenuItem()
                 ->setTitle($menuItemConfig['label'])
                 ->setTitle($menuItemConfig['label'])
-                ->setHref($this->getHref($menuItemConfig['controller'], $menuItemConfig['action']))
+                ->setHref(
+                    $this->getHref($menuItemConfig['controller'], $menuItemConfig['action'], $menuItemConfig['parameters'] ?? []))
                 ->setActive($isActive);
                 ->setActive($isActive);
             $menu->addMenuItem($menuItem);
             $menu->addMenuItem($menuItem);
         }
         }
         $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
         $this->moduleTemplate->getDocHeaderComponent()->getMenuRegistry()->addMenu($menu);
+//        $view->assign('activeMenuItem', $activeMenuItem);
     }
     }
 
 
     protected function translate($key, $arguments): string
     protected function translate($key, $arguments): string
@@ -96,80 +107,34 @@ class BackendController extends ActionController
 
 
     public function indexAction(): ResponseInterface
     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);
         $this->utilities = GeneralUtility::makeInstance(Utilities::class);
-        $activePagesExpiredInlast90days = $this->activePageRepository->findExpiredRecordsInTheLast30OR90Days(90);
+        $pages = $this->activePageRepository->findPages($redStatus, $hiddenStatus, $daysPast, $orderBy);
         $itemsperpage = $this->settings['itemsPerPage'] ?? 50;
         $itemsperpage = $this->settings['itemsPerPage'] ?? 50;
 
 
         $pageObjectArray = [];
         $pageObjectArray = [];
 
 
-        foreach ($activePagesExpiredInlast90days as $activePage) {
+        foreach ($pages as $page) {
             $pageObj = new 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']);
+            $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);
             array_push($pageObjectArray, $pageObj);
         }
         }
@@ -177,10 +142,15 @@ class BackendController extends ActionController
 
 
         $this->buildPagination($pageObjectArray, $itemsperpage, $currentPage);
         $this->buildPagination($pageObjectArray, $itemsperpage, $currentPage);
 
 
+        if($isExpired) {
+            $this->view->assign('daysPast',$daysPast);
+        }
+
         $this->moduleTemplate->setContent($this->view->render());
         $this->moduleTemplate->setContent($this->view->render());
         return $this->htmlResponse($this->moduleTemplate->renderContent());
         return $this->htmlResponse($this->moduleTemplate->renderContent());
     }
     }
 
 
+
     /**
     /**
      * @param array $activePages
      * @param array $activePages
      * @param int $currentPage
      * @param int $currentPage
@@ -201,11 +171,8 @@ class BackendController extends ActionController
             case 'index':
             case 'index':
                 $actionName = 'index';
                 $actionName = 'index';
                 break;
                 break;
-            case 'showLast30':
-                $actionName = 'showLast30';
-                break;
-            case 'showLast90':
-                $actionName = 'showLast90';
+            case 'showLast':
+                $actionName = 'showLast';
                 break;
                 break;
         }
         }
 
 

+ 38 - 64
Classes/Domain/Repository/ActivePageRepository.php

@@ -28,68 +28,42 @@ class ActivePageRepository extends Repository
    * 
    * 
    * @return QueryResult|array
    * @return QueryResult|array
    */
    */
-  public  function findActivePagesAndPageCreatetors()
-  {
-    $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
-    $queryBuilder->getRestrictions()->removeAll();
-
-    $statement = $queryBuilder
-      ->select('p.uid', 'p.starttime', 'p.endtime', 'p.title', 'p.roof', 'p.slug', 'u.username', 'u.realName')
-      ->from('pages', 'p')
-      ->leftJoin(
-        'p',
-        'be_users',
-        'u',
-        $queryBuilder->expr()->eq('p.cruser_id', $queryBuilder->quoteIdentifier('u.uid'))
-      )
-      ->where(
-        $queryBuilder->expr()->gt('p.starttime', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
-        $queryBuilder->expr()->gt('p.endtime', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
-        $queryBuilder->expr()->eq('p.red_status', $queryBuilder->createNamedParameter(12, \PDO::PARAM_INT)),
-        $queryBuilder->expr()->eq('p.deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
-        $queryBuilder->expr()->eq('p.hidden', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT))
-      )
-      ->groupBy('p.slug')
-      ->orderBy('p.endtime', 'ASC');
-
-    $result = $statement->execute();
-
-    return $result->fetchAllAssociative();
-  }
-
-  
-
-  /**
-   * Queries the pages and be_users to get Records which expired in the last 30 days
-   * 
-   * @return QueryResult|array
-   */
-
-  public function findExpiredRecordsInTheLast30OR90Days(int $daysPasst)
-  {
-    $currentDate = new \DateTime("now");
-    $period = ($daysPasst == 30) ? 'P30D' : 'P90D';
-    
-    $timeperiod = $currentDate->sub(new \DateInterval($period));
-    $timestamp = date_format($timeperiod, 'U');
-
-    $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('pages');
-
-    $sql = sprintf(
-      'SELECT `p`.`uid`, `p`.`starttime`, `p`.`endtime`, `p`.`title`, `p`.`roof`, `p`.`slug`, `u`.`username`, `u`.`realName`
-       FROM `pages` `p` LEFT JOIN `be_users` `u` on `p`.`cruser_id` = `u`.`uid`
-       WHERE `p`.`starttime` > 0  
-       AND `p`.`red_status` = 22 
-       AND `p`.`deleted` = 0 
-       AND `p`.`hidden` = 1
-       AND (`p`.`endtime` BETWEEN 1 AND %d )
-       GROUP BY `p`.`slug`
-       ORDER BY `p`.`endtime` ASC', $timestamp);
-
-    $statement  = $connection->prepare($sql);
-    $result = $statement->executeQuery();
-
-    return $result->fetchAllAssociative();
-  }
-
+    public function findPages(int $redStatus, int $hiddenStatus, int $daysPast = 0, string $orderBy = 'ASC')
+    {
+        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('pages');
+        $queryBuilder->getRestrictions()->removeAll(); // Remove all restrictions
+
+        $query = $queryBuilder
+            ->select('p.uid', 'p.starttime', 'p.endtime', 'p.title', 'p.roof', 'p.slug', 'u.username', 'u.realName')
+            ->from('pages', 'p')
+            ->leftJoin(
+                'p',
+                'be_users',
+                'u',
+                $queryBuilder->expr()->eq('p.cruser_id', $queryBuilder->quoteIdentifier('u.uid'))
+            )
+            ->where(
+                $queryBuilder->expr()->gt('p.starttime', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->gt('p.endtime', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->eq('p.red_status', $queryBuilder->createNamedParameter($redStatus, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->eq('p.deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->eq('p.hidden', $queryBuilder->createNamedParameter($hiddenStatus, \PDO::PARAM_INT))
+            )
+            ->groupBy('p.slug')
+            ->orderBy('p.endtime', $orderBy);
+
+        if ($daysPast !== 0) {
+            $currentDate = new \DateTime("now");
+            $timestampToday = $currentDate->getTimestamp();
+            $period = ($daysPast == 30) ? 'P30D' : 'P90D';
+            $timeperiod = $currentDate->sub(new \DateInterval($period));
+            $timestamp = $timeperiod->getTimestamp();
+
+            $query->andWhere(
+                $queryBuilder->expr()->gte('p.endtime', $queryBuilder->createNamedParameter($timestamp, \PDO::PARAM_INT)),
+                $queryBuilder->expr()->lte('p.endtime', $queryBuilder->createNamedParameter($timestampToday, \PDO::PARAM_INT))
+            );
+        }
+        return $query->execute()->fetchAllAssociative();
+    }
 }
 }

+ 0 - 6
Classes/ViewHelpers/CssBackgroundViewHelper.php

@@ -22,8 +22,6 @@ class CssBackgroundViewHelper extends AbstractViewHelper
         $endtime = intval($this->arguments['endtime']);
         $endtime = intval($this->arguments['endtime']);
 
 
         $color = $this->getBackgroundColor($endtime);
         $color = $this->getBackgroundColor($endtime);
-        //$data = ['$endtime' => $endtime, '$color' => $color];
-        //DebuggerUtility::var_dump($data);
 
 
         return $color;
         return $color;
     }
     }
@@ -31,13 +29,9 @@ class CssBackgroundViewHelper extends AbstractViewHelper
     protected function getBackgroundColor($endtime)
     protected function getBackgroundColor($endtime)
     {
     {
          $between1And7 = strtotime('7 days');
          $between1And7 = strtotime('7 days');
-        // echo '$betwwen1And7: '.$between1And7.'<br>';
          $between8And14 = strtotime('14 days');
          $between8And14 = strtotime('14 days');
-        // echo '$betwwen8And14: '.$between8And14.'<br>';
          $between15And30 = strtotime('30 days');
          $between15And30 = strtotime('30 days');
-        // echo '$between15And30: '.$between15And30.'<br>';
         $between31And42 = strtotime('42 days');
         $between31And42 = strtotime('42 days');
-        // echo '$between15And30: '.$between31And42.'<br>';
 
 
         $color = '';
         $color = '';
         if($endtime <= $between1And7) {
         if($endtime <= $between1And7) {

+ 58 - 0
README.md

@@ -0,0 +1,58 @@
+# Extension Name: meramo/pagemanager
+
+A TYPO3 page management extension which shows information about the status of all pages in the TYPO3 CMS to the system administrator.
+The information shown is the following:
+    - Start Date: the date the page went Online.
+    - End Date:  the date the page expired.
+    - Rubrik (Kategorie): The Category to which the page belongs.
+    - Title: The title of the page.
+    - Dach: Main topic of the page.
+    - Redacteur: page creator username.
+    - Name: creator name.
+    - Aktion: Edit Link for the page.
+
+## Table of Contents
+
+- [Installation](#installation)
+- [Usage](#usage)
+- [Configuration](#configuration)
+- [Contribution](#contribution)
+- [License](#license)
+
+## Installation
+
+Add the following to the "repositories" block in the  TYPO3 CMS composer.json file.
+    {
+        "type": "vcs",
+        "url": "https://git2.meramo.org/typo3-Extensions/pagemanager.git"
+    }
+The repository section will now look like this;
+"repositories": [
+    ....
+    ....
+    {
+    "type": "vcs",
+    "url": "https://git2.meramo.org/typo3-Extensions/pagemanager.git"
+    }
+]
+
+Save the file and run "composer require meramo/pagemanager" on the command line.
+
+## Usage
+After installation clear system caches. The Module Icon appears under the 'Tools Module' in Backend as a sub Module. 
+The Entry point in the Typo3 Function menu list all active pages in CMS. Changing the Functions Menu option shows either pages which expired in the last 30 or 90 days from the current date.
+
+## Configuration
+
+## Contribution
+
+
+## License
+GPL-3.0
+
+## Credits
+Credit to the whole Meramo Digital Division team, for the constructive criticism and changes to create a more robust extension.
+
+## Authors
+Meramo Digital Division Team.
+

+ 5 - 5
Resources/Private/Partials/Paging.html

@@ -8,13 +8,13 @@
     <f:if condition="{paging.previousPageNumber} && {paging.previousPageNumber} >= {paging.firstPageNumber}">
     <f:if condition="{paging.previousPageNumber} && {paging.previousPageNumber} >= {paging.firstPageNumber}">
       <f:then>
       <f:then>
         <li class="waves-effect list-group">
         <li class="waves-effect list-group">
-          <a href="{f:uri.action(action: actionName, arguments:{currentPage: 1})}"
+          <a href="{f:uri.action(action: actionName, arguments:{currentPage: 1, daysPast: daysPast})}"
             title="{f:translate(key:'pagemanager.paging.first')}">
             title="{f:translate(key:'pagemanager.paging.first')}">
             <i class="material-icons">first_page</i>
             <i class="material-icons">first_page</i>
           </a>
           </a>
         </li>
         </li>
         <li class="waves-effect list-group">
         <li class="waves-effect list-group">
-          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.previousPageNumber})}"
+          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.previousPageNumber, daysPast: daysPast})}"
             title="{f:translate(key:'pagemanager.paging.prevoius')}">
             title="{f:translate(key:'pagemanager.paging.prevoius')}">
             <i class="material-icons">chevron_left</i>
             <i class="material-icons">chevron_left</i>
           </a>
           </a>
@@ -33,20 +33,20 @@
     <li><span class="pageNumbers">Seite {paginator.currentPageNumber} von {paging.lastPageNumber} |</span></li>
     <li><span class="pageNumbers">Seite {paginator.currentPageNumber} von {paging.lastPageNumber} |</span></li>
     <f:for each="{pages}" as="page">
     <f:for each="{pages}" as="page">
       <li class="{f:if(condition: '{page} == {paginator.currentPageNumber}', then:'active', else: 'waves-effect')}">
       <li class="{f:if(condition: '{page} == {paginator.currentPageNumber}', then:'active', else: 'waves-effect')}">
-        <a class="hide" href="{f:uri.action(action: actionName, arguments:{currentPage: page})}">{page}</a>
+        <a class="hide" href="{f:uri.action(action: actionName, arguments:{currentPage: page, daysPast: daysPast})}">{page}</a>
       </li>
       </li>
     </f:for>
     </f:for>
 
 
     <f:if condition="{paging.nextPageNumber} && {paging.nextPageNumber} <= {paging.lastPageNumber}">
     <f:if condition="{paging.nextPageNumber} && {paging.nextPageNumber} <= {paging.lastPageNumber}">
       <f:then>
       <f:then>
         <li class="waves-effect list-group">
         <li class="waves-effect list-group">
-          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.nextPageNumber})}"
+          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.nextPageNumber, daysPast: daysPast})}"
             title="{f:translate(key:'pagemanager.paging.next')}">
             title="{f:translate(key:'pagemanager.paging.next')}">
             <i class="material-icons">chevron_right</i>
             <i class="material-icons">chevron_right</i>
           </a>
           </a>
         </li>
         </li>
         <li class="waves-effect list-group">
         <li class="waves-effect list-group">
-          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.lastPageNumber})}"
+          <a href="{f:uri.action(action: actionName, arguments:{currentPage: paging.lastPageNumber, daysPast: daysPast})}"
           title="{f:translate(key:'pagemanager.paging.last')}">
           title="{f:translate(key:'pagemanager.paging.last')}">
             <i class="material-icons">last_page</i>
             <i class="material-icons">last_page</i>
           </a>
           </a>

+ 1 - 1
Resources/Private/Templates/Backend/Index.html

@@ -8,7 +8,7 @@
    <f:layout name="Default" />
    <f:layout name="Default" />
 
 
    <f:section name="Content">
    <f:section name="Content">
-    <h1>Liste Denächst auslaufende Beitrage</h1>
+    <h1>Liste demächst auslaufender Beiträge</h1>
 
 
     <f:flashMessages />
     <f:flashMessages />
 
 

+ 2 - 3
Resources/Private/Templates/Backend/ShowLast30.html → Resources/Private/Templates/Backend/ShowLast.html

@@ -5,7 +5,7 @@
 
 
 <f:section name="Content">
 <f:section name="Content">
  
  
-    <h1>Liste Beiträge, die in den letzten 30 Tagen ausgelaufen sind</h1>
+    <h1>Liste der Beiträge, die in den letzten {daysPast} Tagen ausgelaufen sind</h1>
 
 
     <f:flashMessages />
     <f:flashMessages />
     
     
@@ -46,6 +46,5 @@
           <f:else>Kein Daten Gefunden</f:else>
           <f:else>Kein Daten Gefunden</f:else>
         </f:if>
         </f:if>
     </table>
     </table>
-    <!-- Render your paging -->
-    <f:render partial="Paging.html" arguments="{totalrecords: totalRecords, cpage: cPage, paging: paging, pages: pages, paginator: paginator, actionName: actionName}" />
+    <f:render partial="Paging.html" arguments="{totalrecords: totalRecords, cpage: cPage, paging: paging, pages: pages, paginator: paginator, actionName: actionName, daysPast: daysPast}" />
 </f:section>
 </f:section>

+ 0 - 52
Resources/Private/Templates/Backend/ShowLast90.html

@@ -1,52 +0,0 @@
-{namespace be=TYPO3\CMS\Backend\ViewHelpers}
-{namespace pagemanager=Meramo\Pagemanager\ViewHelpers}
-
-<f:layout name="Default" />
-
-<f:section name="Content">
- 
-    <h1>Liste Beiträge, die in den letzten 90 Tagen ausgelaufen sind</h1>
-
-    <f:flashMessages />
-    
-    <table class="tx_pagemanager table table-striped table-hover">
-        <tr>
-          <th><f:translate key="pagemanager.starttime" /></th>
-          <th><f:translate key="pagemanager.endtime" /></th>
-          <th><f:translate key="pagemanager.category" /></th>
-          <th><f:translate key="pagemanager.title" /></th>
-          <th><f:translate key="pagemanager.roof" /></th>
-          <th><f:translate key="pagemanager.backend-user" /></th>
-          <th><f:translate key="pagemanager.fullname" /></th>
-          <th><f:translate key="pagemanager.action" /></th>
-        </tr>
-        <f:if condition="{paginator.paginatedItems}">
-          <f:then>
-            <f:for each="{paginator.paginatedItems}" as="activePage" iteration="iterator">
-              <tr>
-                  <td>
-                    <f:format.date format="d.m.Y">{activePage.starttime}</f:format.date>
-                  </td>
-                  <td class="{pagemanager:cssBackground(endtime: '{activePage.endtime}')}">
-                    <f:format.date format="d.m.Y">{activePage.endtime}</f:format.date>
-                  </td>
-                  <td>{activePage.category}</td>
-                  <td>{activePage.title}</td>
-                  <td>{activePage.roof}</td>
-                  <td>{activePage.creator}</td>
-                  <td>{activePage.fullName}</td>
-                  <td>
-                    <be:link.editRecord uid="{activePage.uid}" table="pages" returnUrl="">
-                    <core:icon identifier="actions-document-open" />
-                    </be:link.editRecord>
-                  </td>
-              </tr>
-            </f:for>
-          </f:then>
-          <f:else>Kein Daten Gefunden</f:else>
-        </f:if>
-    </table>
-    <!-- Render your paging -->
-    <f:render partial="Paging.html" arguments="{totalrecords: totalRecords, cpage: cPage, paging: paging, pages: pages, paginator: paginator, actionName: actionName}" />
-
-</f:section>

+ 1 - 1
composer.json

@@ -5,7 +5,7 @@
   "require": {
   "require": {
     "php": ">=7.4.0",
     "php": ">=7.4.0",
     "ext-pdo": "*",
     "ext-pdo": "*",
-    "typo3/cms-core": "^10.4 || ^11.5"
+    "typo3/cms-core": "^10.4 || ^11.5 || ^12.4"
   },
   },
   "type": "typo3-cms-extension",
   "type": "typo3-cms-extension",
   "version": "dev-local",
   "version": "dev-local",

+ 1 - 1
ext_emconf.php

@@ -11,7 +11,7 @@ $EM_CONF[$_EXTKEY] = [
     'version' => '1.0.0',
     'version' => '1.0.0',
     'constraints' => [
     'constraints' => [
         'depends' => [
         'depends' => [
-            'typo3' => '10.4.0-11.5.99',
+            'typo3' => '10.4.0-12.4.99',
         ],
         ],
         'conflicts' => [],
         'conflicts' => [],
         'suggests' => [],
         'suggests' => [],

+ 1 - 1
ext_tables.php

@@ -15,7 +15,7 @@ call_user_func(
       'pgmgt',
       'pgmgt',
       'bottom',
       'bottom',
       [
       [
-        \Meramo\Pagemanager\Controller\BackendController::class => 'index,showLast30,showLast90',
+        \Meramo\Pagemanager\Controller\BackendController::class => 'index,showLast',
 
 
       ],
       ],
       [
       [