public function Registry::getBaseHook

public Registry::getBaseHook($hook)

Returns the base hook for a given hook suggestion.

Parameters

string $hook: The name of a theme hook whose base hook to find.

Return value

string|false The name of the base hook or FALSE.

File

core/lib/Drupal/Core/Theme/Registry.php, line 263

Class

Registry
Defines the theme registry service.

Namespace

Drupal\Core\Theme

Code

public function getBaseHook($hook) {
  $this->init($this->themeName);
  $base_hook = $hook;
  // Iteratively strip everything after the last '__' delimiter, until a
  // base hook definition is found. Recursive base hooks of base hooks are
  // not supported, so the base hook must be an original implementation that
  // points to a theme function or template.
  while ($pos = strrpos($base_hook, '__')) {
    $base_hook = substr($base_hook, 0, $pos);
    if (isset($this->registry[$base_hook]['exists'])) {
      break;
    }
  }
  if ($pos !== FALSE && $base_hook !== $hook) {
    return $base_hook;
  }
  return FALSE;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Theme!Registry.php/function/Registry::getBaseHook/8.1.x