Problèmes liens dans un callback, pas de changement de page

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.

Je développe un module pour déléguer des droits à d'autres utilisateurs affilié à une société préalablement créée.

Donc mon module c'est ça :

<?php
 
/* Implémentation du hook_perm */
 
function delegation_perm(){
   return array(
'deleguer des droits');
 }

 
function delegation_menu(){
 
$items = array();
 
$items['delegation'] = array (
      
'title' => 'Déléguer des droits',
      
'page callback' => 'delegation_membres_callback',
      
'file' => 'delegation.inc',
    
'access arguments' => array (
        
'deleguer des droits'
       
),
  
'expanded'=>false 
 
);
 
$items['delegation/rules/%d'] = array(
      
'title' => 'Déléguer des droits',
      
'page callback' => 'delegation_droits_callback',
       
'access arguments' => array('deleguer des droits'),
    
'expanded' => false
  
);
 
   return
$items;
 }
?>

et à coté j'ai fais mon .inc avec mes callback :

<?php

function delegation_membres_callback(){
    global
$user;
 
$user_societe = (db_fetch_object(db_query("SELECT n.*, p.* FROM {node} n inner join {content_type_profile} p on n.nid=p.nid WHERE n.uid=%d AND p.field_affiliation_value = 2",$user->uid))->field_sid_value)?(db_fetch_object(db_query("SELECT n.*, p.* FROM {node} n inner join {content_type_profile} p on n.nid=p.nid WHERE n.uid=%d AND p.field_affiliation_value = 2",$user->uid))->field_sid_value):(db_fetch_object(db_query("SELECT s.sid FROM {node} n JOIN {node_societe} s ON n.nid=s.nid WHERE n.uid = %d", $user->uid))->sid);
   
  
$cursor = db_query("SELECT u.* FROM {users} u JOIN {node} n ON u.uid=n.uid JOIN {content_type_profile} ctp ON n.nid = ctp.nid WHERE ctp.field_affiliation_value = 2 AND ctp.field_sid_value = %d", $user_societe);
  
  
$output = "<table class='liste_membres'>
    <tr><th>Membre</th></tr>"
;
  while(
$temp = db_fetch_object($cursor)){
      
$output.= "<td>".l($temp->name,"delegation/rules/".$temp->uid)."</td>";
    }
 
$output.="</table>";
   return
$output;
}

function delegation_droits_callback($membre_uid){
   return
"page plus tard";
}
?>

Mon problème est le suivant : Quand je clique sur "Déléguer des droits" dans mon menu, j'accede bien à ma liste de membre (via mon premier callback) Mais lorsque je clique sur un membre, le lien se transforme bien (je me retrouve avec cette adresse : http://localhost/lignechaude/?q=delegation/rules/4 qui est ce que je souhaite) mais ca ne m'affiche pas "page plus tard" et mon callback est forcément appelé sinon il me dirait que la page n'existe pas au lieu d'afficher la même chose dans la fenetre...

Don j'aimerais juste savoir où je me plante^^ pour me retrouver avec mon texte "page plus tard"

Merci d'avance

Forum : 
Version de Drupal : 

Bonjour,

Dans ton hook_menu, tu as oublié de mettre pour $items['delegation/rules/%d']

'page arguments' => array(2)

Sinon, l'item "expanded" existe ? Je ne l'ai jamais vu et je ne le trouve pas dans l'API.

Matthieu