You are here

function menu_references_filter_handler::get_value_options in Menu Reference 7

Child classes should be used to override this function and set the 'value options', unless 'options callback' is defined as a valid function or static public method to generate these values.

This can use a guard to be used to reduce database hits as much as possible.

Return value

Return the stored values in $this->value_options if someone expects it.

Overrides views_handler_filter_in_operator::get_value_options

2 calls to menu_references_filter_handler::get_value_options()
menu_references_filter_handler::admin_summary in views/handlers/menu_references_filter_handler.inc
Display the filter on the administrative summary.
menu_references_filter_handler::value_form in views/handlers/menu_references_filter_handler.inc
Options form subform for setting options.

File

views/handlers/menu_references_filter_handler.inc, line 35
Views filter handler

Class

menu_references_filter_handler
@file Views filter handler

Code

function get_value_options() {
  if (isset($this->value_options)) {
    return;
  }
  if (isset($this->definition['options callback']) && is_callable($this->definition['options callback'])) {
    if (isset($this->definition['options arguments']) && is_array($this->definition['options arguments'])) {
      $this->value_options = call_user_func_array($this->definition['options callback'], $this->definition['options arguments']);
    }
    else {
      $this->value_options = call_user_func($this->definition['options callback']);
    }
  }
  else {
    $menu_list = menu_get_menus(TRUE);

    // Get the allowed menues from the field settings.
    $field_settings = field_info_field($this->definition['field_name']);
    $allowed_menus = array_filter($field_settings['settings']['allowed_menus']);
    $options = array();
    foreach ($allowed_menus as $menu) {
      $options[$menu_list[$menu]] = menu_reference_get_menu_hierarchy($menu);
    }
    $this->value_options = $options;
  }
  return $this->value_options;
}