/**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $rendererChainSettings)
 {
     $this->configurationBuilder = $configurationBuilder;
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
     $this->settings = $rendererChainSettings;
     $this->init();
 }
 /**
  * Factory method for repository to be used with this data backend.
  * 
  * Although it's called data source, we create an extbase repository here which acts as a 
  * datasource for this backend.
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return mixed
  */
 public static function createDataSource(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $dataBackendSettings = $configurationBuilder->getSettingsForConfigObject('dataBackend');
     Tx_PtExtbase_Assertions_Assert::isNotEmptyString($dataBackendSettings['repositoryClassName'], array('message' => 'No repository class name is given for extBase backend. 1281546327'));
     Tx_PtExtbase_Assertions_Assert::isTrue(class_exists($dataBackendSettings['repositoryClassName']), array('message' => 'Given class does not exist: ' . $dataBackendSettings['repositoryClassName'] . ' 1281546328'));
     $repository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get($dataBackendSettings['repositoryClassName']);
     return $repository;
 }
 /**
  * Returns a instance of a sorter configuration.
  * 
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Sorting_SorterConfig
  */
 public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $sorterSettings = $configurationBuilder->getSettings('sorter');
     if (!is_array($sorterSettings)) {
         $sorterSettings = array();
     }
     $sorterConfig = new Tx_PtExtlist_Domain_Configuration_Sorting_SorterConfig($configurationBuilder, $sorterSettings);
     return $sorterConfig;
 }
 /**
  * Builds a collection of aggregate config objects for a given settings array
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 protected static function buildAggregateConfigCollection(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $aggregateConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Aggregates_AggregateConfigCollection();
     $aggregateSettingsArray = $configurationBuilder->getSettingsForConfigObject('aggregateData');
     foreach ($aggregateSettingsArray as $aggregateIdentifier => $aggregateSettings) {
         $aggregateConfig = new Tx_PtExtlist_Domain_Configuration_Data_Aggregates_AggregateConfig($aggregateIdentifier, $aggregateSettings, $configurationBuilder);
         $aggregateConfigCollection->addAggregateConfig($aggregateConfig);
     }
     return $aggregateConfigCollection;
 }
 /**
  * 
  * @param $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfigCollection
  */
 public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $filterboxCollectionSettings = $configurationBuilder->getSettingsForConfigObject('filter');
     $filterBoxConfigCollection = new Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfigCollection($configurationBuilder);
     foreach ($filterboxCollectionSettings as $filterboxIdentifier => $filterboxSettings) {
         $filterboxConfiguration = Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfigFactory::createInstance($configurationBuilder, $filterboxIdentifier, $filterboxSettings);
         $filterBoxConfigCollection->addFilterBoxConfig($filterboxConfiguration, $filterboxIdentifier);
     }
     return $filterBoxConfigCollection;
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Aggregates_AggregateRowConfigCollection
  */
 protected static function buildAggregateRowConfigCollection(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $aggregateRowSettings = $configurationBuilder->getSettingsForConfigObject('aggregateRows');
     ksort($aggregateRowSettings);
     $aggregateRowConfigCollection = new Tx_PtExtlist_Domain_Configuration_Aggregates_AggregateRowConfigCollection();
     foreach ($aggregateRowSettings as $rowId => $rowSetting) {
         $aggregateRowConfigCollection->addAggregateRowConfig(Tx_PtExtlist_Domain_Configuration_Aggregates_AggregateRowConfigFactory::getAggregateRowConfig($configurationBuilder, $rowSetting), $rowId);
     }
     return $aggregateRowConfigCollection;
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Pager_PagerConfigCollection
  */
 public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $pagerCollectionSettings = $configurationBuilder->getSettingsForConfigObject('pager');
     $pagerConfigCollection = new Tx_PtExtlist_Domain_Configuration_Pager_PagerConfigCollection($configurationBuilder);
     foreach ($pagerCollectionSettings['pagerConfigs'] as $pagerIdentifier => $pagerSettings) {
         $pagerSettings['itemsPerPage'] = $pagerCollectionSettings['itemsPerPage'];
         $pagerConfiguration = Tx_PtExtlist_Domain_Configuration_Pager_PagerConfigFactory::getInstance($configurationBuilder, $pagerIdentifier, $pagerSettings);
         $pagerConfigCollection->addPagerConfig($pagerConfiguration, $pagerIdentifier);
     }
     return $pagerConfigCollection;
 }
 /**
  * Factory method creates instance of breadcrumbs collection as list identifier-specific singleton
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumbCollection
  */
 public function getInstanceByConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     if (!array_key_exists($configurationBuilder->getListIdentifier(), $this->instances) || $this->instances[$configurationBuilder->getListIdentifier()] == null) {
         $filterboxCollectionFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollectionFactory');
         /* @var $filterboxCollectionFactory Tx_PtExtlist_Domain_Model_Filter_FilterboxCollectionFactory */
         $filterboxCollection = $filterboxCollectionFactory->createInstance($configurationBuilder, false);
         $breadCrumbCollection = $this->getInstanceByFilterboxCollection($configurationBuilder, $filterboxCollection);
         $this->instances[$configurationBuilder->getListIdentifier()] = $breadCrumbCollection;
     }
     return $this->instances[$configurationBuilder->getListIdentifier()];
 }
 /**
  * Creates a new instance of bookmark manager for given configuration builder
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager
  */
 protected function createNewInstanceByConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $bookmarksConfiguration = $configurationBuilder->buildBookmarkConfiguration();
     $this->bookmarkRepository->setBookmarkStoragePid($bookmarksConfiguration->getBookmarkPid());
     $bookmarkManager = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager', $configurationBuilder->getListIdentifier());
     /* @var $bookmarkManager Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager */
     $bookmarkManager->_injectConfigurationBuilder($configurationBuilder);
     $bookmarkManager->_injectSessionPersistenceManager($this->sessionPersistenceManagerBuilder->getInstance());
     $bookmarkManager->buildBookmarkConfig();
     $bookmarkManager->initFeUser();
     return $bookmarkManager;
 }
 /**
  * Get the settings 
  * 
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return array
  */
 protected static function getExportSettingsForCurrentView(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $allExportSettings = $configurationBuilder->getSettingsForConfigObject('export');
     $controllerSettings = $configurationBuilder->getSettings('controller');
     $selectedViewSettingsKey = $controllerSettings['Export']['download']['view'];
     $exportSettingsPath = explode('.', $selectedViewSettingsKey);
     $exportSettings = \TYPO3\CMS\Extbase\Utility\ArrayUtility::getValueByPath($configurationBuilder->getSettings(), $exportSettingsPath);
     /* In this case we have to merge the prototype settings again because the prototype settings are filled from flexform....
      * This smells ... 
      * TODO: find a better way .... 
      */
     return $configurationBuilder->getMergedSettingsWithPrototype($exportSettings, 'export');
 }
 /**
  * Factory method for returning a singleton instance of a column selector
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_ColumnSelector_ColumnSelector
  */
 public function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     if ($this->instances[$listIdentifier] === null) {
         $this->instances[$listIdentifier] = new Tx_PtExtlist_Domain_Model_ColumnSelector_ColumnSelector();
         $this->instances[$listIdentifier]->setConfiguration($configurationBuilder->buildColumnSelectorConfiguration());
         // Inject settings from session.
         $this->sessionPersistenceManagerBuilder->getInstance()->registerObjectAndLoadFromSession($this->instances[$listIdentifier]);
         // Inject settings from gp-vars.
         $this->getPostVarsAdapterFactory->getInstance()->injectParametersInObject($this->instances[$listIdentifier]);
     }
     return $this->instances[$listIdentifier];
 }
