function views_object::unpack_options

3.x base.inc views_object::unpack_options(&$storage, $options, $definition = NULL, $all = TRUE, $check = TRUE, $localization_keys = array())
2.x base.inc views_object::unpack_options(&$storage, $options, $definition = NULL, $check = TRUE)

Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.

4 calls to views_object::unpack_options()
views_handler::init in includes/handlers.inc
init the handler with necessary data.
views_plugin_display::init in plugins/views_plugin_display.inc
Init will be called after construct, when the plugin is attached to a view and a display.
views_plugin_row::init in plugins/views_plugin_row.inc
Initialize the row plugin.
views_plugin_style::init in plugins/views_plugin_style.inc
Initialize a style plugin.

File

includes/base.inc, line 78
Provides the basic object definitions used by plugins and handlers.

Class

views_object
Basic definition for many views objects

Code

function unpack_options(&$storage, $options, $definition = NULL, $check = TRUE) {
  if ($check && !is_array($options)) {
    return;
  }

  if (!isset($definition)) {
    $definition = $this->option_definition();
  }

  foreach ($options as $key => $value) {
    if (is_array($value)) {
      if (!isset($storage[$key]) || !is_array($storage[$key])) {
        $storage[$key] = array();
      }

      $this->unpack_options($storage[$key], $value, isset($definition[$key]['contains']) ? $definition[$key]['contains'] : array(), FALSE);
    }
    else if (!empty($definition[$key]['translatable']) && !empty($value)) {
      $storage[$key] = t($value);
    }
    else {
      $storage[$key] = $value;
    }
  }
}