You are here

public function views_plugin_display_page::execute in Views (for Drupal 7) 7.3

Same name and namespace in other branches
  1. 6.3 plugins/views_plugin_display_page.inc \views_plugin_display_page::execute()
  2. 6.2 plugins/views_plugin_display_page.inc \views_plugin_display_page::execute()

The display page handler returns a normal view, but it also does a drupal_set_title for the page, and does a views_set_page_view on the view.

Overrides views_plugin_display::execute

1 method overrides views_plugin_display_page::execute()
views_plugin_display_feed::execute in plugins/views_plugin_display_feed.inc
Feeds do not go through the normal page theming mechanism. Instead, they go through their own little theme function and then return NULL so that Drupal believes that the page has already rendered itself...which it has.

File

plugins/views_plugin_display_page.inc, line 235
Definition of views_plugin_display_page.

Class

views_plugin_display_page
The plugin that handles a full page.

Code

public function execute() {

  // Let the world know that this is the page view we're using.
  views_set_page_view($this->view);

  // Prior to this being called, the $view should already be set to this
  // display, and arguments should be set on the view.
  $this->view
    ->build();
  if (!empty($this->view->build_info['fail'])) {
    return MENU_NOT_FOUND;
  }
  if (!empty($this->view->build_info['denied'])) {
    return MENU_ACCESS_DENIED;
  }
  $this->view
    ->get_breadcrumb(TRUE);

  // And now render the view.
  $render = $this->view
    ->render();

  // First execute the view so it's possible to get tokens for the title.
  // And the title, which is much easier.
  $title = $this->view
    ->get_title();

  // Support the core method of using '<none>' to indicate nothing should be
  // assigned to the title, so only process the title value if it is not that
  // value.
  if ($title != '<none>') {
    drupal_set_title(filter_xss_admin($title), PASS_THROUGH);
  }
  return $render;
}