Example #1
0
 /**
  * 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 \GeorgRinger\News\Domain\Model\News $news
  * @return NULL|\GeorgRinger\News\Domain\Model\News
  */
 protected function checkPidOfNewsRecord(\GeorgRinger\News\Domain\Model\News $news)
 {
     $allowedStoragePages = GeneralUtility::trimExplode(',', Page::extendPidListByChildren($this->settings['startingpoint'], $this->settings['recursive']), true);
     if (count($allowedStoragePages) > 0 && !in_array($news->getPid(), $allowedStoragePages)) {
         $this->signalSlotDispatcher->dispatch(__CLASS__, 'checkPidOfNewsRecordFailedInDetailAction', ['news' => $news, 'newsController' => $this]);
         $news = null;
     }
     return $news;
 }
 /**
  * Create the demand object which define which records will get shown
  *
  * @param \GeorgRinger\News\Domain\Model\Dto\AdministrationDemand $demand
  * @return \GeorgRinger\News\Domain\Model\Dto\NewsDemand
  */
 protected function createDemandObjectFromSettings(\GeorgRinger\News\Domain\Model\Dto\AdministrationDemand $demand)
 {
     $demand->setCategories($demand->getSelectedCategories());
     $demand->setOrder($demand->getSortingField() . ' ' . $demand->getSortingDirection());
     $demand->setStoragePage(Page::extendPidListByChildren($this->pageUid, (int) $demand->getRecursive()));
     $demand->setOrderByAllowed($this->settings['orderByAllowed']);
     if ($demand->getSearchWord()) {
         $searchDto = new Search();
         $searchDto->setSubject($demand->getSearchWord());
         $searchDto->setFields('title');
         $demand->setSearch($searchDto);
     }
     // 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 \GeorgRinger\News\Domain\Model\Dto\NewsDemand
  */
 protected function eventCreateDemandObjectFromSettings($settings)
 {
     $demand = parent::createDemandObjectFromSettings($settings);
     $orderByAllowed = $demand->getOrderByAllowed();
     if (sizeof($orderByAllowed) > 0) {
         $orderByAllowed .= ',';
     }
     // set ordering
     if ($settings['event']['orderByAllowed']) {
         $demand->setOrderByAllowed($orderByAllowed . str_replace(' ', '', $settings['event']['orderByAllowed']));
     } else {
         // default orderByAllowed list
         $demand->setOrderByAllowed($orderByAllowed . 'tx_roqnewsevent_startdate,tx_roqnewsevent_starttime');
     }
     if ($demand->getArchiveRestriction() == 'archived') {
         if ($settings['event']['archived']['orderBy']) {
             $demand->setOrder($settings['event']['archived']['orderBy']);
         } else {
             // default ordering for archived events
             $demand->setOrder('tx_roqnewsevent_startdate DESC, tx_roqnewsevent_starttime DESC');
         }
     } else {
         if ($settings['event']['orderBy']) {
             $demand->setOrder($settings['event']['orderBy']);
         } else {
             // default ordering for active events
             $demand->setOrder('tx_roqnewsevent_startdate ASC, tx_roqnewsevent_starttime ASC');
         }
     }
     if ($settings['event']['startingpoint']) {
         $demand->setStoragePage(\GeorgRinger\News\Utility\Page::extendPidListByChildren($settings['event']['startingpoint'], $settings['recursive']));
     }
     return $demand;
 }