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

Pages multiples sur le même chemin dynamique (type nodes)

Référence en anglais sur drupal.org : 16 Juillet 2008 - 04h37


Si vous voulez lancer plusieurs accès ou page callbacksnode/123 ou node/123/foo dépendant du type de node, vous serez confronté au fait que le système de menu peut seulement détenir une entrée pour node/%/foo. Disons que nous voulons enregistrer un chemin qui répond aux types article et story. Nous enregistrerons node/%mymodule_article_story

<?php
function mymodule_article_story_load($arg) {
  if (!
is_numeric($arg)) {
    return 
FALSE;
  }
  if (
$node node_load($arg)) {
    if (
$node->type == 'article' || $node->type == 'story') {
      return 
$node;
    }
  }
  return 
FALSE;
}
?>

et nous voulons déclencher les page callbacks, nous écrivons donc un petit répartiteur :

<?php
function mymodule_page($node) {
  
// $node->type can only be story or article.
  
return $node->type == 'article' mymodule_page_article($node) : mymodule_page_story($node);
}
?>

et nous écrivons l'entrée de menu comme

<?php
$items
['node/%mymodule_article_story/foo'] = array(
  
'title callback' => 'mymodule_title_callback';
  
'title arguments' => array(1),
  
'page callback' => 'mymodule_page',
  
'page arguments' => array(1),
  
'access callback' => 'node_access',
  
'access arguments' => array(1),
);
?>