/** * Load option config as a feature option if syntax of name matches pattern * or if the "feature" directive is set. * * @param string $name * @param array $config * @return boolean */ public function load_feature_option($name, $config) { // feature explicitly set? if (isset($config['feature'])) { // format option name $option_name = ICE_Registry::format_suboption($config['feature'], $name); // make sure feature is registered if ($this->policy()->features()->registry()->has($config['feature'])) { // set feature option $config['feature_option'] = $name; // set required feature $config['required_feature'] = $config['feature']; // clean up parent if (isset($config['parent'])) { $config['parent'] = $this->normalize_name($config['parent']); } // call parent config loader if ($this->load_config_map($option_name, $config)) { // successfully loaded feature sub option return true; } else { // this is really bad throw new Exception(sprintf('Failed to load "%s" as an option for feature "%s"', $option_name, $config['feature'])); } } } // not a feature option return false; }
/** * Format a suboption name using the glue character defined in the registry * * @param string $name * @return string */ public function format_suboption($name) { // call registry suboption format helper return ICE_Registry::format_suboption($this->name, $name); }