You are here

function hook_views_default_views in Views (for Drupal 7) 6.3

Same name and namespace in other branches
  1. 6.2 docs/docs.php \hook_views_default_views()
  2. 7.3 views.api.php \hook_views_default_views()

This hook allows modules to provide their own views which can either be used as-is or as a "starter" for users to build from.

The hook should be placed in MODULENAME.views_default.inc and it will be auto-loaded. This must either be in the same directory as the .module file or in a subdirectory named 'includes'.

This hook requires an array of views, where each array has key/value pair and must have $value == $view->name, it is invalid if the keys not match.

The $view->disabled boolean flag indicates whether the View should be enabled or disabled by default.

Return value

An associative array containing the structures of views, as generated from the Export tab, keyed by the view name. A best practice is to go through and add t() to all title and label strings, with the exception of menu strings.

Related topics

5 functions implement hook_views_default_views()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

comment_views_default_views in modules/comment.views_default.inc
Implementation of hook_views_default_views().
node_views_default_views in modules/node.views_default.inc
Implementation of hook_views_default_views().
search_views_default_views in modules/search.views_default.inc
Implementation of hook_views_default_views().
statistics_views_default_views in modules/statistics.views_default.inc
Implementation of hook_views_default_views().
taxonomy_views_default_views in modules/taxonomy.views_default.inc
Implementation of hook_views_default_views().
1 invocation of hook_views_default_views()
_views_discover_default_views in includes/cache.inc
Scan all modules for default views and rebuild the default views cache.

File

docs/docs.php, line 315
This file contains no working PHP code; it exists to provide additional documentation for doxygen as well as to document hooks in the standard Drupal manner.

Code

function hook_views_default_views() {

  // Begin copy and paste of output from the Export tab of a view.
  $view = new view();
  $view->name = 'frontpage';
  $view->description = t('Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page.');
  $view->tag = t('default');
  $view->base_table = 'node';
  $view->api_version = 2;
  $view->disabled = FALSE;

  // Edit this to true to make a default view disabled initially
  $view->display = array();
  $display = new views_display();
  $display->id = 'default';
  $display->display_title = t('Defaults');
  $display->display_plugin = 'default';
  $display->position = '1';
  $display->display_options = array(
    'style_plugin' => 'default',
    'style_options' => array(),
    'row_plugin' => 'node',
    'row_options' => array(
      'teaser' => 1,
      'links' => 1,
    ),
    'relationships' => array(),
    'fields' => array(),
    'sorts' => array(
      'sticky' => array(
        'id' => 'sticky',
        'table' => 'node',
        'field' => 'sticky',
        'order' => 'ASC',
      ),
      'created' => array(
        'id' => 'created',
        'table' => 'node',
        'field' => 'created',
        'order' => 'ASC',
        'relationship' => 'none',
        'granularity' => 'second',
      ),
    ),
    'arguments' => array(),
    'filters' => array(
      'promote' => array(
        'id' => 'promote',
        'table' => 'node',
        'field' => 'promote',
        'operator' => '=',
        'value' => '1',
        'group' => 0,
        'exposed' => false,
        'expose' => array(
          'operator' => false,
          'label' => '',
        ),
      ),
      'status' => array(
        'id' => 'status',
        'table' => 'node',
        'field' => 'status',
        'operator' => '=',
        'value' => '1',
        'group' => 0,
        'exposed' => false,
        'expose' => array(
          'operator' => false,
          'label' => '',
        ),
      ),
    ),
    'items_per_page' => 10,
    'use_pager' => '1',
    'pager_element' => 0,
    'title' => '',
    'header' => '',
    'header_format' => '1',
    'footer' => '',
    'footer_format' => '1',
    'empty' => '',
    'empty_format' => '1',
  );
  $view->display['default'] = $display;
  $display = new views_display();
  $display->id = 'page';
  $display->display_title = t('Page');
  $display->display_plugin = 'page';
  $display->position = '2';
  $display->display_options = array(
    'defaults' => array(
      'access' => true,
      'title' => true,
      'header' => true,
      'header_format' => true,
      'header_empty' => true,
      'footer' => true,
      'footer_format' => true,
      'footer_empty' => true,
      'empty' => true,
      'empty_format' => true,
      'items_per_page' => true,
      'offset' => true,
      'use_pager' => true,
      'pager_element' => true,
      'link_display' => true,
      'php_arg_code' => true,
      'exposed_options' => true,
      'style_plugin' => true,
      'style_options' => true,
      'row_plugin' => true,
      'row_options' => true,
      'relationships' => true,
      'fields' => true,
      'sorts' => true,
      'arguments' => true,
      'filters' => true,
      'use_ajax' => true,
      'distinct' => true,
    ),
    'relationships' => array(),
    'fields' => array(),
    'sorts' => array(),
    'arguments' => array(),
    'filters' => array(),
    'path' => 'frontpage',
  );
  $view->display['page'] = $display;
  $display = new views_display();
  $display->id = 'feed';
  $display->display_title = t('Feed');
  $display->display_plugin = 'feed';
  $display->position = '3';
  $display->display_options = array(
    'defaults' => array(
      'access' => true,
      'title' => false,
      'header' => true,
      'header_format' => true,
      'header_empty' => true,
      'footer' => true,
      'footer_format' => true,
      'footer_empty' => true,
      'empty' => true,
      'empty_format' => true,
      'use_ajax' => true,
      'items_per_page' => true,
      'offset' => true,
      'use_pager' => true,
      'pager_element' => true,
      'use_more' => true,
      'distinct' => true,
      'link_display' => true,
      'php_arg_code' => true,
      'exposed_options' => true,
      'style_plugin' => false,
      'style_options' => false,
      'row_plugin' => false,
      'row_options' => false,
      'relationships' => true,
      'fields' => true,
      'sorts' => true,
      'arguments' => true,
      'filters' => true,
    ),
    'relationships' => array(),
    'fields' => array(),
    'sorts' => array(),
    'arguments' => array(),
    'filters' => array(),
    'displays' => array(
      'default' => 'default',
      'page' => 'page',
    ),
    'style_plugin' => 'rss',
    'style_options' => array(
      'mission_description' => 1,
      'description' => '',
    ),
    'row_plugin' => 'node_rss',
    'row_options' => array(
      'item_length' => 'default',
    ),
    'path' => 'rss.xml',
    'title' => t('Front page feed'),
  );
  $view->display['feed'] = $display;

  // End copy and paste of Export tab output.
  // Add view to list of views to provide.
  $views[$view->name] = $view;

  // ...Repeat all of the above for each view the module should provide.
  // At the end, return array of default views.
  return $views;
}