Files
d9-eql/web/themes/custom/eql/eql.theme
T
2024-10-15 11:37:38 +02:00

97 lines
4.0 KiB
PHP

<?php
/*
* @files
* Theme Template Funtions
*/
// use Drupal\Core\Template\Attribute;
// use Drupal\Core\Link;
// use Drupal\Core\Url;
use Drupal\Component\Utility\Html;
function eql_preprocess_html(&$variables) {
$node = \Drupal::routeMatch()->getParameter('node');
if ($node){
$variables['attributes']['class'][] = 'node-type-' . $node->bundle();
$variables['attributes']['class'][] = 'node-id-' . $node->id();
}
}
function eql_preprocess_node(&$variables){
$node = &$variables['node'];
$variables['attributes']['class'][] = 'node-type-' . $node->gettype();
if($node->gettype() == "actualite") {
$actu_type = $node->get('field_actu_type')->getString();
$variables['attributes']['class'][] = 'actu-type-' . $actu_type;
}
if($node->gettype() == "offre_de_service") {
$type_protagoniste = $node->get('field_type_de_protagoniste')->getString();
$variables['attributes']['class'][] = 'type-de-protagoniste-' . $type_protagoniste;
}
// Vérifie si le champ field_type_de_ressource existe et ajoute une classe basée sur sa valeur
if ($node->hasField('field_type_de_ressource') && !$node->get('field_type_de_ressource')->isEmpty()) {
// Récupère la valeur de field_type_de_ressource
$type_de_ressource_entity = $node->get('field_type_de_ressource')->entity;
if ($type_de_ressource_entity) {
$type_de_ressource_name = $type_de_ressource_entity->getName();
// Ajoute la classe CSS basée sur la valeur du type de ressource
$variables['attributes']['class'][] = 'type-de-ressource-' . Html::cleanCssIdentifier($type_de_ressource_name);
}
}
}
function eql_preprocess_field(&$variables) {
$node = \Drupal::routeMatch()->getParameter('node');
$field_name = &$variables['field_name'];
if($node) {
if ($field_name == 'field_type_de_protagoniste'){
$type_protagoniste = $node->get('field_type_de_protagoniste')->getString();
$variables['attributes']['class'][] = 'type-de-protagoniste-' . $type_protagoniste;
}
}
$field_name = &$variables['field_name'];
if($node) {
if ($field_name == 'field-type-de-ressource'){
$type_ressource = $node->get('field-type-de-ressource')->getString();
$variables['attributes']['class'][] = 'type-de-ressource-' . $type_ressource;
}
}
}
////////////
function eql_preprocess_layout__threecol_25_50_25(&$variables) {
$node = \Drupal::routeMatch()->getParameter('node');
if($node->gettype() == "projet"){
$variables['content']['top_bottom'] = []; /////// déclare les nvx array
$variables['content']['top_right'] = [];
$variables['content']['top_left'] = [];
$variables['content']['top_bottom_left'] = [];
foreach ($variables['content']['top'] as $key => $value) {
if(isset($value['#base_plugin_id']) && $value['#base_plugin_id']== 'entity_field'){ ////// isset pour voir si existe && si oui fait ce que tu as à faire. $Value c'est l'attribut
if($value['#derivative_plugin_id']=="node:field_region" || $value['#derivative_plugin_id']=="node:field_adresse") {
$variables['content']['top_bottom_left'][] = $variables['content']['top'][$key];
unset($variables["content"]["top"][$key]);
}
if($value['#derivative_plugin_id']=="node:field_type_de_moa" || $value['#derivative_plugin_id']=="node:field_type_de_projet" || $value['#derivative_plugin_id']=="node:field_etape_du_projet") {
$variables['content']['top_bottom'][] = $variables['content']['top'][$key];
unset($variables["content"]["top"][$key]);
}
if($value['#derivative_plugin_id']=="node:title" || $value['#derivative_plugin_id']=="node:field_equipe" || $value['#derivative_plugin_id']=="node:field_incube"){
$variables['content']['top_right'][] = $variables['content']['top'][$key];
unset($variables["content"]["top"][$key]);
}
if($value['#derivative_plugin_id']=="node:field_photo"){
$variables['content']['top_left'][] = $variables['content']['top'][$key];
unset($variables["content"]["top"][$key]);
}
}
}
}
}