예제 #1
0
 /**
  * Factory method for filter boxes. Returns filterbox for a given filterbox configuration and list identifier
  *
  * @param Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig $filterboxConfiguration
  * @return Tx_PtExtlist_Domain_Model_Filter_Filterbox
  */
 public function createInstance(Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig $filterboxConfiguration)
 {
     Tx_PtExtbase_Assertions_Assert::isNotEmptyString($filterboxConfiguration->getListIdentifier(), array('message' => 'List identifier must not be empty 1277889458'));
     $filterbox = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_Filterbox');
     /* @var $filterbox Tx_PtExtlist_Domain_Model_Filter_Filterbox */
     $filterbox->_injectFilterboxConfiguration($filterboxConfiguration);
     $filterbox->_injectFilterboxFactory($this);
     foreach ($filterboxConfiguration as $filterConfiguration) {
         $filter = $this->filterFactory->createInstance($filterConfiguration);
         $filter->_injectFilterbox($filterbox);
         $filterbox->addFilter($filter, $filter->getFilterIdentifier());
     }
     $sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance();
     $sessionPersistenceManager->registerObjectAndLoadFromSession($filterbox);
     return $filterbox;
 }
예제 #2
0
 /**
  * Get the real filter object from realList
  *
  * @return Tx_PtExtlist_Domain_Model_Filter_FilterInterface $realFilterObject
  * @throws Exception
  */
 protected function getRealFilterObject()
 {
     $realFilterConfig = $this->getRealFilterConfig();
     $realFilterObject = $this->filterFactory->createInstance($realFilterConfig);
     if (!is_a($realFilterObject, 'Tx_PtExtlist_Domain_Model_Filter_FilterInterface')) {
         throw new Exception('The real filter object of type "' . get_class($realFilterObject) . '" is not a filter.', 1302854030);
     }
     return $realFilterObject;
 }