function ViewExecutable::buildThemeFunctions

Same name and namespace in other branches
  1. 9 core/modules/views/src/ViewExecutable.php \Drupal\views\ViewExecutable::buildThemeFunctions()
  2. 8.9.x core/modules/views/src/ViewExecutable.php \Drupal\views\ViewExecutable::buildThemeFunctions()
  3. 11.x 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 2436

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

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.