function hook_views_pre_view

You are here

7 views.api.php hook_views_pre_view(&$view, &$display_id, &$args)
6 docs.php hook_views_pre_view(&$view, &$display_id, &$args)

Allows altering a view at the very beginning of views processing, before anything is done.

Adding output to the view can be accomplished by placing text on $view->attachment_before and $view->attachment_after.

Parameters

$view: The view object about to be processed.

$display_id: The machine name of the active display.

$args: An array of arguments passed into the view.

Related topics

1 invocation of hook_views_pre_view()
view::pre_execute in includes/view.inc
Run attachments and let the display do what it needs to do prior to running.

File

./views.api.php, line 903
Describe hooks provided by the Views module.

Code

function hook_views_pre_view(&$view, &$display_id, &$args) {
  // Change the display if the acting user has 'administer site configuration'
  // permission, to display something radically different.
  // (Note that this is not necessarily the best way to solve that task. Feel
  // free to contribute another example!)
  if ($view->name == 'my_special_view' && user_access('administer site configuration') && $display_id == 'public_display') {
    $display_id = 'private_display';
  }
}

Comments

$display_id actually isn't used after you change it in your hook. As you can see on http://api.drupal.org/api/views/includes%21view.inc/function/view%3A%3Ap... (where this hook is called) $display_id is created before calling this hook, but not used after.

This example won't work. What will work is call $view->set_display().

Can this function be used to convert any display type (block, page, etc.) into embed type? The reason to do that would be to using views_embed_view without losing the contextual links, for example...