block_theme_suggestions_block(array $variables)
Implements hook_theme_suggestions_HOOK().
File
- core/modules/block/block.module, line 167
- Controls the visual building blocks a page is constructed with.
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 | function block_theme_suggestions_block( array $variables ) { $suggestions = array (); $suggestions [] = 'block__' . $variables [ 'elements' ][ '#configuration' ][ 'provider' ]; // Hyphens (-) and underscores (_) play a special role in theme suggestions. // Theme suggestions should only contain underscores, because within // drupal_find_theme_templates(), underscores are converted to hyphens to // match template file names, and then converted back to underscores to match // pre-processing and other function names. So if your theme suggestion // contains a hyphen, it will end up as an underscore after this conversion, // and your function names won't be recognized. So, we need to convert // hyphens to underscores in block deltas for the theme suggestions. // We can safely explode on : because we know the Block plugin type manager // enforces that delimiter for all derivatives. $parts = explode ( ':' , $variables [ 'elements' ][ '#plugin_id' ]); $suggestion = 'block' ; while ( $part = array_shift ( $parts )) { $suggestions [] = $suggestion .= '__' . strtr ( $part , '-' , '_' ); } if (! empty ( $variables [ 'elements' ][ '#id' ])) { $suggestions [] = 'block__' . $variables [ 'elements' ][ '#id' ]; } return $suggestions ; } |
Please login to continue.