/** * Adds a validator to the beginning of the chain * * If $breakChainOnFailure is true, then if the validator fails, the next validator in the chain, * if one exists, will not be executed. * * @param ValidatorInterface $validator * @param bool $breakChainOnFailure * @return ValidatorChain Provides a fluent interface */ public function prependValidator(ValidatorInterface $validator, $breakChainOnFailure = false) { $priority = self::DEFAULT_PRIORITY; if (!$this->validators->isEmpty()) { $queue = $this->validators->getIterator(); $queue->setExtractFlags(PriorityQueue::EXTR_PRIORITY); $extractedNode = $queue->extract(); $priority = $extractedNode[0] + 1; } $this->validators->insert(array('instance' => $validator, 'breakChainOnFailure' => (bool) $breakChainOnFailure), $priority); return $this; }
/** * Get a theme configuration file * @param string $theme * @return array | null */ public function getThemeConfig($theme) { $theme = $this->cleanThemeName($theme); $path_iterator = $this->themePaths->getIterator(); $config = null; $n = $path_iterator->count(); while (!$config && $n-- > 0) { $path = $path_iterator->extract(); if (file_exists($path . $theme . '/config.php')) { $config = (include $path . $theme . '/config.php'); } } return $config; }
/** * Get a theme configuration file * @param string $theme * @return array | null */ public function getThemeConfig($theme) { $theme = $this->cleanThemeName($theme); $path_iterator = $this->themePaths->getIterator(); $config = null; $n = $path_iterator->count(); while (!$config && $n-- > 0) { $path = $path_iterator->extract(); $appConfig = $this->serviceManager->get('Configuration'); if ($appConfig['ze_theme']['custom_theme_path'] === true) { $configFile = str_replace('{theme}', $theme, $path) . '/config.php'; } else { $configFile = $path . $theme . '/config.php'; } if (file_exists($configFile)) { $config = (include $configFile); } } return $config; }