/** * 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; }
/** * * @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; }
/** * 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 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; }
/** * 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'); }
/** * @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; }
/** * @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; }
public function testGetBookmarksSettings() { $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($this->settings, 'test'); $bookmarkSettings = $configurationBuilder->getSettingsForConfigObject('bookmarks'); $this->assertEquals($this->settings['listConfig']['test']['bookmarks'], $bookmarkSettings); }
/** * Returns a instance of the list configuration. * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_Configuration_List_ListConfig */ public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { return new Tx_PtExtlist_Domain_Configuration_List_ListConfig($configurationBuilder, $configurationBuilder->getSettingsForConfigObject('list')); }
/** * Returns a instance of the breadcrumbs configuration. * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_Configuration_BreadCrumbs_BreadCrumbsConfig */ public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { return new Tx_PtExtlist_Domain_Configuration_BreadCrumbs_BreadCrumbsConfig($configurationBuilder, $configurationBuilder->getSettingsForConfigObject('breadCrumbs')); }
/** * Returns a instance of a base configuration. * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_Configuration_Base_BaseConfig */ public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $baseSettings = $configurationBuilder->getSettingsForConfigObject('base'); $baseConfig = new Tx_PtExtlist_Domain_Configuration_Base_BaseConfig($configurationBuilder, $baseSettings); return $baseConfig; }
/** * Returns an instance of a field config collection for given field settings * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection */ public static function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $fieldsSettings = $configurationBuilder->getSettingsForConfigObject('fields'); $fieldConfigCollection = self::buildFieldConfigCollection($configurationBuilder, $fieldsSettings); return $fieldConfigCollection; }