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.


$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/
Run attachments and let the display do what it needs to do prior to running.


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


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';


$display_id actually isn't used after you change it in your hook. As you can see on (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...