template_preprocess_node(&$variables)
Prepares variables for node templates.
Default template: node.html.twig.
Most themes use their own copy of node.html.twig. The default is located inside "/core/modules/node/templates/node.html.twig". Look in there for the full list of variables.
Parameters
array $variables: An associative array containing:
- elements: An array of elements to display in view mode.
- node: The node object.
- view_mode: View mode; e.g., 'full', 'teaser', etc.
File
- core/modules/node/node.module, line 571
- The core module that allows content to be submitted to the site.
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 34 35 36 37 38 39 40 41 42 43 44 45 | function template_preprocess_node(& $variables ) { $variables [ 'view_mode' ] = $variables [ 'elements' ][ '#view_mode' ]; // Provide a distinct $teaser boolean. $variables [ 'teaser' ] = $variables [ 'view_mode' ] == 'teaser' ; $variables [ 'node' ] = $variables [ 'elements' ][ '#node' ]; /** @var \Drupal\node\NodeInterface $node */ $node = $variables [ 'node' ]; $variables [ 'date' ] = drupal_render( $variables [ 'elements' ][ 'created' ]); unset( $variables [ 'elements' ][ 'created' ]); $variables [ 'author_name' ] = drupal_render( $variables [ 'elements' ][ 'uid' ]); unset( $variables [ 'elements' ][ 'uid' ]); $variables [ 'url' ] = $node ->url( 'canonical' , array ( 'language' => $node ->language(), )); $variables [ 'label' ] = $variables [ 'elements' ][ 'title' ]; unset( $variables [ 'elements' ][ 'title' ]); // The 'page' variable is set to TRUE in two occasions: // - The view mode is 'full' and we are on the 'node.view' route. // - The node is in preview and view mode is either 'full' or 'default'. $variables [ 'page' ] = ( $variables [ 'view_mode' ] == 'full' && (node_is_page( $node )) || (isset( $node ->in_preview) && in_array( $node ->preview_view_mode, array ( 'full' , 'default' )))); // Helpful $content variable for templates. $variables += array ( 'content' => array ()); foreach (Element::children( $variables [ 'elements' ]) as $key ) { $variables [ 'content' ][ $key ] = $variables [ 'elements' ][ $key ]; } // Display post information only on certain node types. $node_type = $node ->type->entity; // Used by RDF to add attributes around the author and date submitted. $variables [ 'author_attributes' ] = new Attribute(); $variables [ 'display_submitted' ] = $node_type ->displaySubmitted(); if ( $variables [ 'display_submitted' ]) { if (theme_get_setting( 'features.node_user_picture' )) { // To change user picture settings (e.g. image style), edit the 'compact' // view mode on the User entity. Note that the 'compact' view mode might // not be configured, so remember to always check the theme setting first. $variables [ 'author_picture' ] = user_view( $node ->getOwner(), 'compact' ); } } // Add article ARIA role. $variables [ 'attributes' ][ 'role' ] = 'article' ; } |
Please login to continue.