/** * 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_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 testGetMergedSettingsWithPrototype() { $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($this->settings, 'test'); $settings = $configurationBuilder->getMergedSettingsWithPrototype($this->settings['listConfig']['test']['pager'], 'pager.default'); $this->assertTrue(is_array($settings), 'The return value must be an array'); $this->assertEquals($this->settings['prototype']['pager']['default']['pagerProperty'], $settings['pagerProperty']); }