You are here

function _get_view_results_for_term_reference_field in Taxonomy Term Reference Filter by Views 7.2

Get the TermsImplements hook_views_plugins_alter().

1 call to _get_view_results_for_term_reference_field()
_get_referencable_terms_from_view in ./term_reference_filter_by_views.module
Get the TermsImplements hook_views_plugins_alter().

File

./term_reference_filter_by_views.module, line 292

Code

function _get_view_results_for_term_reference_field($field, $instance, $match = NULL, $limit = 0, $ids = NULL) {
  $display_name = $instance['view']['display_name'];
  $args = $instance['view']['args'];
  $result = array();
  $view_name = $instance['view']['view_name'];
  $display_name = $instance['view']['display_name'];
  $args = $instance['view']['args'];
  $entity_type = 'taxonomy_term';

  // Check that the view is valid and the display still exists.
  $view = views_get_view($view_name);
  if (!$view || !isset($view->display[$display_name]) || !$view
    ->access($display_name)) {
    watchdog('term_reference_filter_by_views', 'The view %view_name is no longer eligible for the %field_name field.', array(
      '%view_name' => $view_name,
      '%field_name' => $instance['label'],
    ), WATCHDOG_WARNING);
    return $result;
  }
  $view
    ->set_display($display_name);

  // Make sure the query is not cached.
  $view->is_cacheable = FALSE;

  // Pass options to the display handler to make them available later.
  $term_reference_options = array(
    'match' => $match,
    'match_operator' => isset($instance['view']['match_operator']) ? $instance['view']['match_operator'] : 'CONTAINS',
    'limit' => $limit,
    'ids' => $ids,
  );
  $view->display_handler
    ->set_option('term_reference_options', $term_reference_options);

  // Get the results.
  $result = $view
    ->execute_display($display_name, $args);
  return $result;
}