You are here

function _viewreference_potential_references in View reference 6

Same name and namespace in other branches
  1. 6.2 viewreference.module \_viewreference_potential_references()

Fetch an array of all candidate referenced views, for use in presenting the selection form to the user.

4 calls to _viewreference_potential_references()
viewreference_allowed_values in ./viewreference.module
Implementation of hook_allowed_values().
viewreference_autocomplete in ./viewreference.module
Retrieve a pipe delimited string of autocomplete suggestions
viewreference_autocomplete_validate in ./viewreference.module
Validate an autocomplete element.
viewreference_field in ./viewreference.module
Implementation of hook_field().

File

./viewreference.module, line 601
Defines a field type for referencing a view from a node.

Code

function _viewreference_potential_references($field, $return_full_views = FALSE, $string = '', $exact_string = false) {

  // build the appropriate query
  $related_views = array();
  $args = array();
  if (is_array($field['referenceable_views'])) {
    foreach ($field['referenceable_views'] as $related_key => $related_view) {
      if ($related_view) {
        $related_views[] = "view_id = %d";
        $args[] = $related_view;
      }
    }
  }
  $related_clause = implode(' OR ', $related_views);
  if (!count($related_views)) {
    return array();
  }
  if (isset($string)) {
    $string_clause = $exact_string ? " AND title = '%s'" : " AND title LIKE '%%%s%'";
    $related_clause = " (" . $related_clause . ")" . $string_clause;
    $args[] = $string;
  }
  $result = db_query("SELECT view_id, position, name, title FROM {viewreference} WHERE " . $related_clause . " ORDER BY view_id", $args);
  $rows = array();
  while ($v = db_fetch_object($result)) {
    if ($return_full_views) {
      $rows[$v->view_id] = $v;
    }
    else {
      $rows[$v->view_id] = $v->title;
    }
  }
  return $rows;
}