diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fe4b063..a73b93f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Changelog v1.20.0 () * Update for TYPO3 13.4 LTS * BC: showMenu() in ToolBox is not static anymore +* BC: BEPager requires IModule in constructor v1.19.3 (??.0?.2025) * Migrate label translation diff --git a/Classes/Backend/Form/ToolBox.php b/Classes/Backend/Form/ToolBox.php index b13e1d49..60400434 100644 --- a/Classes/Backend/Form/ToolBox.php +++ b/Classes/Backend/Form/ToolBox.php @@ -784,36 +784,43 @@ public function createDateInput($name, $value, array $options = []) $value += date('Z', $value); } $this->initializeJavaScriptFormEngine(); - $dateElementClass = TYPO3::isTYPO121OrHigher() ? - \TYPO3\CMS\Backend\Form\Element\DatetimeElement::class : - \TYPO3\CMS\Backend\Form\Element\InputDateTimeElement::class; // [itemFormElName] => data[tx_cfcleague_games][4][status] // [itemFormElID] => data_tx_cfcleague_games_4_status - - $renderedElement = tx_rnbase::makeInstance( - $dateElementClass, - $this->getTCEForm()->getNodeFactory(), - [ - 'fieldName' => $name, - 'tableName' => '', - 'databaseRow' => ['uid' => 0], - 'processedTca' => ['columns' => [$name => ['config' => ['type' => 'text']]]], - 'parameterArray' => [ - 'itemFormElValue' => $value, - 'itemFormElName' => $name, - 'itemFormElID' => $name, - 'fieldConf' => [ - 'label' => $options[self::OPTION_LABEL] ?? '', - 'config' => [ - 'width' => 20, - 'maxlength' => 20, - 'eval' => 'datetime', - ], + $options = [ + 'fieldName' => $name, + 'tableName' => '', + 'databaseRow' => ['uid' => 0], + 'processedTca' => ['columns' => [$name => ['config' => ['type' => 'text']]]], + 'parameterArray' => [ + 'itemFormElValue' => $value, + 'itemFormElName' => $name, + 'itemFormElID' => $name, + 'fieldConf' => [ + 'label' => $options[self::OPTION_LABEL] ?? '', + 'config' => [ + 'width' => 20, + 'maxlength' => 20, + 'eval' => 'datetime', ], ], - ] - )->render(); + ], + ]; + + if (!TYPO3::isTYPO130OrHigher()) { + $dateElementClass = TYPO3::isTYPO121OrHigher() ? + \TYPO3\CMS\Backend\Form\Element\DatetimeElement::class : + \TYPO3\CMS\Backend\Form\Element\InputDateTimeElement::class; + + $renderedElement = tx_rnbase::makeInstance( + $dateElementClass, + $this->getTCEForm()->getNodeFactory(), + $options + )->render(); + } else { + $options['renderType'] = 'datetime'; + $renderedElement = $this->getTCEForm()->getNodeFactory()->create($options)->render(); + } if ($renderedElement['requireJsModules'] ?? null) { $pageRenderer = $this->getDoc()->getPageRenderer(); diff --git a/Classes/Backend/Lister/AbstractLister.php b/Classes/Backend/Lister/AbstractLister.php index 86eb0c3b..ffc265c3 100644 --- a/Classes/Backend/Lister/AbstractLister.php +++ b/Classes/Backend/Lister/AbstractLister.php @@ -186,7 +186,7 @@ protected function getPager() tx_rnbase::makeInstance( BEPager::class, $this->getListerId().'Pager', - $this->getModule()->getName(), + $this->getModule(), $this->getOptions()->getPid() ) ); diff --git a/Classes/Backend/Utility/BEPager.php b/Classes/Backend/Utility/BEPager.php index 4f7c7825..8dc60e38 100644 --- a/Classes/Backend/Utility/BEPager.php +++ b/Classes/Backend/Utility/BEPager.php @@ -2,12 +2,12 @@ namespace Sys25\RnBase\Backend\Utility; -use Sys25\RnBase\Backend\Form\ToolBox; +use Sys25\RnBase\Backend\Module\IModule; /*************************************************************** * Copyright notice * -* (c) 2008-2023 Rene Nitzsche (rene@system25.de) +* (c) 2008-2025 Rene Nitzsche (rene@system25.de) * All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is @@ -41,14 +41,16 @@ class BEPager private $settings; private $init = false; + private $module; private $modName; private $conf; - public function __construct($id, $modName, $pid, $listSize = 0, $conf = []) + public function __construct($id, IModule $module, $pid, $listSize = 0, $conf = []) { $this->id = strlen(trim($id)) ? trim($id) : 'pager'; $this->pid = $pid; - $this->modName = $modName; + $this->module = $module; + $this->modName = $module->getName(); $this->conf = $conf; $this->setListSize($listSize); } @@ -102,7 +104,8 @@ public function setState() return; } $sizes = $this->getLimits(); - $menu = ToolBox::showMenu($this->pid, $this->getDataName().'_limit', $this->modName, $sizes); + $toolbox = $this->module->getFormTool(); + $menu = $toolbox->showMenu($this->pid, $this->getDataName().'_limit', $this->modName, $sizes); $this->setSetting('limit', $menu['value']); $this->setSetting('limitMenu', $menu['menu']); @@ -118,7 +121,7 @@ public function setState() } $pages[$i * $results_at_a_time] = 'Seite '.$i; } - $menu = ToolBox::showMenu($this->pid, $this->getDataName().'_offset', $this->modName, $pages); + $menu = $toolbox->showMenu($this->pid, $this->getDataName().'_offset', $this->modName, $pages); $this->setSetting('offset', $menu['value']); $this->setSetting('offsetMenu', $menu['menu']); $this->init = true; diff --git a/Classes/Utility/LanguageTool.php b/Classes/Utility/LanguageTool.php index 69c09136..0d1bd4c7 100644 --- a/Classes/Utility/LanguageTool.php +++ b/Classes/Utility/LanguageTool.php @@ -107,7 +107,7 @@ public function getLL($key, $alt = '', $hsc = false, $labelDebug = false): strin } } if (empty($result)) { - $result = $this->getLanguageService()->sL($key); + $result = $alt; } } else { $result = $this->localLangUtil->getLL($key, $alt, false, $labelDebug);