/** * Create the demand object which define which records will get shown * * @param Tx_News_Domain_Model_Dto_AdministrationDemand $demand * @return Tx_News_Domain_Model_Dto_NewsDemand */ protected function createDemandObjectFromSettings(Tx_News_Domain_Model_Dto_AdministrationDemand $demand) { $demand->setCategories($demand->getSelectedCategories()); $demand->setOrder($demand->getSortingField() . ' ' . $demand->getSortingDirection()); $demand->setStoragePage(Tx_News_Utility_Page::extendPidListByChildren($this->pageUid, (int) $demand->getRecursive())); $demand->setOrderByAllowed($this->settings['orderByAllowed']); // Ensure that always a storage page is set if ((int) $demand->getStoragePage() === 0) { $demand->setStoragePage('-3'); } return $demand; }
/** * Create the demand object which define which records will get shown * * @param array $settings * @return Tx_News_Domain_Model_Dto_NewsDemand */ protected function createDemandObjectFromSettings($settings) { /* @var $demand Tx_News_Domain_Model_Dto_NewsDemand */ $demand = $this->objectManager->get('Tx_News_Domain_Model_Dto_NewsDemand'); $demand->setCategories(t3lib_div::trimExplode(',', $settings['categories'], TRUE)); $demand->setCategoryConjunction($settings['categoryConjunction']); $demand->setIncludeSubCategories($settings['includeSubCategories']); $demand->setTopNewsRestriction($settings['topNewsRestriction']); $demand->setTimeRestriction($settings['timeRestriction']); $demand->setTimeRestrictionHigh($settings['timeRestrictionHigh']); $demand->setArchiveRestriction($settings['archiveRestriction']); $demand->setExcludeAlreadyDisplayedNews($settings['excludeAlreadyDisplayedNews']); if ($settings['orderBy']) { $demand->setOrder($settings['orderBy'] . ' ' . $settings['orderDirection']); } $demand->setOrderByAllowed($settings['orderByAllowed']); $demand->setTopNewsFirst($settings['topNewsFirst']); $demand->setLimit($settings['limit']); $demand->setOffset($settings['offset']); $demand->setSearchFields($settings['search']['fields']); $demand->setDateField($settings['dateField']); $demand->setMonth($settings['month']); $demand->setYear($settings['year']); $demand->setStoragePage(Tx_News_Utility_Page::extendPidListByChildren($settings['startingpoint'], $settings['recursive'])); return $demand; }
/** * Checks if the news pid could be found in the startingpoint settings of the detail plugin and * if the pid could not be found it return NULL instead of the news object. * * @param Tx_News_Domain_Model_News $news * @return NULL|Tx_News_Domain_Model_News */ protected function checkPidOfNewsRecord(Tx_News_Domain_Model_News $news) { $allowedStoragePages = GeneralUtility::trimExplode(',', Tx_News_Utility_Page::extendPidListByChildren($this->settings['startingpoint'], $this->settings['recursive']), TRUE); if (count($allowedStoragePages) > 0 && !in_array($news->getPid(), $allowedStoragePages)) { $this->signalSlotDispatcher->dispatch(__CLASS__, 'checkPidOfNewsRecordFailedInDetailAction', array('news' => $news, 'newsController' => $this)); $news = NULL; } return $news; }