diff --git a/Classes/Controller/BackendController.php b/Classes/Controller/BackendController.php index 39f94e2979abc8a8eac1e5fe334ae6b84688575c..4a1c8ad44e89a22e0635951b2e403915ef16647e 100644 --- a/Classes/Controller/BackendController.php +++ b/Classes/Controller/BackendController.php @@ -76,9 +76,11 @@ class BackendController extends ActionController { // retrieve next site root id $siteRootId = Utility::getSiteRoot((int) GeneralUtility::_GP('id')); $categories = Utility::getCategoriesForSiteRoot($siteRootId); + $news = Utility::getAllNewsByCategories($categories); $this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent()); $this->view->assign('pageUid', $pageUid); $this->view->assign('categories', $categories); + $this->view->assign('news', $news); } } diff --git a/Classes/Service/Backend/Utility.php b/Classes/Service/Backend/Utility.php index 132818b70d3a96326451b94cbfd95d446b3df929..9dc8b6ac9892c75ec132bcb68ff4d44e89643126 100644 --- a/Classes/Service/Backend/Utility.php +++ b/Classes/Service/Backend/Utility.php @@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Service\Backend; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ +use SGalinski\SgNews\Domain\Repository\NewsRepository; use TYPO3\CMS\Backend\Template\Components\ButtonBar; use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent; use TYPO3\CMS\Backend\Utility\BackendUtility; @@ -35,6 +36,7 @@ use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Mvc\Request; +use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Extbase\Utility\LocalizationUtility; /** @@ -118,13 +120,26 @@ class Utility { $databaseConnection = $GLOBALS['TYPO3_DB']; $where = 'doktype = ' . self::CATEGORY_DOKTYPE . ' AND uid in (' . $childPids . ')'; - $result = $databaseConnection->exec_SELECTquery('uid, title', 'pages', $where)->fetch_all(); + $result = $databaseConnection->exec_SELECTquery('uid', 'pages', $where)->fetch_all(); $categories = []; /** @var array $result */ foreach ($result as $item) { - $categories[$item[0]] = $item[1]; + $categories[] = $item[0]; } return $categories; } + + /** + * @param array $categories + * @return array + * @throws \InvalidArgumentException + * @throws \TYPO3\CMS\Extbase\Persistence\Exception\InvalidQueryException + */ + public static function getAllNewsByCategories(array $categories = []) { + $objectManager = GeneralUtility::makeInstance(ObjectManager::class); + /** @var NewsRepository $newsRepository */ + $newsRepository = $objectManager->get(NewsRepository::class); + return $newsRepository->findAllSortedNewsByCategories($categories)->toArray(); + } }