protected Registry::completeSuggestion($hook, array &$cache)
Completes the definition of the requested suggestion hook.
Parameters
string $hook: The name of the suggestion hook to complete.
array $cache: The theme registry, as documented in \Drupal\Core\Theme\Registry::processExtension().
File
- core/lib/Drupal/Core/Theme/Registry.php, line 596
Class
- Registry
- Defines the theme registry service.
Namespace
Drupal\Core\Theme
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | protected function completeSuggestion( $hook , array & $cache ) { $previous_hook = $hook ; $incomplete_previous_hook = array (); while ((!isset( $cache [ $previous_hook ]) || isset( $cache [ $previous_hook ][ 'incomplete preprocess functions' ])) && $pos = strrpos ( $previous_hook , '__' )) { if (isset( $cache [ $previous_hook ]) && ! $incomplete_previous_hook && isset( $cache [ $previous_hook ][ 'incomplete preprocess functions' ])) { $incomplete_previous_hook = $cache [ $previous_hook ]; unset( $incomplete_previous_hook [ 'incomplete preprocess functions' ]); } $previous_hook = substr ( $previous_hook , 0, $pos ); // If base hook exists clone of it for the preprocess function // without a template. if (isset( $cache [ $previous_hook ]) && !isset( $cache [ $previous_hook ][ 'incomplete preprocess functions' ])) { $cache [ $hook ] = $incomplete_previous_hook + $cache [ $previous_hook ]; if (isset( $incomplete_previous_hook [ 'preprocess functions' ])) { $diff = array_diff ( $incomplete_previous_hook [ 'preprocess functions' ], $cache [ $previous_hook ][ 'preprocess functions' ]); $cache [ $hook ][ 'preprocess functions' ] = array_merge ( $cache [ $previous_hook ][ 'preprocess functions' ], $diff ); } // If a base hook isn't set, this is the actual base hook. if (!isset( $cache [ $previous_hook ][ 'base hook' ])) { $cache [ $hook ][ 'base hook' ] = $previous_hook ; } } } } |
Please login to continue.