Submitted by baltius on
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
Il semblerait que je doivent
Permalien Soumis par baltius le 25 Mai, 2010 - 13:43
Il semblerait que je doivent utiliser un wildcard avec page arguments depuis mon .inc vers mon .module mais je ne comprends pas son fonctionnement.
Bonjour, Dans ton hook_menu,
Permalien Soumis par Matt le 26 Mai, 2010 - 08:59
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