You are here

public function ViewExecutable::buildThemeFunctions in Drupal 9

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

Provides a full array of possible theme functions to try for a given hook.

Parameters

string $hook: The hook to use. This is the base theme/template name.

Return value

array An array of theme hook suggestions.

File

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

Class

ViewExecutable
Represents a view as a whole.

Namespace

Drupal\views

Code

public function buildThemeFunctions($hook) {
  $themes = [];
  $display = isset($this->display_handler) ? $this->display_handler->display : NULL;
  $id = $this->storage
    ->id();
  if ($display) {
    $themes[] = $hook . '__' . $id . '__' . $display['id'];
    $themes[] = $hook . '__' . $display['id'];

    // Add theme suggestions for each single tag.
    foreach (Tags::explode($this->storage
      ->get('tag')) as $tag) {
      $themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '_', strtolower($tag));
    }
    if ($display['id'] != $display['display_plugin']) {
      $themes[] = $hook . '__' . $id . '__' . $display['display_plugin'];
      $themes[] = $hook . '__' . $display['display_plugin'];
    }
  }
  $themes[] = $hook . '__' . $id;
  $themes[] = $hook;
  return $themes;
}