url routing

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

petit nouveau sur drupal, je cherche déjà à développer mes propres modules. J'ai déjà assimiler un petit nombre de chose, mais un élément me reste en travers, c'est le routage d'url.

Par exemple quand le module blog est désactivé l'url monsite.com/blog est considérer comme inexistante et quand il est activé monsite.com/blog affiche une page.

Je souhaiterai pouvoir faire de même mais je ne trouve pas comment le faire, si quelqu'un pouvait m'aiguiller, je le remercie.

Gaani

Forum : 
Version de Drupal : 

Salut
Je pense que, si ce n'est pas déjà fait, il faut que tu lises attentivement la doc sur le systeme de menu de drupal :
http://drupal.org/node/102338

En gros dans drupal, un menu c'est un chemin associé à un "callback"; le callback n'étant que la fonction qui va être appelée lors qu'on ira sur le chemin précisé par le menu. Comme beaucoup d'autres choses dans drupal; un menu est un array php qui doit être implémenté au sein d'un hook (le hook_menu dans ce cas, voire l'api de drupal pour plus de précisions http://api.drupal.org/api/function/hook_menu/6)
Un exemple simple serait

<?php
  $items
['mon_menu'] = array(
   
'title' => 'test de menu',
   
'page callback' => 'ma_fonction',
   
'access arguments' => array('administer site configuration'),
  );
?>

ici l'adresse http://tonsite.com?q=mon_menu appelera automatiquement la fonction ma_fonction. Si celle ci retourne "coucou", en te rendant à l'adresse, tu affiches coucou.

Le truc particulier de drupal à bien comprendre; c'est qu'un chemin et une page à afficher, c'est une seule et même chose ! Le hook_menu permet de lier un chemin d'url à une fonction.

Je te remercie, j'ai trouvé exactement ce que je voulais. J'ai juste eu un petit un problème.
Je pensais avoir désactivé le cache, mais a priori drupal fait quand même un cache pour les menus, du coup j'ai mis un peu de temps à trouver.
Mais maintenant ça marche comme je veux.
Encore merci ;)