You are here

function viewreference_get_list_of_views in View reference 6.2

Same name and namespace in other branches
  1. 6 viewreference.module \viewreference_get_list_of_views()

Builds a table of view references, and returns data as an array

2 calls to viewreference_get_list_of_views()
viewreference_field_settings in ./viewreference.module
Implementation of hook_field_settings().
_viewreference_potential_references in ./viewreference.module
Fetch an array of all candidate referenced views, for use in presenting the selection form to the user.

File

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

Code

function viewreference_get_list_of_views() {
  $views = array();
  $loaded_views = views_get_all_views();
  foreach ((array) $loaded_views as $view_name => $view) {
    foreach ((array) $view->display as $display_key => $display_data) {

      // views guy reckons not to use default
      if ($display_key != 'default') {

        // Figure out what the view_id is by doing some queries
        $view_id = db_result(db_query("SELECT view_id FROM {viewreference} WHERE name = '%s' AND position = '%s' ", $view_name, $display_key));
        if (!$view_id) {
          $view_id = db_result(db_query("SELECT MAX(view_id) FROM {viewreference}")) + 1;
        }
        if ($view_id) {

          // Update database (delete [if possible] then insert)
          db_query("DELETE FROM {viewreference} WHERE view_id = %d", $view_id);
          $title = ucfirst($view_name) . ' ' . $display_data->display_title;
          db_query("INSERT INTO {viewreference} (view_id, name, position, title) VALUES (%d, '%s', '%s', '%s')", $view_id, $view_name, $display_key, $title);

          // Build return array
          $views[$view_id] = $title;
        }
      }
    }
  }
  return $views;
}