Skip to content
Snippets Groups Projects
Commit 8cb932f6 authored by Kevin Ditscheid's avatar Kevin Ditscheid
Browse files

[TASK] Merge master

parents a435a27a b3c6db69
No related branches found
No related tags found
2 merge requests!13Feature remove sg news ajax plugin,!8Feature upgrade to9 lts
Showing
with 524 additions and 206 deletions
...@@ -28,6 +28,7 @@ namespace SGalinski\SgNews\Controller; ...@@ -28,6 +28,7 @@ namespace SGalinski\SgNews\Controller;
use SGalinski\SgNews\Domain\Model\Category; use SGalinski\SgNews\Domain\Model\Category;
use SGalinski\SgNews\Domain\Model\News; use SGalinski\SgNews\Domain\Model\News;
use SGalinski\SgNews\Service\ConfigurationService;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
/** /**
...@@ -60,11 +61,15 @@ class LatestController extends AbstractController { ...@@ -60,11 +61,15 @@ class LatestController extends AbstractController {
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
public function indexAction(array $newsMetaData = [], $offset = 0) { public function indexAction(array $newsMetaData = [], $offset = 0) {
$limit = ((int) $this->settings['limit']); $limit = ((int) $this->settings['limit']);
$limit = ($limit < 1 ? 1 : $limit); $limit = ($limit < 1 ? 1 : $limit);
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
$categoryUids = GeneralUtility::intExplode(',', $this->settings['categories'], TRUE); $categoryUids = GeneralUtility::intExplode(',', $this->settings['categories'], TRUE);
$tagUids = GeneralUtility::intExplode(',', $this->settings['tags'], TRUE); $tagUids = GeneralUtility::intExplode(',', $this->settings['tags'], TRUE);
if ((int) $GLOBALS['TSFE']->page['doktype'] === 117 && !count($categoryUids)) { if ((int) $GLOBALS['TSFE']->page['doktype'] === 117 && !count($categoryUids)) {
...@@ -74,7 +79,7 @@ class LatestController extends AbstractController { ...@@ -74,7 +79,7 @@ class LatestController extends AbstractController {
$startTime = (int) $this->settings['starttime']; $startTime = (int) $this->settings['starttime'];
$endTime = (int) $this->settings['endtime']; $endTime = (int) $this->settings['endtime'];
$latestNewsEntries = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories( $latestNewsEntries = $this->newsRepository->findLastUpdatedOrHighlightedNewsByCategories(
$limit, FALSE, $categoryUids, $offset, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime $limit, FALSE, $categoryUids, $offset, TRUE, $sortBy, $tagUids, $startTime, $endTime
); );
$categories = []; $categories = [];
...@@ -102,7 +107,7 @@ class LatestController extends AbstractController { ...@@ -102,7 +107,7 @@ class LatestController extends AbstractController {
if (count($newsMetaData) < $limit) { if (count($newsMetaData) < $limit) {
$offset += $limit; $offset += $limit;
$maxCount = $this->newsRepository->getCountOfLastUpdatedOrHighlightedNewsByCategories( $maxCount = $this->newsRepository->getCountOfLastUpdatedOrHighlightedNewsByCategories(
FALSE, $categoryUids, TRUE, $this->settings['sortBy'], $tagUids, $startTime, $endTime FALSE, $categoryUids, TRUE, $sortBy, $tagUids, $startTime, $endTime
); );
if ($offset < $maxCount) { if ($offset < $maxCount) {
$this->indexAction($newsMetaData, $offset); $this->indexAction($newsMetaData, $offset);
......
...@@ -27,8 +27,10 @@ namespace SGalinski\SgNews\Controller; ...@@ -27,8 +27,10 @@ namespace SGalinski\SgNews\Controller;
***************************************************************/ ***************************************************************/
use SGalinski\SgNews\Domain\Model\News; use SGalinski\SgNews\Domain\Model\News;
use SGalinski\SgNews\Service\ConfigurationService;
use SGalinski\SgNews\Service\HeaderMetaDataService; use SGalinski\SgNews\Service\HeaderMetaDataService;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
/** /**
* Controller that handles the list rendering of a single category * Controller that handles the list rendering of a single category
...@@ -72,6 +74,7 @@ class ListByCategoryController extends AbstractController { ...@@ -72,6 +74,7 @@ class ListByCategoryController extends AbstractController {
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
public function indexAction(array $newsMetaData = [], $currentPageBrowserPage = 0) { public function indexAction(array $newsMetaData = [], $currentPageBrowserPage = 0) {
$filterByCategories = FALSE; $filterByCategories = FALSE;
...@@ -104,9 +107,14 @@ class ListByCategoryController extends AbstractController { ...@@ -104,9 +107,14 @@ class ListByCategoryController extends AbstractController {
$headerSet = FALSE; $headerSet = FALSE;
$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage); $offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
$categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids, $startTime, $endTime $categoryUids, $newsPerPage, $offset, $sortBy, $tagUids, $startTime, $endTime, $sortDirection
)->toArray(); )->toArray();
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
/** @var News $newsEntry */ /** @var News $newsEntry */
$data = $this->getMetaDataForNews($newsEntry, $categories[$newsEntry->getPid()]); $data = $this->getMetaDataForNews($newsEntry, $categories[$newsEntry->getPid()]);
......
...@@ -29,6 +29,7 @@ namespace SGalinski\SgNews\Controller; ...@@ -29,6 +29,7 @@ namespace SGalinski\SgNews\Controller;
use SGalinski\SgNews\Domain\Model\Category; use SGalinski\SgNews\Domain\Model\Category;
use SGalinski\SgNews\Domain\Model\Tag; use SGalinski\SgNews\Domain\Model\Tag;
use SGalinski\SgNews\Domain\Model\News; use SGalinski\SgNews\Domain\Model\News;
use SGalinski\SgNews\Service\ConfigurationService;
use SGalinski\SgNews\Service\HeaderMetaDataService; use SGalinski\SgNews\Service\HeaderMetaDataService;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\Generic\Query; use TYPO3\CMS\Extbase\Persistence\Generic\Query;
...@@ -78,6 +79,7 @@ class OverviewController extends AbstractController { ...@@ -78,6 +79,7 @@ class OverviewController extends AbstractController {
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException * @throws \TYPO3\CMS\Extbase\Mvc\Exception\StopActionException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
public function overviewAction(array $newsFilter = [], $currentPageBrowserPage = 0) { public function overviewAction(array $newsFilter = [], $currentPageBrowserPage = 0) {
switch ((int) $this->settings['groupBy']) { switch ((int) $this->settings['groupBy']) {
...@@ -138,6 +140,7 @@ class OverviewController extends AbstractController { ...@@ -138,6 +140,7 @@ class OverviewController extends AbstractController {
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
protected function overviewWithCategories( protected function overviewWithCategories(
array $newsByCategory = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0 array $newsByCategory = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0
...@@ -157,6 +160,10 @@ class OverviewController extends AbstractController { ...@@ -157,6 +160,10 @@ class OverviewController extends AbstractController {
$startTime = (int) $this->settings['starttime']; $startTime = (int) $this->settings['starttime'];
$endTime = (int) $this->settings['endtime']; $endTime = (int) $this->settings['endtime'];
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
$categoryIds = []; $categoryIds = [];
$categoriesById = []; $categoriesById = [];
$newsMetaData = []; $newsMetaData = [];
...@@ -171,7 +178,7 @@ class OverviewController extends AbstractController { ...@@ -171,7 +178,7 @@ class OverviewController extends AbstractController {
$tagIds = [(int) $newsFilter['tag']]; $tagIds = [(int) $newsFilter['tag']];
} }
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
[$categoryId], $newsLimitPerCategory, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime [$categoryId], $newsLimitPerCategory, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
); );
$newsMetaData[$categoryId] = []; $newsMetaData[$categoryId] = [];
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
...@@ -218,7 +225,7 @@ class OverviewController extends AbstractController { ...@@ -218,7 +225,7 @@ class OverviewController extends AbstractController {
$tagIds = [(int) $newsFilter['tag']]; $tagIds = [(int) $newsFilter['tag']];
} }
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
$categoryIds, $newsLimitPerCategory, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime $categoryIds, $newsLimitPerCategory, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
); );
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
...@@ -279,6 +286,7 @@ class OverviewController extends AbstractController { ...@@ -279,6 +286,7 @@ class OverviewController extends AbstractController {
* @return void * @return void
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
protected function overviewWithTags( protected function overviewWithTags(
array $newsByTag = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0 array $newsByTag = [], array $allNews = [], array $newsFilter = [], $currentPageBrowserPage = 0
...@@ -292,6 +300,10 @@ class OverviewController extends AbstractController { ...@@ -292,6 +300,10 @@ class OverviewController extends AbstractController {
$tagPid = $GLOBALS['TSFE']->id; $tagPid = $GLOBALS['TSFE']->id;
} }
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
$categoryIds = NULL; $categoryIds = NULL;
if ($newsFilter['category']) { if ($newsFilter['category']) {
$categoryIds = [(int) $newsFilter['category']]; $categoryIds = [(int) $newsFilter['category']];
...@@ -317,7 +329,7 @@ class OverviewController extends AbstractController { ...@@ -317,7 +329,7 @@ class OverviewController extends AbstractController {
$tagsById[$tagId] = $tag; $tagsById[$tagId] = $tag;
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
$categoryIds, $newsLimitPerTag, $offset, $this->settings['sortBy'], [$tagId], $startTime, $endTime $categoryIds, $newsLimitPerTag, $offset, $sortBy, [$tagId], $startTime, $endTime, $sortDirection
); );
$newsMetaData[$tagId] = []; $newsMetaData[$tagId] = [];
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
...@@ -362,7 +374,7 @@ class OverviewController extends AbstractController { ...@@ -362,7 +374,7 @@ class OverviewController extends AbstractController {
// Get all news by tags. // Get all news by tags.
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
$categoryIds, $newsLimitPerTag, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime $categoryIds, $newsLimitPerTag, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
); );
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
/** @var News $newsEntry */ /** @var News $newsEntry */
...@@ -435,6 +447,7 @@ class OverviewController extends AbstractController { ...@@ -435,6 +447,7 @@ class OverviewController extends AbstractController {
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException * @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
* @throws \TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException
*/ */
protected function overviewWithoutCategoriesAction( protected function overviewWithoutCategoriesAction(
array $newsMetaData = [], array $newsFilter = NULL, $currentPageBrowserPage = 0 array $newsMetaData = [], array $newsFilter = NULL, $currentPageBrowserPage = 0
...@@ -445,6 +458,10 @@ class OverviewController extends AbstractController { ...@@ -445,6 +458,10 @@ class OverviewController extends AbstractController {
$this->view->assign('selectedTag', $selectedTag); $this->view->assign('selectedTag', $selectedTag);
$this->view->assign('selectedCategory', $selectedCategory); $this->view->assign('selectedCategory', $selectedCategory);
$configurationService = GeneralUtility::makeInstance(ConfigurationService::class);
$sortBy = $configurationService->getConfiguration('sortBy', $this->settings);
$sortDirection = $configurationService->getConfiguration('sortDirection', $this->settings);
$newsPerPage = (int) $this->settings['newsLimit']; $newsPerPage = (int) $this->settings['newsLimit'];
$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage); $offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
...@@ -496,7 +513,7 @@ class OverviewController extends AbstractController { ...@@ -496,7 +513,7 @@ class OverviewController extends AbstractController {
} }
$news = $this->newsRepository->findAllSortedNewsByCategories( $news = $this->newsRepository->findAllSortedNewsByCategories(
$categoryIds, $newsPerPage, $offset, $this->settings['sortBy'], $tagIds, $startTime, $endTime $categoryIds, $newsPerPage, $offset, $sortBy, $tagIds, $startTime, $endTime, $sortDirection
); );
foreach ($news as $newsEntry) { foreach ($news as $newsEntry) {
/** @var News $newsEntry */ /** @var News $newsEntry */
......
...@@ -59,6 +59,11 @@ class News extends CategoryAndNews { ...@@ -59,6 +59,11 @@ class News extends CategoryAndNews {
*/ */
protected $lastUpdated; protected $lastUpdated;
/**
* @var \DateTime
*/
protected $dateEnd;
/** /**
* @var \DateTime * @var \DateTime
*/ */
...@@ -145,6 +150,20 @@ class News extends CategoryAndNews { ...@@ -145,6 +150,20 @@ class News extends CategoryAndNews {
return $this->lastUpdated; return $this->lastUpdated;
} }
/**
* @return \DateTime
*/
public function getDateEnd() {
return $this->dateEnd;
}
/**
* @param \DateTime $dateEnd
*/
public function setDateEnd(\DateTime $dateEnd) {
$this->dateEnd = $dateEnd;
}
/** /**
* @param \DateTime $creationDate * @param \DateTime $creationDate
* @return void * @return void
......
...@@ -45,12 +45,13 @@ class NewsRepository extends AbstractRepository { ...@@ -45,12 +45,13 @@ class NewsRepository extends AbstractRepository {
* @param array $tagIds NULL, if the tag filter isn't applied, otherwise an array with the tag uids. * @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 $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 * @param int $endTime unix timestamp of the upper limit of the news results date
* @param string $sortDirection either DESC or ASC
* @return QueryResultInterface * @return QueryResultInterface
* @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException
*/ */
public function findAllSortedNewsByCategories( 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 $startTime = 0, $endTime = 0, $sortDirection = 'DESC'
): QueryResultInterface { ): QueryResultInterface {
$query = $this->createQuery(); $query = $this->createQuery();
...@@ -97,17 +98,23 @@ class NewsRepository extends AbstractRepository { ...@@ -97,17 +98,23 @@ class NewsRepository extends AbstractRepository {
$query->setOffset($offset); $query->setOffset($offset);
} }
if ($sortDirection === 'ASC') {
$order = QueryInterface::ORDER_ASCENDING;
} else {
$order = QueryInterface::ORDER_DESCENDING;
}
if ($sortBy === 'date') { if ($sortBy === 'date') {
$query->setOrderings( $query->setOrderings(
[ [
'lastUpdated' => QueryInterface::ORDER_DESCENDING, 'lastUpdated' => $order,
'crdate' => QueryInterface::ORDER_DESCENDING, 'crdate' => $order,
] ]
); );
} else { } else {
$query->setOrderings( $query->setOrderings(
[ [
'sorting' => QueryInterface::ORDER_ASCENDING, 'sorting' => $order,
'lastUpdated' => QueryInterface::ORDER_DESCENDING, 'lastUpdated' => QueryInterface::ORDER_DESCENDING,
'crdate' => QueryInterface::ORDER_DESCENDING, 'crdate' => QueryInterface::ORDER_DESCENDING,
] ]
......
<?php
namespace SGalinski\SgNews\Service;
/***************************************************************
* Copyright notice
*
* (c) sgalinski Internet Services (https://www.sgalinski.de)
*
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManager;
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
use TYPO3\CMS\Extbase\Configuration\Exception\InvalidConfigurationTypeException;
/**
* This service provides helper function for dealing with plugin configuration
*/
class ConfigurationService implements SingletonInterface {
/**
* @var array
*/
protected $tsConfig;
/**
* Returns the desired config value either from TypoScript settings or flexform config
* If the user set 'System default' in the flexform, the value will be fetched from TS
*
* @param string $key
* @param array $settings
* @throws InvalidConfigurationTypeException
* @return string
*/
public function getConfiguration($key, array $settings): string {
if (!$this->tsConfig) {
$configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
$this->tsConfig = $configurationManager->getConfiguration(ConfigurationManagerInterface::CONFIGURATION_TYPE_FULL_TYPOSCRIPT);
}
if ($settings[$key] === 'typoscript') {
$setting = $this->tsConfig['plugin.']['tx_sgnews.']['settings.'][$key];
} else {
$setting = $settings[$key];
}
return $setting;
}
}
...@@ -79,6 +79,29 @@ ...@@ -79,6 +79,29 @@
</config> </config>
</TCEforms> </TCEforms>
</settings.endtime> </settings.endtime>
<settings.sortBy>
<TCEforms>
<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
<numIndex index="1">typoscript</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
<numIndex index="1">date</numIndex>
</numIndex>
<numIndex index="2">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
<numIndex index="1">positionInTree</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</settings.sortBy>
</el> </el>
</ROOT> </ROOT>
</main> </main>
......
...@@ -79,6 +79,52 @@ ...@@ -79,6 +79,52 @@
</config> </config>
</TCEforms> </TCEforms>
</settings.endtime> </settings.endtime>
<settings.sortBy>
<TCEforms>
<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
<numIndex index="1">typoscript</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
<numIndex index="1">date</numIndex>
</numIndex>
<numIndex index="2">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
<numIndex index="1">positionInTree</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</settings.sortBy>
<settings.sortDirection>
<TCEforms>
<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortOrder</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
<numIndex index="1">typoscript</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.desc</numIndex>
<numIndex index="1">DESC</numIndex>
</numIndex>
<numIndex index="2">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.asc</numIndex>
<numIndex index="1">ASC</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</settings.sortDirection>
</el> </el>
</ROOT> </ROOT>
</main> </main>
......
...@@ -82,6 +82,50 @@ ...@@ -82,6 +82,50 @@
</config> </config>
</TCEforms> </TCEforms>
</settings.endtime> </settings.endtime>
<settings.sortBy>
<TCEforms>
<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortBy</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
<numIndex index="1">typoscript</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.dateOfPublication</numIndex>
<numIndex index="1">date</numIndex>
</numIndex>
<numIndex index="2">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.orderInPageTree</numIndex>
<numIndex index="1">positionInTree</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</settings.sortBy>
<settings.sortDirection>
<TCEforms>
<label>LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.sortOrder</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.systemDefault</numIndex>
<numIndex index="1">typoscript</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.desc</numIndex>
<numIndex index="1">DESC</numIndex>
</numIndex>
<numIndex index="2">
<numIndex index="0">LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:plugin.listByCategory.flexFrom.asc</numIndex>
<numIndex index="1">ASC</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</settings.sortDirection>
</el> </el>
</ROOT> </ROOT>
</main> </main>
......
...@@ -314,6 +314,17 @@ call_user_func( ...@@ -314,6 +314,17 @@ call_user_func(
'default' => $GLOBALS['EXEC_TIME'], 'default' => $GLOBALS['EXEC_TIME'],
] ]
], ],
'tx_sgnews_date_end' => [
'exclude' => TRUE,
'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_date_end',
'config' => [
'type' => 'input',
'size' => '13',
'max' => '20',
'eval' => 'datetime',
'default' => $GLOBALS['EXEC_TIME'],
]
],
'tx_sgnews_location' => [ 'tx_sgnews_location' => [
'exclude' => TRUE, 'exclude' => TRUE,
'label' => $localLangDbPath . $table . '.tx_sgnews_location', 'label' => $localLangDbPath . $table . '.tx_sgnews_location',
...@@ -342,7 +353,8 @@ call_user_func( ...@@ -342,7 +353,8 @@ call_user_func(
author;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_formlabel, author;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_formlabel,
author_email;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_email_formlabel, author_email;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.author_email_formlabel,
--linebreak--, lastUpdated;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.lastUpdated_formlabel, --linebreak--, lastUpdated;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:' . $table . '.lastUpdated_formlabel,
tx_sgnews_likes,--linebreak--,tx_sgnews_location', tx_sgnews_date_end,
--linebreak--,tx_sgnews_likes,--linebreak--,tx_sgnews_location',
'canNotCollapse' => 1, 'canNotCollapse' => 1,
]; ];
......
...@@ -17,6 +17,7 @@ config.tx_extbase { ...@@ -17,6 +17,7 @@ config.tx_extbase {
tx_sgnews_tags.mapOnProperty = tags tx_sgnews_tags.mapOnProperty = tags
tx_sgnews_likes.mapOnProperty = likes tx_sgnews_likes.mapOnProperty = likes
tx_sgnews_location.mapOnProperty = location tx_sgnews_location.mapOnProperty = location
tx_sgnews_date_end.mapOnProperty = dateEnd
} }
} }
} }
......
...@@ -13,6 +13,9 @@ plugin.tx_sgnews { ...@@ -13,6 +13,9 @@ plugin.tx_sgnews {
settings { settings {
newsLimitPerPage = 12 newsLimitPerPage = 12
tagPid = tagPid =
# sort direction (DESC / ASC)
sortDirection = DESC
} }
pagebrowser.settings { pagebrowser.settings {
......
...@@ -98,6 +98,9 @@ plugin.tx_sgnews { ...@@ -98,6 +98,9 @@ plugin.tx_sgnews {
# How to sort the news in general (date, positionInTree) # How to sort the news in general (date, positionInTree)
sortBy = date sortBy = date
# sort direction (DESC / ASC)
sortDirection = {$plugin.tx_sgnews.settings.sortDirection}
# The publisher value for the structured data implementation (see single view template) # The publisher value for the structured data implementation (see single view template)
publisher = publisher =
......
...@@ -9,114 +9,150 @@ ...@@ -9,114 +9,150 @@
<authorEmail>stefan@sgalinski.de</authorEmail> <authorEmail>stefan@sgalinski.de</authorEmail>
</header> </header>
<body> <body>
<trans-unit id="pages.subtitle.inPalette" approved="yes"> <trans-unit id="pages.subtitle.inPalette" approved="yes">
<source>Title</source> <source><![CDATA[Title]]></source>
<target>Titel</target> <target><![CDATA[Titel]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tabs.images" approved="yes"> <trans-unit id="pages.tabs.images" approved="yes">
<source>Images</source> <source><![CDATA[Images]]></source>
<target>Bilder</target> <target><![CDATA[Bilder]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_author" approved="yes"> <trans-unit id="pages.tx_sgnews_author" approved="yes">
<source>Author</source> <source><![CDATA[Author]]></source>
<target>Autor</target> <target><![CDATA[Autor]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_author.inPalette" approved="yes"> <trans-unit id="pages.tx_sgnews_author.inPalette" approved="yes">
<source>Author (use the free text field if the author not in the list)</source> <source><![CDATA[Author (use the free text field if the author not in the list)]]></source>
<target>Autor (benutze das Freitextfeld, falls der Autor nicht in der Liste ist)</target> <target><![CDATA[Autor (benutze das Freitextfeld, falls der Autor nicht in der Liste ist)]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_highlighted" approved="yes"> <trans-unit id="pages.tx_sgnews_date_end" approved="yes">
<source>Highlighted / Top Element</source> <source><![CDATA[Date until]]></source>
<target>Hervorgehoben / Top-Element</target> <target><![CDATA[Datum bis]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_likes" approved="yes"> <trans-unit id="pages.tx_sgnews_date_start" approved="yes">
<source>Like Count</source> <source><![CDATA[Date from]]></source>
<target>Anzahl der Likes</target> <target><![CDATA[Datum von]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_never_highlighted" approved="yes"> <trans-unit id="pages.tx_sgnews_highlighted" approved="yes">
<source>Don't show in &quot;Latest News&quot;</source> <source><![CDATA[Highlighted / Top Element]]></source>
<target>Nicht in &quot;letzten News&quot; anzeigen</target> <target><![CDATA[Hervorgehoben / Top-Element]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_related_news" approved="yes"> <trans-unit id="pages.tx_sgnews_likes" approved="yes">
<source>Related Elements</source> <source><![CDATA[Like Count]]></source>
<target>Verwandte Elemente</target> <target><![CDATA[Anzahl der Likes]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_tags" approved="yes"> <trans-unit id="pages.tx_sgnews_location" approved="yes">
<source>Tags</source> <source><![CDATA[Location]]></source>
<target>Tags</target> <target><![CDATA[Ort]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_teaser1_image" approved="yes"> <trans-unit id="pages.tx_sgnews_never_highlighted" approved="yes">
<source>Teaser image</source> <source><![CDATA[Don't show in "Latest News"]]></source>
<target>Teaser-Bild</target> <target><![CDATA[Nicht in "letzten News" anzeigen]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_teaser2_image" approved="yes"> <trans-unit id="pages.tx_sgnews_related_news" approved="yes">
<source>Single view image</source> <source><![CDATA[Related Elements]]></source>
<target>Einzelansichts-Bild</target> <target><![CDATA[Verwandte Elemente]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_use_image_crop" approved="yes"> <trans-unit id="pages.tx_sgnews_tags" approved="yes">
<source>Use Image Cropping</source> <source><![CDATA[Tags]]></source>
<target>Bild-Cropping aktivieren</target> <target><![CDATA[Tags]]></target>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_location"> <trans-unit id="pages.tx_sgnews_teaser1_image" approved="yes">
<source>Location</source> <source><![CDATA[Teaser image]]></source>
<target>Ort</target> <target><![CDATA[Teaser-Bild]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.flexForm" approved="yes"> <trans-unit id="pages.tx_sgnews_teaser2_image" approved="yes">
<source>Settings</source> <source><![CDATA[Single view image]]></source>
<target>Einstellungen</target> <target><![CDATA[Einzelansichts-Bild]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.categories" approved="yes"> <trans-unit id="pages.tx_sgnews_use_image_crop" approved="yes">
<source>Categories (No Selection = all)</source> <source><![CDATA[Use Image Cropping]]></source>
<target>Kategorien (Keine Auswahl = alle)</target> <target><![CDATA[Bild-Cropping aktivieren]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.enableFilter" approved="yes"> <trans-unit id="plugin.flexForm" approved="yes">
<source>Enable Filter</source> <source><![CDATA[Settings]]></source>
<target>Filter aktivieren</target> <target><![CDATA[Einstellungen]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.endtime" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.asc" approved="yes">
<source>Show news until</source> <source><![CDATA[Ascending]]></source>
<target>Zeige News bis</target> <target><![CDATA[Aufsteigend]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.dateOfPublication" approved="yes">
<source>Group by</source> <source><![CDATA[Date of publication]]></source>
<target>Gruppiere nach</target> <target><![CDATA[Tag der Veröffentlichung]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.0" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.desc" approved="yes">
<source>None</source> <source><![CDATA[Descending]]></source>
<target>Weder noch</target> <target><![CDATA[Absteigend]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.1" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.orderInPageTree" approved="yes">
<source>Categories</source> <source><![CDATA[Order in pagetree]]></source>
<target>Kategorien</target> <target><![CDATA[Reihenfolge im Seitenbaum]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.2" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.sortBy" approved="yes">
<source>Tags</source> <source><![CDATA[Sort by]]></source>
<target>Tags</target> <target><![CDATA[Sortieren nach]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.categories" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.sortOrder" approved="yes">
<source>Categories (No Selection = current page)</source> <source><![CDATA[Sort order]]></source>
<target>Kategorien (Keine Auswahl = aktuelle Seite)</target> <target><![CDATA[Sortierreihenfolge]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.tags" approved="yes"> <trans-unit id="plugin.listByCategory.flexFrom.systemDefault" approved="yes">
<source>Tags, if none is selected, then all will be displayed</source> <source><![CDATA[System default]]></source>
<target>Tags, wenn keine ausgewählt wird, dann werden alle angezeigt</target> <target><![CDATA[Systemstandard]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimit" approved="yes"> <trans-unit id="plugin.overview.flexForm.categories" approved="yes">
<source>News limit (depending on the view by category or in total)</source> <source><![CDATA[Categories (No Selection = all)]]></source>
<target>News-Limit (je nach Ansicht pro Kategorie oder insgesamt)</target> <target><![CDATA[Kategorien (Keine Auswahl = alle)]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimitPerPage" approved="yes"> <trans-unit id="plugin.overview.flexForm.enableFilter" approved="yes">
<source>News Limit per Page</source> <source><![CDATA[Enable Filter]]></source>
<target>News-Limit pro Seite</target> <target><![CDATA[Filter aktivieren]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection" approved="yes"> <trans-unit id="plugin.overview.flexForm.endtime" approved="yes">
<source>Only news within this page section</source> <source><![CDATA[Show news until]]></source>
<target>Nur News innerhalb dieses Seitenbereichs</target> <target><![CDATA[Zeige News bis]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.starttime" approved="yes"> <trans-unit id="plugin.overview.flexForm.groupBy" approved="yes">
<source>Show news from</source> <source><![CDATA[Group by]]></source>
<target>Zeige News ab</target> <target><![CDATA[Gruppiere nach]]></target>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.0" approved="yes">
<source><![CDATA[None]]></source>
<target><![CDATA[Weder noch]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.1" approved="yes">
<source><![CDATA[Categories]]></source>
<target><![CDATA[Kategorien]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.2" approved="yes">
<source><![CDATA[Tags]]></source>
<target><![CDATA[Tags]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.categories" approved="yes">
<source><![CDATA[Categories (No Selection = current page)]]></source>
<target><![CDATA[Kategorien (Keine Auswahl = aktuelle Seite)]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.tags" approved="yes">
<source><![CDATA[Tags, if none is selected, then all will be displayed]]></source>
<target><![CDATA[Tags, wenn keine ausgewählt wird, dann werden alle angezeigt]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimit" approved="yes">
<source><![CDATA[News limit (depending on the view by category or in total)]]></source>
<target><![CDATA[News-Limit (je nach Ansicht pro Kategorie oder insgesamt)]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimitPerPage" approved="yes">
<source><![CDATA[News Limit per Page]]></source>
<target><![CDATA[News-Limit pro Seite]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection" approved="yes">
<source><![CDATA[Only news within this page section]]></source>
<target><![CDATA[Nur News innerhalb dieses Seitenbereichs]]></target>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.starttime" approved="yes">
<source><![CDATA[Show news from]]></source>
<target><![CDATA[Zeige News ab]]></target>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>
\ No newline at end of file
...@@ -9,87 +9,114 @@ ...@@ -9,87 +9,114 @@
<authorEmail>stefan@sgalinski.de</authorEmail> <authorEmail>stefan@sgalinski.de</authorEmail>
</header> </header>
<body> <body>
<trans-unit id="pages.subtitle.inPalette"> <trans-unit id="pages.subtitle.inPalette">
<source>Title</source> <source><![CDATA[Title]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tabs.images"> <trans-unit id="pages.tabs.images">
<source>Images</source> <source><![CDATA[Images]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_author"> <trans-unit id="pages.tx_sgnews_author">
<source>Author</source> <source><![CDATA[Author]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_author.inPalette"> <trans-unit id="pages.tx_sgnews_author.inPalette">
<source>Author (use the free text field if the author not in the list)</source> <source><![CDATA[Author (use the free text field if the author not in the list)]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_highlighted"> <trans-unit id="pages.tx_sgnews_date_end">
<source>Highlighted / Top Element</source> <source><![CDATA[Date until]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_likes"> <trans-unit id="pages.tx_sgnews_date_start">
<source>Like Count</source> <source><![CDATA[Date from]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_never_highlighted"> <trans-unit id="pages.tx_sgnews_highlighted">
<source>Don't show in &quot;Latest News&quot;</source> <source><![CDATA[Highlighted / Top Element]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_related_news"> <trans-unit id="pages.tx_sgnews_likes">
<source>Related Elements</source> <source><![CDATA[Like Count]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_tags"> <trans-unit id="pages.tx_sgnews_location">
<source>Tags</source> <source><![CDATA[Location]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_teaser1_image"> <trans-unit id="pages.tx_sgnews_never_highlighted">
<source>Teaser image</source> <source><![CDATA[Don't show in "Latest News"]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_teaser2_image"> <trans-unit id="pages.tx_sgnews_related_news">
<source>Single view image</source> <source><![CDATA[Related Elements]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_use_image_crop"> <trans-unit id="pages.tx_sgnews_tags">
<source>Use Image Cropping</source> <source><![CDATA[Tags]]></source>
</trans-unit> </trans-unit>
<trans-unit id="pages.tx_sgnews_location"> <trans-unit id="pages.tx_sgnews_teaser1_image">
<source>Location</source> <source><![CDATA[Teaser image]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.flexForm"> <trans-unit id="pages.tx_sgnews_teaser2_image">
<source>Settings</source> <source><![CDATA[Single view image]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.categories"> <trans-unit id="pages.tx_sgnews_use_image_crop">
<source>Categories (No Selection = all)</source> <source><![CDATA[Use Image Cropping]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.enableFilter"> <trans-unit id="plugin.flexForm">
<source>Enable Filter</source> <source><![CDATA[Settings]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.endtime"> <trans-unit id="plugin.listByCategory.flexFrom.asc">
<source>Show news until</source> <source><![CDATA[Ascending]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy"> <trans-unit id="plugin.listByCategory.flexFrom.dateOfPublication">
<source>Group by</source> <source><![CDATA[Date of publication]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.0"> <trans-unit id="plugin.listByCategory.flexFrom.desc">
<source>None</source> <source><![CDATA[Descending]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.1"> <trans-unit id="plugin.listByCategory.flexFrom.orderInPageTree">
<source>Categories</source> <source><![CDATA[Order in pagetree]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.2"> <trans-unit id="plugin.listByCategory.flexFrom.sortBy">
<source>Tags</source> <source><![CDATA[Sort by]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.categories"> <trans-unit id="plugin.listByCategory.flexFrom.sortOrder">
<source>Categories (No Selection = current page)</source> <source><![CDATA[Sort order]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.tags"> <trans-unit id="plugin.listByCategory.flexFrom.systemDefault">
<source>Tags, if none is selected, then all will be displayed</source> <source><![CDATA[System default]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimit"> <trans-unit id="plugin.overview.flexForm.categories">
<source>News limit (depending on the view by category or in total)</source> <source><![CDATA[Categories (No Selection = all)]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimitPerPage"> <trans-unit id="plugin.overview.flexForm.enableFilter">
<source>News Limit per Page</source> <source><![CDATA[Enable Filter]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection"> <trans-unit id="plugin.overview.flexForm.endtime">
<source>Only news within this page section</source> <source><![CDATA[Show news until]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.starttime"> <trans-unit id="plugin.overview.flexForm.groupBy">
<source>Show news from</source> <source><![CDATA[Group by]]></source>
</trans-unit> </trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.0">
<source><![CDATA[None]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.1">
<source><![CDATA[Categories]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.groupBy.I.2">
<source><![CDATA[Tags]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.categories">
<source><![CDATA[Categories (No Selection = current page)]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.listByCategory.tags">
<source><![CDATA[Tags, if none is selected, then all will be displayed]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimit">
<source><![CDATA[News limit (depending on the view by category or in total)]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.newsLimitPerPage">
<source><![CDATA[News Limit per Page]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.onlyNewsWithinThisPageSection">
<source><![CDATA[Only news within this page section]]></source>
</trans-unit>
<trans-unit id="plugin.overview.flexForm.starttime">
<source><![CDATA[Show news from]]></source>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"license": [ "license": [
"GPL-2.0-or-later" "GPL-2.0-or-later"
], ],
"version": "5.7.1", "version": "5.9.0",
"support": { "support": {
}, },
"repositories": [ "repositories": [
......
...@@ -19,7 +19,7 @@ $EM_CONF[$_EXTKEY] = [ ...@@ -19,7 +19,7 @@ $EM_CONF[$_EXTKEY] = [
'modify_tables' => '', 'modify_tables' => '',
'clearCacheOnLoad' => 0, 'clearCacheOnLoad' => 0,
'lockType' => '', 'lockType' => '',
'version' => '5.7.1', 'version' => '5.9.0',
'constraints' => [ 'constraints' => [
'depends' => [ 'depends' => [
'typo3' => '8.7.0-9.5.99', 'typo3' => '8.7.0-9.5.99',
......
...@@ -8,6 +8,7 @@ CREATE TABLE pages ( ...@@ -8,6 +8,7 @@ CREATE TABLE pages (
tx_sgnews_tags int(11) unsigned DEFAULT '0' NOT NULL, tx_sgnews_tags int(11) unsigned DEFAULT '0' NOT NULL,
tx_sgnews_likes int(11) unsigned DEFAULT '0' NOT NULL, tx_sgnews_likes int(11) unsigned DEFAULT '0' NOT NULL,
tx_sgnews_location mediumtext, tx_sgnews_location mediumtext,
tx_sgnews_date_end int(10) unsigned DEFAULT '0' NOT NULL,
KEY author (tx_sgnews_author) KEY author (tx_sgnews_author)
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment