getParameter('node'); if ($node){ $variables['attributes']['class'][] = 'node-type-' . $node->bundle(); $variables['attributes']['class'][] = 'node-id-' . $node->id(); } } /** * Implements hook_preprocess_HOOK() for page.html.twig. */ function reha_preprocess_page(&$variables) { } /** * Implements hook_preprocess_HOOK() for node.html.twig. */ function reha_preprocess_node(&$variables) { $node = &$variables['node']; $variables['attributes']['class'][] = 'node-type-' . $node->gettype(); } /** * Prepares variables for block templates. * * Default template: block.html.twig. * * Prepares the values passed to the theme_block function to be passed * into a pluggable template engine. Uses block properties to generate a * series of template file suggestions. If none are found, the default * block.html.twig is used. * * Most themes use their own copy of block.html.twig. The default is located * inside "core/modules/block/templates/block.html.twig". Look in there for the * full list of available variables. * * @param array $variables * An associative array containing: * - elements: An associative array containing the properties of the element. * Properties used: #block, #configuration, #children, #plugin_id. */ //https://www.hashbangcode.com/article/drupal-9-programmatically-creating-and-using-urls-and-links function reha_preprocess_block(&$variables) { if ($variables['plugin_id'] === "user_login_block") { $url = new Url('user.register', [], ['query' => ['destination' => '/node/add/operation']]); $link = new Link('proposer une opération', $url); $variables['content']['reha'] = array( '#theme' => 'item_list', '#items' => [ 'operations' => [ "add_operation" => $link->toRenderable(), "description" => [ "#markup" => Markup::create("
Créer un compte pour charger une opération
") ] ] ] ); } if ($variables['plugin_id'] === "page_title_block") { if (\Drupal::routeMatch()->getRouteName() === 'node.add') { $node_type = \Drupal::routeMatch()->getParameter('node_type'); if ($node_type->id() === 'operation') { $variables['content'] = [ '#type' => 'page_title', '#title' => 'Proposer une opération' ]; } } } }