contextual_preprocess(&$variables, $hook, $info)
Implements hook_preprocess().
See also
contextual_pre_render_placeholder()
\Drupal\contextual\ContextualController::render()
File
- core/modules/contextual/contextual.module, line 108
- Adds contextual links to perform actions related to elements on a page.
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 28 29 30 31 32 33 | function contextual_preprocess(& $variables , $hook , $info ) { $variables [ '#cache' ][ 'contexts' ][] = 'user.permissions' ; if (!\Drupal::currentUser()->hasPermission( 'access contextual links' )) { return ; } // Determine the primary theme function argument. if (! empty ( $info [ 'variables' ])) { $keys = array_keys ( $info [ 'variables' ]); $key = $keys [0]; } elseif (! empty ( $info [ 'render element' ])) { $key = $info [ 'render element' ]; } if (! empty ( $key ) && isset( $variables [ $key ])) { $element = $variables [ $key ]; } if (isset( $element ) && is_array ( $element ) && ! empty ( $element [ '#contextual_links' ])) { // Mark this element as potentially having contextual links attached to it. $variables [ 'attributes' ][ 'class' ][] = 'contextual-region' ; // Renders a contextual links placeholder unconditionally, thus not breaking // the render cache. Although the empty placeholder is rendered for all // users, contextual_page_attachments() only adds the asset library for // users with the 'access contextual links' permission, thus preventing // unnecessary HTTP requests for users without that permission. $variables [ 'title_suffix' ][ 'contextual_links' ] = array ( '#type' => 'contextual_links_placeholder' , '#id' => _contextual_links_to_id( $element [ '#contextual_links' ]), ); } } |
Please login to continue.