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(); if ($variables['node']->getType() == 'site') { $fields_to_exclude = [ 'field_image', // Remplacez par le nom machine exact de votre champ image ]; $filtered_content = []; $image_field_content = ''; foreach ($variables['content'] as $field_name => $field_content) { if (!in_array($field_name, $fields_to_exclude)) { $filtered_content[$field_name] = $field_content; } else { $image_field_content = $field_content; } } $variables['filtered_content'] = $filtered_content; $variables['image_field_content'] = $image_field_content; } } // /** // * Implements hook_preprocess_HOOK() for node templates. // */ // function reha_preprocess_node(&$variables) { // if ($variables['node']->getType() == 'site') { // $fields_to_exclude = [ // 'field--type-image', // Remplacez par le nom machine exact de votre champ image // ]; // $filtered_content = []; // $image_field_content = ''; // foreach ($variables['content'] as $field_name => $field_content) { // if (!in_array($field_name, $fields_to_exclude)) { // $filtered_content[$field_name] = $field_content; // } else { // $image_field_content = $field_content; // } // } // $variables['filtered_content'] = $filtered_content; // $variables['image_field_content'] = $image_field_content; // } // } /** * 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' ]; } } } // if ($variables['plugin_id'] == 'actus-block-1') { // $fields_to_exclude = [ // 'field_image', // Remplacez par le nom machine exact du champ que vous souhaitez exclure // ]; // $filtered_content = []; // $excluded_field_content = ''; // foreach ($variables['content'] as $field_name => $field_content) { // if (!in_array($field_name, $fields_to_exclude)) { // $filtered_content[$field_name] = $field_content; // } else { // $excluded_field_content = $field_content; // } // } // $variables['filtered_content'] = $filtered_content; // $variables['excluded_field_content'] = $excluded_field_content; // } }