Submitted by axelou on
Bonjour,
Tout d'abord je vous présente les lignes qui ne fonctionnent pas:
<?php
$items['admin/settings/ad-banner/%bid/delete'] = array(
'title' => 'Supprimer pub',
'page arguments' => array(3),
'access arguments' => array('administrer ad_banner'),
'page callback' => 'ad_banner_delete_view',
'type' => MENU_CALLBACK,
);
$items['admin/settings/ad-banner/%bid/edit'] = array(
'title' => 'Editer une pub',
'page arguments' => array(3),
'access arguments' => array('administrer ad_banner'),
'page callback' => 'ad_banner_edit_view',
'type' => MENU_CALLBACK,
);
?>
Mes fonctions "ad_banner_delete_view()" et "ad_banner_edit_view()" existe bien dans des fichiers externes (je fais des require_once au début de mon fichier .module). Pourtant pour mes autres menu du hook_menu() je n'ai aucun problème à accéder à mes fonctions qui sont dans des fichiers .inc externes.
Le but de mon opération :
Dans une page d'administration du module, j'ai un tableau avec le nom d'une bannière, la bannière et deux liens (Editer et Supprimer). Les liens pointent sur admin/settings/ad-banner/{id de la bannière dans la base}/(edit ou delete). Mais quand je clique sur ses liens je retourne à ma page d'administration par défaut.
Je ne comprend pas pourquoi il n'affiche pas le return de mes fonctions vers lesquelles pointent les items configurés ci-dessus. Avez-vous une réponse?
Merci d'avance.
Salut, pour appeler mon
Permalien Soumis par guitarman le 30 Avril, 2009 - 16:54
Salut,
pour appeler mon fichier truc.fichier.inc, j'utilise :
'file' => 'truc.fichier.inc'.
Je ne sais pas comment est défini ta variable %bid, mais si elle n'existe pas à l'appel du menu il faut créer une fonction que tu nomes:
bid_to_arg() pour la définir.
Jim
Salut guitarman, Oui je peut
Permalien Soumis par axelou le 30 Avril, 2009 - 17:12
Salut guitarman,
Oui je peut aussi utilisé l'attribut 'file', c'est pas faut.
Par contre je ne comprends pas trop ton histoire de fonction bid_to_arg(), pourrais-tu développer?
Je pensais que le %cequetuveux permettait de remplacer ce texte par un argument de ton choix (ici un id) et que l'attribut 'page arguments' => array(3) donnait l'indication de la position de cette variable dans l'URL. Mais j'ai sans doute tort car en fait j'en sais rien.
Salut après ce petit
Permalien Soumis par guitarman le 4 Mai, 2009 - 09:39
Salut après ce petit weekend voila la suite.
Je préfère utiliser l'attribut file parce que je pense que seuls les fichiers en cours d'utilisation sont chargés. Inutile d'encombrer la mémoire avec des trucs qui ne serviront pas. (Enfin je crois que ça marche comme ça si je me trompe ne pas hésiter à me le dire).
Sinon en ce qui concerne le %:(Merci à mouize et à nyl auster pour le complément d'info quand j'essayé de comprendre le fonctionnement de l()).
Tu peut effectivement utiliser le % n'importe ou dans ton url et Drupal décompose l'url grâce aux slashs pour en faire un array. En comptant à partir de zero dans l'array, tu determine sa position comme tu le dis.
Pour l'utiliser, plusieurs possibilités, tout dépend à quel moment tu passes ton argument.
1)
2)
3)
Tu n'est pas obligé de definir un 'page arguments' en passant comme ça par exemple:
Appel du menu:
Ouf ! ! j'espère ne rien avoir oublié et ne pas m'être trompé.
Bon courage
Jim
Bonjour Jim, Ta réponse est
Permalien Soumis par axelou le 4 Mai, 2009 - 10:07
Bonjour Jim,
Ta réponse est parfaite, j'ai super bien compris et en plus ça marche.
Que dire de plus si ce n'est "Merci".
you’re welcome
Permalien Soumis par guitarman le 4 Mai, 2009 - 10:20
you’re welcome