Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Aperçu du système de menus

Référence en anglais sur drupal.org : 3 Janvier 2009 - 21h59
http://drupal.org/node/109131


Dans la fonction hook_menu(), vous déclarez un tableau associatif menu. les clés sont les paths Drupal (avec une variante, voir ici) et les valeurs sont les éléments du menu. Un élément de menu est son tour un tableau associatif. Un élément classique est :

<?php
  $items
['node/%node'] = array(
    
'title' => 'View',
    
'page callback' => 'node_page_view',
    
'page arguments' => array(1),
    
'access callback' => 'node_access',
    
'access arguments' => array('view'1),
    
'type' => MENU_CALLBACK,
  );
?>

Le constructeur de menu collecte tout ça, applique les règles d'héritage et sauvegarde chaque élément dans les tables de menu.

Quand vous ouvrez une page, le système générera les ancêtres (traduction à venir) du path de la page et interrogera la base de données pour connaître l'élément de menu de l'ancêtre qui correspond le mieux à ce path. Ensuite il appelle l'access callback pour déterminer l'accès. S'il l'obtient, il passe la main au callback de la page.

Le système détermine qu'il n'a pas trouvé le path si aucun élément n'est récupéré dans la base de données ou si le node ne peut être chargé (voir remplacements dynamique d'arguments. L'accès refusé est seulement déterminé par les arguments de l'accès ou de callback.

Si une sortie doit être affichée pour une URL donnée, la fonction callback doit retourner une valeur non NULL. Si la fonction ne retourne pas de valeur ou retourne la valeur NULL, Drupal ne mettra en forme que le contenu créé par drupal_page_footer (qui est le contenu créé par l'implémentation de hook_exit de tous les modules).