/** * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @param $filterboxIdentifier * @param array $filterBoxSettings * @return Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig */ public static function createInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $filterboxIdentifier, array $filterBoxSettings) { $filterboxConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig($configurationBuilder, $filterboxIdentifier, $filterBoxSettings); $filterSettingsArray = is_array($filterBoxSettings['filterConfigs']) ? $filterBoxSettings['filterConfigs'] : array(); ksort($filterSettingsArray); foreach ($filterSettingsArray as $arrayIndex => $filterSettings) { Tx_PtExtbase_Assertions_Assert::isArray($filterSettings, array('message' => 'No array given for filter settings. Perhaps misconfiguration of TS for filterbox? 1280772788')); $filterConfig = Tx_PtExtlist_Domain_Configuration_Filters_FilterConfigFactory::createInstance($configurationBuilder, $filterboxIdentifier, $filterSettings); $filterboxConfiguration->addFilterConfig($filterConfig, $arrayIndex); } return $filterboxConfiguration; }
/** * Check and set the prototype settings * @param array $settings */ protected function setPrototypeSettings($settings) { Tx_PtExtbase_Assertions_Assert::isArray($settings['prototype'], array('message' => 'The basic settings are not available. Maybe the static typoscript template for pt_extlist is not included on this page. 1281175089')); $this->prototypeSettings = $settings['prototype']; }
/** * Init the dataProvider by TS-conifg * * @param array $filterSettings */ protected function initDataProviderByTsConfig($filterSettings) { $this->tsOptions = $this->filterConfig->getSettings('options'); Tx_PtExtbase_Assertions_Assert::isArray($this->tsOptions, array('message' => 'Options configured by TS has to be an array, ' . gettype($this->tsOptions) . ' given! 1284142006')); }
/** * Overwrites the conf array with parameters from the flexform with the same keys * * @param mixed plugin object, e.g. "tslib_pibase" or any other object (needs a "tslib_cObj" at ->cObj, an array at ->conf and callable methods "pi_getFFvalue()" and "pi_initPIflexForm()") * @param bool (optional) if true the method won't throw an exception if no flexform data is found, default: false * @return void * @throws \PunktDe\PtExtbase\Exception\Exception if no flexform data was found */ public static function mergeConfAndFlexform($pObj, $noExceptionIfNoFlexform = false) { Tx_PtExtbase_Assertions_Assert::isObject($pObj, array('message' => '"$pObj" is no object.')); Tx_PtExtbase_Assertions_Assert::isInstanceOf($pObj->cObj, 'tslib_cObj', array('message' => '"$pObj->cObj" is no instance of "tslib_cObj".')); Tx_PtExtbase_Assertions_Assert::isArray($pObj->conf, array('message' => '"$pObj->conf" is no array.')); if (!is_callable(array($pObj, 'pi_initPIflexForm'))) { throw new \PunktDe\PtExtbase\Exception\Exception('"$pObj needs a callable method "pi_initPIflexForm()"'); } if (!is_callable(array($pObj, 'pi_getFFvalue'))) { throw new \PunktDe\PtExtbase\Exception\Exception('"$pObj needs a callable method "pi_getFFvalue()"'); } $pObj->pi_initPIflexForm(); $piFlexForm = $pObj->cObj->data['pi_flexform']; if (is_array($piFlexForm['data'])) { foreach ($piFlexForm['data'] as $sheet => $data) { foreach ($data as $lang => $value) { foreach ($value as $key => $val) { $ff_value = trim($pObj->pi_getFFvalue($piFlexForm, $key, $sheet)); if ($ff_value != '') { // do not overwrite conf settings with '' $pObj->conf[$key] = $ff_value; unset($pObj->conf[$key . '.']); // unset stdWrap settings if available } } } } } elseif (!$noExceptionIfNoFlexform) { throw new \PunktDe\PtExtbase\Exception\Exception('No plugin configuration found!', 0, 'No flexform data found. Please update your plugin configuration!'); } }
/** * Returns a renderer configuration for given renderer settings * * @param array $rendererSettings * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_Configuration_Renderer_RendererConfig */ public static function getRendererConfiguration(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $rendererSettings) { Tx_PtExtbase_Assertions_Assert::isArray($rendererSettings, array(message => 'No renderer settings found. 1281087488')); $config = new Tx_PtExtlist_Domain_Configuration_Renderer_RendererConfig($configurationBuilder, $rendererSettings); return $config; }