Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }