function _viewreference_potential_references in View reference 6.2
Same name and namespace in other branches
- 6 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 636 - 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'])) {
$view_list = $field['referenceable_views'];
if (!count(array_filter($view_list))) {
$view_list = array_keys(viewreference_get_list_of_views());
}
foreach ($view_list 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;
}