You are here

function viewreference_get_list_of_views in View reference 6

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

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

1 call to viewreference_get_list_of_views()
viewreference_field_settings in ./viewreference.module
Implementation of hook_field_settings().

File

./viewreference.module, line 705
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;
        }

        // 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;
}