You are here

function efq_views_handler_filter_entity_bundle::get_value_options in EntityFieldQuery Views Backend 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

File

handlers/efq_views_handler_filter_entity_bundle.inc, line 7

Class

efq_views_handler_filter_entity_bundle
Filter based on entity bundle.

Code

function get_value_options() {
  if (!isset($this->value_options)) {
    $bundles = field_info_bundles($this->definition['entity_type']);
    $this->value_title = t('Bundle');

    // EFQ: Mixed, display bundles for all entity types
    if (!isset($this->definition['entity_type'])) {
      foreach ($bundles as $entity_type => $entity_bundles) {
        foreach ($entity_bundles as $bundle => $info) {
          $label = isset($info['label']) ? $info['label'] : $bundle;
          $options[$bundle] = $label;
        }
      }
    }
    else {

      // Display bundles for the selected entity type only.
      foreach ($bundles as $bundle => $info) {
        $label = isset($info['label']) ? $info['label'] : $bundle;
        $options[$bundle] = $label;
      }
    }
    $this->value_options = $options;
  }
}