format($node->created->value, 'custom', 'j F Y', null, 'fr'); } function erabletheme_preprocess_node__view__meetup(&$variables) { /** @var \Drupal\node\Entity $node */ $node = $variables['node']; $user_id = $node->get('uid')->getValue()[0]['target_id']; /** @var Drupal\user\Entity $user*/ $user = \Drupal\user\Entity\User::load($user_id); /** @var Drupal\profile\Entity $profile */ $profile = $user->get('candidat' . '_profiles')->entity; if ($profile) { $variables['profile'] = [ 'prenom' => $profile->get('field_prenom')->getValue()[0]['value'], 'nom' => $profile->get('field_nom')->getValue()[0]['value'] ]; } else { $variables['profile'] = [ 'prenom' => $user->getAccountName(), 'nom' => "", ]; } } /** * Implements hook_preprocess_HOOK() for node.html.twig. */ function erabletheme_preprocess_form(&$variables) { $t="t"; } function erabletheme_preprocess_region(&$variables) { $t="t"; } function erabletheme_preprocess_views_view(array &$variables) { if ($variables['view']->current_display === 'page_1') { $block_id = 'sitesmap_block'; $block = \Drupal::service('plugin.manager.block')->createInstance($block_id, []); if ($block) { $block_render_array = $block->build(); $variables['custom_sites_map'] = $block_render_array; } } } /* fonctionne mais meilleure méthode avec les suggestions page--xxx */ function erabletheme_theme_suggestions_views_view_alter(array &$suggestions, array $variables) { // il ne faut pas baser le template sur des contenus ! // if ($variables['title'] !== "") { // $view_title = $variables['title']['#markup']; // if (isset($view_title) && $view_title === 'Actualités') { // $suggestions[] = 'views_view__page_actus'; // } elseif (isset($view_title) && $view_title === 'Gouvernance') { // $suggestions[] = 'views_view__content_gouvernance'; // } elseif (isset($view_title) && $view_title === 'Partenaires') { // $suggestions[] = 'views_view__content_partenaires'; // } // elseif (isset($view) && $view === 'Meetup en ligne') { // $suggestions[] = 'views_view__content_meetup'; // } // } $view = $variables['view']; switch ($view->id()) { case 'actus': if ($view->getDisplay()->display['id'] !== 'block_1') { $suggestions[] = 'views_view__page_actus'; } break; case 'gourvernance': // attention faute de frappe dans l'id dans drupal $suggestions[] = 'views_view__content_gouvernance'; break; case 'partenaires': $suggestions[] = 'views_view__content_partenaires'; break; case 'meetup': $suggestions[] = 'views_view__content_meetup'; break; case 'projets': $suggestions[] = 'views_view__content_projets'; break; } } function erabletheme_theme_suggestions_node_alter(array &$suggestions, array $variables) { $is_actu = isset($variables['elements']['field_type_d_actualite']); if (!$is_actu && isset($variables['elements']['#title'])) { $total_title = $variables['elements']['#title']; $start_pos = strpos($total_title, '') + strlen(''); $end_pos = strpos($total_title, ''); $processed_title = substr($total_title, $start_pos, $end_pos - $start_pos); if ($processed_title !== 'Partenaires' || $processed_title !== 'Gouvernance') { $suggestions[] = 'node__content_global'; } } } function erabletheme_theme_suggestions_region_alter(array &$suggestions, array $variables) { if (isset($variables['elements']['erabletheme_contenudelapageprincipale'])) { // il ne faut pas baser le template sur des contenus ! // if ($variables['elements']['erabletheme_contenudelapageprincipale']['content']['#title'] == "Meet-up en ligne") { // $suggestions[] = 'region__offre_meetup'; // } else // if ($variables['elements']['erabletheme_contenudelapageprincipale']['content']['#title'] == "Foire aux Questions") { // $suggestions[] = 'region__faq'; // } // ça c'est mieux, se baser uniquement sur des infos structurelles (qui ne sont pas dynamiques) $routematch = \Drupal::routeMatch(); $routename = $routematch->getRouteName(); switch ($routename) { case 'faq.faq-page': $suggestions[] = 'region__faq'; break; case 'entity.node.canonical': /** @var \Drupal\node\Entity\Node $node */ $node = $routematch->getParameter('node'); if ($node->getType() === 'offre') { $suggestions[] = 'region__offre_meetup'; } break; } } }