예제 #1
0
 /**
  * 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']);
 }