Aller au contenu principal
loading

Titre dynamique avec Drupal : title callback et title arguments

POSTÉ DANS Drupal 7 TAGS Drupal 7 AUTEUR herve COMMENTAIRES 3

Sous Drupal, pour générer une entreée de menu avec un titre statique, le code se présente ainsi (hook_menu) :

function monmodule_menu(){
  $items = array();

  $items['ma-page/%'] = array(
    // la propriété title
    'title' => t('Mon titre statique'),
    // le reste des propriétés 
    'page callback' => 'monmodule_page',
    'page arguments' => array(1),
    'type' => MENU_NORMAL_ITEM,
    );
    return $items;
}

Pour le rendre dynamique, il suffit d'utiliser les propriétés "title callback" et "title arguments".

Prenons un exemple simple : si on considère que l'URL est du type ma-page/73, avec 73 un identifiant de taxonomie, il suffit de faire comme suit :

function monmodule_menu() {
  $items = array();
  $items['ma-page/%'] = array(
    // la propriété title
    'title' => t('Mon titre statique'),
    'title callback' => 'monmodule_titre',
    'title arguments' => array(1),
    // le reste des propriétés
    'page callback' => 'monmodule_page',
    'page arguments' => array(1),
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}

function monmodule_titre($tid) {
  $term = taxonomy_term_load($tid);
  return t("Mon titre dynamique : @taxo", array('@taxo' => $term->name));
}

 

Bien évidemment, l'utilisation de "title arguments" n'est pas obligatoire.



3 commentaire