Example #12
0
 /**
  * Factory method for returning a singleton instance of sorter
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_Sorting_Sorter
  */
 public function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     if ($this->instances[$listIdentifier] === null) {
         $this->instances[$listIdentifier] = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Sorting_Sorter');
         $this->instances[$listIdentifier]->_injectSorterConfig($configurationBuilder->buildSorterConfiguration());
         // At the moment we have to build list header here, as it is not registered in sorter otherwise.
         // TODO refactor this! We can register list header after sorter is build!
         $listHeaderFactory = $this->objectManager->get('Tx_PtExtlist_Domain_Model_List_Header_ListHeaderFactory');
         /* @var $listHeaderFactory Tx_PtExtlist_Domain_Model_List_Header_ListHeaderFactory */
         $listHeaderFactory->createInstance($configurationBuilder);
     }
     return $this->instances[$listIdentifier];
 }
 /**
  * @param Tx_PtExtlist_Domain_Model_Bookmark_Bookmark $bookmark
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param array $sessionData
  * @return void
  */
 public function addContentToBookmark(Tx_PtExtlist_Domain_Model_Bookmark_Bookmark $bookmark, Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $sessionData)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     $bookmarkContentArray = array();
     if (array_key_exists($listIdentifier, $sessionData)) {
         if (array_key_exists('headerColumns', $sessionData[$listIdentifier])) {
             $bookmarkContentArray[$listIdentifier]['headerColumns'] = $sessionData[$listIdentifier]['headerColumns'];
         }
         if (array_key_exists('filters', $sessionData[$listIdentifier])) {
             $bookmarkContentArray[$listIdentifier]['filters'] = $sessionData[$listIdentifier]['filters'];
         }
     }
     $bookmark->setContent(serialize($bookmarkContentArray));
 }
