You are here

public function ViewExecutable::preExecute in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/ViewExecutable.php \Drupal\views\ViewExecutable::preExecute()

Runs attachments and lets the display do what it needs to before running.

Parameters

array $args: An array of arguments from the URL that can be used by the view.

2 calls to ViewExecutable::preExecute()
ViewExecutable::executeDisplay in core/modules/views/src/ViewExecutable.php
Executes the given display, with the given arguments.
ViewExecutable::preview in core/modules/views/src/ViewExecutable.php
Previews the given display, with the given arguments.

File

core/modules/views/src/ViewExecutable.php, line 1674

Class

ViewExecutable
Represents a view as a whole.

Namespace

Drupal\views

Code

public function preExecute($args = []) {
  $this->old_view[] = views_get_current_view();
  views_set_current_view($this);
  $display_id = $this->current_display;

  // Prepare the view with the information we have, but only if we were
  // passed arguments, as they may have been set previously.
  if ($args) {
    $this
      ->setArguments($args);
  }

  // Let modules modify the view just prior to executing it.
  \Drupal::moduleHandler()
    ->invokeAll('views_pre_view', [
    $this,
    $display_id,
    &$this->args,
  ]);

  // Allow hook_views_pre_view() to set the dom_id, then ensure it is set.
  $this->dom_id = !empty($this->dom_id) ? $this->dom_id : hash('sha256', $this->storage
    ->id() . REQUEST_TIME . mt_rand());

  // Allow the display handler to set up for execution
  $this->display_handler
    ->preExecute();
}