diff --git a/Classes/Controller/LatestController.php b/Classes/Controller/LatestController.php index c4208869567a417c4b0fcd0ea7a6724d686f6588..0186cec437c4cdf16d036f18259d1b093cc38292 100644 --- a/Classes/Controller/LatestController.php +++ b/Classes/Controller/LatestController.php @@ -70,8 +70,10 @@ class LatestController extends AbstractController { $categoryUids = [$GLOBALS['TSFE']->id]; } + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; $latestNewsEntries = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories( - $limit, FALSE, $categoryUids, $offset, TRUE, $this->settings['sortBy'], $tagUids + $limit, FALSE, $categoryUids, $offset, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime ); $categories = []; @@ -99,7 +101,7 @@ class LatestController extends AbstractController { if (count($newsMetaData) < $limit) { $offset += $limit; $maxCount = $this->newsRepository->getCountOfLastUpdatedOrHighlightedNewsByCategories( - FALSE, $categoryUids, TRUE, $this->settings['sortBy'], $tagUids + FALSE, $categoryUids, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime ); if ($offset < $maxCount) { $this->indexAction($newsMetaData, $offset); diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php index 5ed37dc561b321aa0470f4542263204c22cf2036..1bdfd3b2c25fdc474a0d69113a4967f25bcdbb3e 100644 --- a/Classes/Controller/ListByCategoryController.php +++ b/Classes/Controller/ListByCategoryController.php @@ -79,18 +79,21 @@ class ListByCategoryController extends AbstractController { $categories[$categoryUid] = $this->categoryRepository->findByUid($categoryUid); } + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + $offset = 0; $newsPerPage = (int) $this->settings['newsLimitPerPage']; $currentPageBrowserPage = (int) GeneralUtility::_GP('tx_sgnews_pagebrowser')['currentPage']; if ($currentPageBrowserPage && $newsPerPage) { $offset = $currentPageBrowserPage * $newsPerPage; } - $newsCount = $this->newsRepository->newsCountByCategories($categoryUids, $tagUids); + $newsCount = $this->newsRepository->newsCountByCategories($categoryUids, $tagUids, $startTime, $endTime); $numberOfPages = ($newsPerPage <= 0 ? 0 : ceil($newsCount / $newsPerPage)); $headerSet = FALSE; $news = $this->newsRepository->findAllSortedNewsByCategories( - $categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids + $categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids, $startTime, $endTime )->toArray(); foreach ($news as $newsEntry) { /** @var News $newsEntry */ diff --git a/Classes/Controller/NewsFeedController.php b/Classes/Controller/NewsFeedController.php index 8808e69f2fbce99665dd947d86073099d0626db5..21a1f85e97440aad042c2c4db63f9e3c5edd0c00 100644 --- a/Classes/Controller/NewsFeedController.php +++ b/Classes/Controller/NewsFeedController.php @@ -42,10 +42,15 @@ class NewsFeedController extends AbstractController { * Renders the news feed * * @return void + * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ public function indexAction() { $categories = GeneralUtility::intExplode(',', $this->settings['showCategories'], TRUE); - $news = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories(10, FALSE, $categories); + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + $news = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories( + 10, FALSE, $categories, 0, FALSE, 'date', NULL, $startTime, $endTime + ); $this->view->assign('news', $news); } } diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php index 5271e654697bc9dd08cc7fbdfe9a4c5b82042f54..a0ee13a9c63b76d9f3dd1f51c133c20092df2de6 100644 --- a/Classes/Controller/OverviewController.php +++ b/Classes/Controller/OverviewController.php @@ -85,10 +85,13 @@ class OverviewController extends AbstractController { * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ protected function highlightBestFitNews(array $categoryIds = NULL, array $tagIds = NULL) { + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + /** @var News $highlightedNews */ $highlightedNews = $this->newsRepository ->findLastUpdatedOrHighlightedNewsByCategories( - 1, FALSE, $categoryIds, 0, FALSE, $this->settings['sortBy'], $tagIds + 1, FALSE, $categoryIds, 0, FALSE, $this->settings['sortBy'], $tagIds, $startTime, $endTime )->getFirst(); if (!$highlightedNews) { return; @@ -133,6 +136,9 @@ class OverviewController extends AbstractController { $categories = $this->categoryRepository->findAll(); } + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + $categoryIds = []; $categoriesById = []; $newsMetaData = []; @@ -143,8 +149,9 @@ class OverviewController extends AbstractController { $categoriesById[$categoryId] = $category; $news = $this->newsRepository->findAllSortedNewsByCategories( - [$categoryId], $newsLimitPerCategory, $offset, $this->settings['sortBy'] + [$categoryId], $newsLimitPerCategory, $offset, $this->settings['sortBy'], NULL, $startTime, $endTime ); + $newsMetaData[$categoryId] = []; foreach ($news as $newsEntry) { /** @var News $newsEntry */ $categoryId = $newsEntry->getPid(); @@ -162,7 +169,7 @@ class OverviewController extends AbstractController { $maxNewsPerCategory = 0; foreach ($categoriesById as $categoryId => $category) { /** @var $category Category */ - if (isset($newsByTag[$categoryId])) { + if (isset($newsByCategory[$categoryId])) { /** @var $category Category */ $newsByCategory[$categoryId]['newsMetaData'] = array_merge($newsByCategory[$categoryId]['newsMetaData'], $newsMetaData[$categoryId]); @@ -175,12 +182,13 @@ class OverviewController extends AbstractController { ]; } - $maxNewsPerCategory = max($newsByCategory, count($newsByTag[$categoryId]['newsMetaData'])); + $maxNewsPerCategory = max($maxNewsPerCategory, count($newsByCategory[$categoryId]['newsMetaData'])); } $news = $this->newsRepository->findAllSortedNewsByCategories( - $categoryIds, $newsLimitPerCategory, $offset, $this->settings['sortBy'] + $categoryIds, $newsLimitPerCategory, $offset, $this->settings['sortBy'], NULL, $startTime, $endTime ); + foreach ($news as $newsEntry) { /** @var News $newsEntry */ $categoryId = $newsEntry->getPid(); @@ -196,7 +204,7 @@ class OverviewController extends AbstractController { $this->highlightBestFitNews($categoryIds); - $newsCount = $this->newsRepository->newsCountByCategories($categoryIds); + $newsCount = $this->newsRepository->newsCountByCategories($categoryIds, NULL, $startTime, $endTime); $numberOfPages = ($newsLimitPerCategory <= 0 ? 0 : ceil($newsCount / $newsLimitPerCategory)); // Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility. if ($maxNewsPerCategory < $newsLimitPerCategory && count($allNews) < $newsLimitPerCategory) { @@ -243,6 +251,9 @@ class OverviewController extends AbstractController { $tags = $this->tagRepository->findAll(); } + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + $tagIds = []; $tagsById = []; $categoriesById = []; @@ -254,8 +265,9 @@ class OverviewController extends AbstractController { $tagsById[$tagId] = $tag; $news = $this->newsRepository->findAllSortedNewsByCategories( - NULL, $newsLimitPerTag, $offset, $this->settings['sortBy'], [$tagId] + NULL, $newsLimitPerTag, $offset, $this->settings['sortBy'], [$tagId], $startTime, $endTime ); + $newsMetaData[$tagId] = []; foreach ($news as $newsEntry) { /** @var News $newsEntry */ $categoryId = $newsEntry->getPid(); @@ -281,11 +293,9 @@ class OverviewController extends AbstractController { } if (isset($newsByTag[$tagId])) { - /** @var $category Category */ $newsByTag[$tagId]['newsMetaData'] = array_merge($newsByTag[$tagId]['newsMetaData'], $newsMetaData[$tagId]); } else { - /** @var $category Category */ $newsByTag[$tagId] = [ 'record' => $tag, 'recordId' => $tagId, @@ -298,7 +308,7 @@ class OverviewController extends AbstractController { } $news = $this->newsRepository->findAllSortedNewsByCategories( - NULL, $newsLimitPerTag, $offset, $this->settings['sortBy'], $tagIds + NULL, $newsLimitPerTag, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime ); foreach ($news as $newsEntry) { /** @var News $newsEntry */ @@ -318,7 +328,7 @@ class OverviewController extends AbstractController { $this->highlightBestFitNews([], $tagIds); - $newsCount = $this->newsRepository->newsCountByCategories([], $tagIds); + $newsCount = $this->newsRepository->newsCountByCategories([], $tagIds, $startTime, $endTime); $numberOfPages = ($newsLimitPerTag <= 0 ? 0 : ceil($newsCount / $newsLimitPerTag)); // Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility. if ($maxNewsPerTag < $newsLimitPerTag && count($allNews) < $newsLimitPerTag) { @@ -351,6 +361,9 @@ class OverviewController extends AbstractController { $offset = ($currentPageBrowserPage * $newsPerPage) - 1; } + $startTime = (int) $this->settings['starttime']; + $endTime = (int) $this->settings['endtime']; + if ($this->settings['onlyNewsWithinThisPageSection']) { /** @noinspection PhpUndefinedMethodInspection */ $categories = $this->categoryRepository->findByPid($GLOBALS['TSFE']->id); @@ -365,9 +378,9 @@ class OverviewController extends AbstractController { $categoriesById[$categoryId] = $category; } - $newsCount = $this->newsRepository->newsCountByCategories($categoryIds); + $newsCount = $this->newsRepository->newsCountByCategories($categoryIds, NULL, $startTime, $endTime); } else { - $newsCount = $this->newsRepository->countAll(); + $newsCount = $this->newsRepository->countAll($startTime, $endTime); $categoryIds = NULL; $categoriesById = []; @@ -379,7 +392,7 @@ class OverviewController extends AbstractController { } $news = $this->newsRepository->findAllSortedNewsByCategories( - $categoryIds, $newsPerPage, $offset, $this->settings['sortBy'] + $categoryIds, $newsPerPage, $offset, $this->settings['sortBy'], NULL, $startTime, $endTime ); foreach ($news as $newsEntry) { /** @var News $newsEntry */ diff --git a/Classes/Controller/PageBrowserController.php b/Classes/Controller/PageBrowserController.php index 76cce77e90992c0c85d8e2ec539b1b566fa6b7eb..02a550b658d5b9bd4e1e5bff176efe97768ec2b6 100644 --- a/Classes/Controller/PageBrowserController.php +++ b/Classes/Controller/PageBrowserController.php @@ -90,8 +90,8 @@ class PageBrowserController extends ActionController { $this->numberOfPages = (int) $this->settings['numberOfPages']; $this->pagesBefore = (int) $this->settings['pagesBefore']; $this->pagesAfter = (int) $this->settings['pagesAfter']; - $this->enableMorePages = ($this->settings['enableMorePages'] == TRUE); - $this->enableLessPages = ($this->settings['enableLessPages'] == TRUE); + $this->enableMorePages = (bool) $this->settings['enableMorePages']; + $this->enableLessPages = (bool) $this->settings['enableLessPages']; } /** diff --git a/Classes/Domain/Repository/NewsRepository.php b/Classes/Domain/Repository/NewsRepository.php index 393250b13f3a9e5120adb29d62143bdfe3f9a2a3..ee323af01cb22c52fc03112dd9a3afd9712f7015 100644 --- a/Classes/Domain/Repository/NewsRepository.php +++ b/Classes/Domain/Repository/NewsRepository.php @@ -43,11 +43,14 @@ class NewsRepository extends AbstractRepository { * @param int $offset * @param string $sortBy date or positionInTree * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date * @return QueryResultInterface * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ public function findAllSortedNewsByCategories( - array $categoryIds = NULL, $limit = 0, $offset = 0, $sortBy = 'date', array $tagIds = NULL + array $categoryIds = NULL, $limit = 0, $offset = 0, $sortBy = 'date', array $tagIds = NULL, + $startTime = 0, $endTime = 0 ) { $query = $this->createQuery(); @@ -70,6 +73,18 @@ class NewsRepository extends AbstractRepository { } } + $startTime = (int) $startTime; + if ($startTime) { + $startTimeObject = \DateTime::createFromFormat('U', (string) $startTime); + $constraints[] = $query->greaterThanOrEqual('lastUpdated', $startTimeObject); + } + + $endTime = (int) $endTime; + if ($endTime) { + $endTimeObject = \DateTime::createFromFormat('U', (string) $endTime); + $constraints[] = $query->lessThanOrEqual('lastUpdated', $endTimeObject); + } + if (count($constraints)) { $query->matching($query->logicalAnd($constraints)); } @@ -107,10 +122,14 @@ class NewsRepository extends AbstractRepository { * * @param array $categoryIds NULL, if the category filter isn't applied, otherwise an array with the categories uid. * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date * @return int * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ - public function newsCountByCategories(array $categoryIds = NULL, array $tagIds = NULL) { + public function newsCountByCategories( + array $categoryIds = NULL, array $tagIds = NULL, $startTime = 0, $endTime = 0 + ) { $query = $this->createQuery(); $constraints = []; @@ -133,8 +152,22 @@ class NewsRepository extends AbstractRepository { } } + $startTime = (int) $startTime; + if ($startTime) { + $startTimeObject = \DateTime::createFromFormat('U', (string) $startTime); + $constraints[] = $query->greaterThanOrEqual('lastUpdated', $startTimeObject); + } + + $endTime = (int) $endTime; + if ($endTime) { + $endTimeObject = \DateTime::createFromFormat('U', (string) $endTime); + $constraints[] = $query->lessThanOrEqual('lastUpdated', $endTimeObject); + } + if (count($constraints) > 1) { $query->matching($query->logicalAnd($constraints)); + } elseif (count($constraints) === 1) { + $query->matching($constraints[0]); } return $query->count(); } @@ -149,15 +182,19 @@ class NewsRepository extends AbstractRepository { * @param bool $hideNeverHighlightedNews * @param string $sortBy date or positionInTree * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date * @return QueryResultInterface * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ public function findLastUpdatedOrHighlightedNewsByCategories( $limit = 1, $onlyHighlighted = FALSE, array $categoryIds = NULL, - $offset = 0, $hideNeverHighlightedNews = FALSE, $sortBy = 'date', array $tagIds = NULL + $offset = 0, $hideNeverHighlightedNews = FALSE, $sortBy = 'date', array $tagIds = NULL, + $startTime = 0, $endTime = 0 ) { return $this->getQueryForLastUpdatedOrHighlightedNewsByCategories( - $limit, $onlyHighlighted, $categoryIds, $offset, $hideNeverHighlightedNews, $sortBy, $tagIds + $limit, $onlyHighlighted, $categoryIds, $offset, $hideNeverHighlightedNews, $sortBy, $tagIds, + $startTime, $endTime )->execute(); } @@ -166,19 +203,20 @@ class NewsRepository extends AbstractRepository { * * @param bool $onlyHighlighted * @param array $categoryIds NULL, if the category filter isn't applied, otherwise an array with the categories uid. - * @param int $offset * @param bool $hideNeverHighlightedNews * @param string $sortBy date or positionInTree * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date * @return int * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ public function getCountOfLastUpdatedOrHighlightedNewsByCategories( $onlyHighlighted = FALSE, array $categoryIds = NULL, $hideNeverHighlightedNews = FALSE, $sortBy = 'date', - array $tagIds = NULL + array $tagIds = NULL, $startTime = 0, $endTime = 0 ) { return $this->getQueryForLastUpdatedOrHighlightedNewsByCategories( - 0, $onlyHighlighted, $categoryIds, 0, $hideNeverHighlightedNews, $sortBy, $tagIds + 0, $onlyHighlighted, $categoryIds, 0, $hideNeverHighlightedNews, $sortBy, $tagIds, $startTime, $endTime )->count(); } @@ -192,12 +230,15 @@ class NewsRepository extends AbstractRepository { * @param bool $hideNeverHighlightedNews * @param string $sortBy date or positionInTree * @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date * @return QueryInterface * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException */ protected function getQueryForLastUpdatedOrHighlightedNewsByCategories( $limit = 1, $onlyHighlighted = FALSE, array $categoryIds = NULL, - $offset = 0, $hideNeverHighlightedNews = FALSE, $sortBy = 'date', array $tagIds = NULL + $offset = 0, $hideNeverHighlightedNews = FALSE, $sortBy = 'date', array $tagIds = NULL, + $startTime = 0, $endTime = 0 ) { $query = $this->createQuery(); $constraints = NULL; @@ -227,6 +268,18 @@ class NewsRepository extends AbstractRepository { $constraints[] = $query->equals('tx_sgnews_never_highlighted', 0); } + $startTime = (int) $startTime; + if ($startTime) { + $startTimeObject = \DateTime::createFromFormat('U', (string) $startTime); + $constraints[] = $query->greaterThanOrEqual('lastUpdated', $startTimeObject); + } + + $endTime = (int) $endTime; + if ($endTime) { + $endTimeObject = \DateTime::createFromFormat('U', (string) $endTime); + $constraints[] = $query->lessThanOrEqual('lastUpdated', $endTimeObject); + } + if ($sortBy === 'date') { $query->setOrderings( [ @@ -331,4 +384,74 @@ class NewsRepository extends AbstractRepository { /** @noinspection PhpUndefinedMethodInspection */ return $query->statement($statement)->execute(); } + + /** + * Returns all news. + * + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date + * @return QueryResultInterface|array + * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException + * @api + */ + public function findAll($startTime = 0, $endTime = 0) + { + $query = $this->createQuery(); + $constraints = []; + + $startTime = (int) $startTime; + if ($startTime) { + $startTimeObject = \DateTime::createFromFormat('U', (string) $startTime); + $constraints[] = $query->greaterThanOrEqual('lastUpdated', $startTimeObject); + } + + $endTime = (int) $endTime; + if ($endTime) { + $endTimeObject = \DateTime::createFromFormat('U', (string) $endTime); + $constraints[] = $query->lessThanOrEqual('lastUpdated', $endTimeObject); + } + + if (count($constraints) > 1) { + $query->matching($query->logicalAnd($constraints)); + } elseif (count($constraints) === 1) { + $query->matching($constraints[0]); + } + + return $query->execute(); + } + + /** + * Returns the total number of news. + * + * @param int $startTime unix timestamp of the lower limit of the news results date + * @param int $endTime unix timestamp of the upper limit of the news results date + * @return int The news count + * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException + * @api + */ + public function countAll($startTime = 0, $endTime = 0) + { + $query = $this->createQuery(); + $constraints = []; + + $startTime = (int) $startTime; + if ($startTime) { + $startTimeObject = \DateTime::createFromFormat('U', (string) $startTime); + $constraints[] = $query->greaterThanOrEqual('lastUpdated', $startTimeObject); + } + + $endTime = (int) $endTime; + if ($endTime) { + $endTimeObject = \DateTime::createFromFormat('U', (string) $endTime); + $constraints[] = $query->lessThanOrEqual('lastUpdated', $endTimeObject); + } + + if (count($constraints) > 1) { + $query->matching($query->logicalAnd($constraints)); + } elseif (count($constraints) === 1) { + $query->matching($constraints[0]); + } + + return $query->count(); + } } diff --git a/Configuration/FlexForms/Latest.xml b/Configuration/FlexForms/Latest.xml index cdbe3c255490207eb3ae67065eec57d9ce65daee..dec2ed16e8711fcbf7549560dbfd3dc8865ada0f 100644 --- a/Configuration/FlexForms/Latest.xml +++ b/Configuration/FlexForms/Latest.xml @@ -58,6 +58,28 @@ </config> </TCEforms> </settings.tags> + + <settings.starttime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.starttime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.starttime> + + <settings.endtime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.endtime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.endtime> </el> </ROOT> </main> diff --git a/Configuration/FlexForms/ListByCategory.xml b/Configuration/FlexForms/ListByCategory.xml index cce32846e1bbc61f104f803d7279a2e6a7f9f090..960cea53c75f75704ddce81162bfa8a4585b0488 100644 --- a/Configuration/FlexForms/ListByCategory.xml +++ b/Configuration/FlexForms/ListByCategory.xml @@ -58,6 +58,28 @@ </config> </TCEforms> </settings.tags> + + <settings.starttime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.starttime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.starttime> + + <settings.endtime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.endtime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.endtime> </el> </ROOT> </main> diff --git a/Configuration/FlexForms/Overview.xml b/Configuration/FlexForms/Overview.xml index e7a283a97c6d2958436f699299e4a4c93841bb90..0156999a41f47af93144752c6cb5e8c1a3f9cb4b 100644 --- a/Configuration/FlexForms/Overview.xml +++ b/Configuration/FlexForms/Overview.xml @@ -53,6 +53,26 @@ </config> </TCEforms> </settings.onlyNewsWithinThisPageSection> + <settings.starttime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.starttime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.starttime> + <settings.endtime> + <TCEforms> + <label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.overview.flexForm.endtime</label> + <config> + <type>input</type> + <size>12</size> + <eval>datetime</eval> + </config> + </TCEforms> + </settings.endtime> </el> </ROOT> </main> diff --git a/Resources/Private/Language/de.locallang_db.xlf b/Resources/Private/Language/de.locallang_db.xlf index 9302f83995fa018c3dfef2d8b375700ae09a610a..c238ff0204ef0696c77e8f6e795e68f803d21a96 100644 --- a/Resources/Private/Language/de.locallang_db.xlf +++ b/Resources/Private/Language/de.locallang_db.xlf @@ -101,6 +101,14 @@ <source>Tags, if none is selected, then all will be displayed</source> <target>Tags, wenn keine ausgewählt wird, dann werden alle angezeigt</target> </trans-unit> + <trans-unit id="plugin.overview.flexForm.starttime"> + <source>Show news from</source> + <target>Zeige News ab</target> + </trans-unit> + <trans-unit id="plugin.overview.flexForm.endtime"> + <source>Show news until</source> + <target>Zeige News bis</target> + </trans-unit> </body> </file> </xliff> diff --git a/Resources/Private/Language/locallang_db.xlf b/Resources/Private/Language/locallang_db.xlf index 58334e4bd18f14ea299cf1a9f123758827230f32..d277e9126fb1582e2e9ce2e5a9f9e583d3a7bddb 100644 --- a/Resources/Private/Language/locallang_db.xlf +++ b/Resources/Private/Language/locallang_db.xlf @@ -78,6 +78,12 @@ <trans-unit id="plugin.overview.flexForm.listByCategory.tags"> <source>Tags, if none is selected, then all will be displayed</source> </trans-unit> + <trans-unit id="plugin.overview.flexForm.starttime"> + <source>Show news from</source> + </trans-unit> + <trans-unit id="plugin.overview.flexForm.endtime"> + <source>Show news until</source> + </trans-unit> </body> </file> </xliff>