Example #14
0
 /**
  * Returns an instance of a data mapper for a given data mapper class name.
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return mixed
  */
 public function createDataMapper(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $dataBackendConfiguration = $configurationBuilder->buildDataBackendConfiguration();
     $dataMapperClassName = $dataBackendConfiguration->getDataMapperClass();
     $dataMapper = $this->objectManager->get($dataMapperClassName, $configurationBuilder);
     /** @var Tx_PtExtlist_Domain_DataBackend_Mapper_AbstractMapper $dataMapper */
     $mapperConfiguration = $configurationBuilder->buildFieldsConfiguration();
     // Check whether mapper implements interface
     Tx_PtExtbase_Assertions_Assert::isTrue($dataMapper instanceof Tx_PtExtlist_Domain_DataBackend_Mapper_MapperInterface, array('message' => 'Data mapper must implement data mapper interface! 1280415471'));
     $dataMapper->_injectConfigurationBuilder($configurationBuilder);
     $dataMapper->_injectMapperConfiguration($mapperConfiguration);
     $dataMapper->init();
     return $dataMapper;
 }
 /**
  * Returns a instance of the pager collection.
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_Pager_PagerCollection
  */
 public function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $pagerConfigurationCollection = $configurationBuilder->buildPagerConfiguration();
     $pagerCollection = new Tx_PtExtlist_Domain_Model_Pager_PagerCollection($configurationBuilder);
     $sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance();
     $sessionPersistenceManager->registerObjectAndLoadFromSession($pagerCollection);
     $pagerCollection->injectSessionPersistenceManager($sessionPersistenceManager);
     $this->getPostVarsAdapterFactory->getInstance()->injectParametersInObject($pagerCollection);
     // Create pagers and add them to the collection
     foreach ($pagerConfigurationCollection as $pagerIdentifier => $pagerConfig) {
         $pagerCollection->addPager($this->pagerFactory->getInstance($pagerConfig));
     }
     return $pagerCollection;
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Renderer_RendererChainConfig
  */
 public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $rendererChainConfiguration = null;
     $rendererChainSettings = $configurationBuilder->getSettingsForConfigObject('rendererChain');
     if (is_array($rendererChainSettings['rendererConfigs'])) {
         ksort($rendererChainSettings['rendererConfigs']);
         $rendererChainConfiguration = new Tx_PtExtlist_Domain_Configuration_Renderer_RendererChainConfig($configurationBuilder, $rendererChainSettings);
         foreach ($rendererChainSettings['rendererConfigs'] as $rendererIdentifier => $rendererSettings) {
             $rendererConfiguration = Tx_PtExtlist_Domain_Configuration_Renderer_RendererConfigFactory::getRendererConfiguration($configurationBuilder, $rendererSettings);
             $rendererChainConfiguration->addRendererConfig($rendererConfiguration, $rendererIdentifier);
         }
     }
     return $rendererChainConfiguration;
 }
 /**
  * Factory method for creating filterbox collection for a given configuration builder
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param boolean $resetFilterBoxCollection
  * @return Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection
  */
 public function createInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $resetFilterBoxCollection)
 {
     if ($this->instances[$configurationBuilder->getListIdentifier()] === null || $resetFilterBoxCollection === true) {
         $filterboxConfigCollection = $configurationBuilder->buildFilterConfiguration();
         $filterboxCollection = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection', $configurationBuilder);
         /* @var $filterboxCollection Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection */
         foreach ($filterboxConfigCollection as $filterboxConfiguration) {
             /* @var $filterboxConfiguration Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig */
             $filterbox = $this->filterboxFactory->createInstance($filterboxConfiguration);
             $filterboxCollection->addFilterBox($filterbox, $filterbox->getfilterboxIdentifier());
         }
         $this->instances[$configurationBuilder->getListIdentifier()] = $filterboxCollection;
     }
     return $this->instances[$configurationBuilder->getListIdentifier()];
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfigCollection
  */
 protected static function buildColumnConfigCollection(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $columnSettings = $configurationBuilder->getSettingsForConfigObject('columns');
     ksort($columnSettings);
     $columnConfigCollection = new Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfigCollection();
     $security = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Security_GroupSecurity');
     /* @var $security Tx_PtExtlist_Domain_Security_GroupSecurity */
     foreach ($columnSettings as $columnId => $columnSetting) {
         $columnSettingMergedWithPrototype = $configurationBuilder->getMergedSettingsWithPrototype($columnSetting, 'column.default');
         $columnConfig = new Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfig($configurationBuilder, $columnSettingMergedWithPrototype);
         // Inject security information
         $accessable = $security->isAccessableColumn($columnConfig);
         $columnConfig->setAccessable($accessable);
         $columnConfigCollection->addColumnConfig($columnId, $columnConfig);
     }
     return $columnConfigCollection;
 }
Example #19
0
 /** @test */
 public function getFilterByFilterIdentifierReturnsExpectedFilter()
 {
     $dataBackendFactoryMock = $this->getDataBackendFactoryMockForListConfigurationAndListIdentifier($this->configurationBuilderMock->getSettings(), $this->configurationBuilderMock->getListIdentifier());
     $filterboxFactory = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxFactory');
     /* @var $filterboxFactory Tx_PtExtlist_Domain_Model_Filter_FilterboxFactory */
     $filterboxFactory->setDataBackendFactory($dataBackendFactoryMock);
     $filterbox = $filterboxFactory->createInstance($this->configurationBuilderMock->buildFilterConfiguration()->getFilterBoxConfig('testfilterbox'));
     $this->assertSame('testfilterbox', $filterbox->getFilterByFilterIdentifier('filter1')->getFilterBoxIdentifier());
 }
 /**
  * Build the aggregate data by configuration
  * 
  * @return Tx_PtExtlist_Domain_Model_List_Row
  */
 protected function buildAggregateDataRow()
 {
     $dataRow = new Tx_PtExtlist_Domain_Model_List_Row();
     $aggregateDataConfigCollection = $this->configurationBuilder->buildAggregateDataConfig();
     $aggregatesForPage = $this->getAggregatesForPage($aggregateDataConfigCollection->extractCollectionByScope('page'));
     $aggregatesForQuery = $this->getAggregatesForQuery($aggregateDataConfigCollection->extractCollectionByScope('query'));
     \TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($aggregatesForQuery, $aggregatesForPage);
     foreach ($aggregatesForQuery as $key => $value) {
         $dataRow->createAndAddCell($value, $key);
     }
     return $dataRow;
 }
 /**
  * @return Tx_PtExtbase_State_Session_SessionPersistenceManager
  */
 protected function buildSessionPersistenceManager()
 {
     // Determine class name of session storage class to use for session persistence
     if (TYPO3_MODE === 'FE') {
         $sessionPersistenceStorageAdapterClassName = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Extbase_ExtbaseContext')->isInCachedMode() ? $this->configurationBuilder->buildBaseConfiguration()->getCachedSessionStorageAdapter() : $this->configurationBuilder->buildBaseConfiguration()->getUncachedSessionStorageAdapter();
         // We are in uncached mode
     } else {
         $sessionPersistenceStorageAdapterClassName = Tx_PtExtbase_State_Session_SessionPersistenceManager::STORAGE_ADAPTER_BROWSER_SESSION;
     }
     // Instantiate session storage for determined class name
     $sessionStorageAdapter = call_user_func($sessionPersistenceStorageAdapterClassName . '::getInstance');
     $this->sessionPersistenceManager = $this->sessionPersistenceManagerBuilder->getInstance($sessionStorageAdapter);
 }
 /**
  * 
  * @param string $identifier aggregate identifier 
  * @param array $aggregateSettings
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @throws Exception
  */
 public function __construct($identifier, $aggregateSettings, Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     Tx_PtExtbase_Assertions_Assert::isNotEmptyString($identifier, array('message' => 'No aggregate identifier specified. 1282891490'));
     $this->identifier = $identifier;
     if (!trim($aggregateSettings['fieldIdentifier'])) {
         throw new Exception('No fieldIdentifier for aggregate given! 1282891630');
     }
     $this->fieldIdentifier = $configurationBuilder->buildFieldsConfiguration()->getFieldConfigByIdentifier($aggregateSettings['fieldIdentifier']);
     if (!array_key_exists('method', $aggregateSettings) && !array_key_exists('special', $aggregateSettings)) {
         throw new Exception('No aggregate method or special sql given for aggregate ' . $this->identifier . '! 1282891831');
     }
     if (array_key_exists('method', $aggregateSettings)) {
         $this->method = trim($aggregateSettings['method']);
     }
     if (array_key_exists('scope', $aggregateSettings)) {
         $this->scope = $aggregateSettings['scope'];
     }
     if (array_key_exists('special', $aggregateSettings)) {
         $this->special = $aggregateSettings['special'];
         $this->scope = 'query';
     }
 }
Example #23
0
 /**
  * Renders the cell content.
  *
  * @param \Tx_PtExtlist_Domain_Configuration_ColumnConfigInterface $columnConfig
  * @param Tx_PtExtlist_Domain_Model_List_Row $data The table data.
  * @param integer $columnIndex Current column index.
  * @param integer $rowIndex Current row index.
  *
  * @internal param string $columnIdentifier The columnIdentifier.
  * @return Tx_Pt_extlist_Domain_Model_List_Cell
  */
 public function renderCell(Tx_PtExtlist_Domain_Configuration_ColumnConfigInterface $columnConfig, Tx_PtExtlist_Domain_Model_List_Row $data, $columnIndex, $rowIndex)
 {
     // Load all available fields
     $fieldSet = $this->createFieldSet($data, $columnConfig);
     $caching = $columnConfig->getCacheRendering() || $this->configurationBuilder->buildListConfiguration()->getCacheRendering();
     // TODO: Include the objectMapper here ...
     // if($columnConfig->getObjectMapperConfig() instanceof Tx_PtExtlist_Domain_Configuration_Columns_ObjectMapper_ObjectMapperConfig) {}
     if ($columnConfig->getRawFields()) {
         $content = $fieldSet;
     } else {
         $content = Tx_PtExtlist_Utility_RenderValue::renderByConfigObject($fieldSet, $columnConfig, $caching);
     }
     // Create new cell
     $cell = new Tx_PtExtlist_Domain_Model_List_Cell($content);
     $cell->setRowIndex($rowIndex);
     $cell->setColumnIndex($columnIndex);
     // render cell css class
     if ($columnConfig->getCellCSSClass()) {
         $cell->setCSSClass($this->renderCellCSSClass($fieldSet, $columnConfig));
     }
     return $cell;
 }
Example #24
0
 /**
  * Factory method for data source
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_DataBackend_DataSource_DummyDataSource
  */
 public static function createDataSource(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     return new Tx_PtExtlist_Domain_DataBackend_DataSource_DummyDataSource($configurationBuilder->buildDataBackendConfiguration()->getDataSourceSettings());
 }
Example #25
0
 /**
  * @static
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param Tx_PtExtlist_Domain_Model_List_Header_ListHeader $listHeader
  */
 protected function setVisibilityByColumnSelector(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, Tx_PtExtlist_Domain_Model_List_Header_ListHeader $listHeader)
 {
     if ($configurationBuilder->buildColumnSelectorConfiguration()->getEnabled()) {
         $this->columnSelectorFactory->getInstance($configurationBuilder)->setVisibilityOnListHeader($listHeader);
     }
 }
Example #26
0
 /**
  * Factory method for data source
  *
  * Only DataBackend knows, which data source to use and how to instantiate it.
  * So there cannot be a generic factory for data sources and data backend factory cannot instantiate it either!
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_DataBackend_DataSource_MySqlDataSource Data source object for this data backend
  */
 public static function createDataSource(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $dataSourceConfiguration = new Tx_PtExtlist_Domain_Configuration_DataBackend_DataSource_DatabaseDataSourceConfiguration($configurationBuilder->buildDataBackendConfiguration()->getDataSourceSettings());
     $dataSource = Tx_PtExtlist_Domain_DataBackend_DataSource_MysqlDataSourceFactory::createInstance($configurationBuilder->buildDataBackendConfiguration()->getDataSourceClass(), $dataSourceConfiguration);
     return $dataSource;
 }
 /**
  * Constructor for configuration object
  * 
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param array $settings
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $settings = array())
 {
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
     parent::__construct($configurationBuilder, $settings);
 }
Example #28
0
 /**
  * Returns an instance of this object for a given session persisted array
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param array $sessionArray
  * @return Tx_PtExtlist_Domain_Model_Sorting_SortingState
  */
 public static function getInstanceBySessionArray(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $sessionArray)
 {
     $field = $configurationBuilder->buildFieldsConfiguration()->getFieldConfigByIdentifier($sessionArray['fieldName']);
     $direction = $sessionArray['direction'];
     return new Tx_PtExtlist_Domain_Model_Sorting_SortingState($field, $direction);
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
 }
Example #30
0
 public function testBuildFilterBoxConfiguration()
 {
     $settings = $this->buildTypoScriptConfigForConfigBuilder('tsTestList');
     $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($settings, 't3BackendTestList');
     $configurationBuilder->buildFilterConfiguration();
 }