Bonjour à tous !
Un petit problème agaçant :
J’ai un champ d’un type de contenu de type nodereference. Le nombre de noeud pouvant être référencé étant très important, j’ai décidé d’utiliser la possibilité «Nœuds pouvant être référencés (Vue)».
J’ai créé ma vue, je la sélectionne dans l’interface du type de contenu, mais j’ai un problème avec l’argument…
L’argument nécessaire à ma vue est le node ID. Si j’entre un node ID manuellement, cela fonctionne. Par contre je n’arrive pas à récupérer l’argument de l’URL de ma page.
Or, en utilisant classiquement cette vue dans une page, sans nodereference, ça marche.
Est-il possible dans l’interface «Noeud pouvant être référencé» de récupérer un argument de l’URL ?
Merci d’avance pour votre aide
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Bonsoir,
Vous voulez retirer un arguments d’une URL c’est bien cela ?
Pour ca il faut choisir de fournir l’argument par défaut => Code PHP et dans le textarea vous mettez :
$mon_argument = arg(1);return $mon_argument;
Danse le cas d’une url «mon_url/mon_node» il prend «mon_node» comme argument.
takeova
356
Merci de votre réponse,
Il s’agit bien de récupérer un argument d’une URL, mais dans le cas particulier d’un champ nodereference pour lequel on définit une vue qui va «filtrer» les noeuds référencés par ce champ.
En l’occurrence ce n’est pas l’argument par défaut que je cherche à définir ; j’ai simplement le champ «Argument de la vue» tout en bas, avec l’indication «Fournit une liste d’arguments, séparés par des virgules, à transmettre à la vue.»
Je ne pense pas qu’il soit possible d’insérer du PHP ici (c’est un simple champ input, pas un textarea). Je pensais pouvoir utiliser un argument du type %n pour récupérer l’argument de l’url mais c’est là que ça bloque…
8corey
96
Ah d’accord j’avais pas compris. Ce n’est normalement pas possible tel quel avec nodereference par contre il y a patch qui à été soumis ici http://drupal.org/node/473670 qui permet depuis nodereference de passer des arguments à partir de l’url, il suffira d’appliquer le patch et une fois appliquer l’arguments pourra être pris en utilisant «arg()».
takeova
356
Cela semble correspondre à ce que je veux faire.
Je teste dès que possible et ferais un petit retour ici.
Merci beaucoup !
8corey
96
Bon, le premier test n’est pas concluant, j’ai appliqué le patch, lorsque le coche la nouvelle checkbox «Allow view arguments to be passed through URL» du champ nodereference de mon type de contenu et que je valide, j’obtiens l’erreur suivante :
Fatal error : Cannot redeclare content_types_overview() (previously declared in \sites\all\modules\devel\cck\includes\content.admin.inc:14) in \sites\all\modules\cck\includes\content.admin.inc on line 57
Pourtant dans le patch pas de trace de cette fonction…
J’avoue ne pas trop y voir clair… j’accepte vos suggestions avec plaisir !
8corey
96
En relisant le patch je vois que celui-ci n’est pas vraiment compatible avec la version 6.x-2.6 de CCK alors le seul moyen est de copier coller à partir du patch.
takeova
356
J’ai bien copié/collé à partir du patch, par contre je suis sur CCK 6.x-3.x-dev, ce qui explique peut-être mes problèmes ?
8corey
96
Est ce que le contexte de views ne suffit pas ?
http://drupalfr.org/node/8829 -> «Ajouter un contexte avec les arguments»
tostinni
1268
J’ai bien indiqué l’argument que je souhaite récupérer dans ma view. D’ailleurs si je teste cette view directement sur une page cela fonctionne, l’argument est récupéré et j’obtiens bien la liste des noeuds souhaités.
C’est bien au niveau du type de contenu, lorsque je souhaite filtrer mon champ nodereference avec cette vue, que l’argument pose problème (fonctionne si on l’indique en clair mais ne permet pas de le récupérer à partir de l’URL)
Le lien donné par takeova indique que c’est bien un problème de nodereference. Petit souci apparemment au niveau du patch, je verrai ce soir si j’ai éventuellement fais une erreur en l’appliquant ou si j’ai besoin de «patcher le patch» ( !) pour le faire marcher sur CCK 6.x-3.x-dev.
En tout cas merci de vos réponses, et si vous avez des idées sur les origines possibles du message d’erreur je suis preneur.
8corey
96
Bon, il devait s’agir d’une erreur dans l’application du patch, je n’ai plus le message d’erreur.
Par contre ça ne fonctionne toujours pas !!! Là je m’arrache les cheveux.
La vue est ok, ça fonctionne lorsque je donne une valeur à l’argument… mais pas en récupérant à partir de l’URL.
Je suis à court d’idée sur ce coup là, à part repenser tout mon système de nodes/vues…. :-(
8corey
96
Peut-être ceci :
Dans la vue en question, renseigner le chemin d’accès comme suit :
node/%/nom_de_la_vue
% représente l’argument qui sera substitué
elie
97
Merci d’apporter ta contribution !
Malheureusement je n’utilise pas un affichage de type page pour ma view, mais content pane. Je ne pense donc pas pouvoir essayer ta proposition.
En revanche cela m’a fait (re)découvrir que dans le bloc «pane settings» il y avait un champ Argument input, que je n’utilise pas du tout habituellement.
Plusieurs possibilités s’offrent à moi, dont 2 qui me paraissent pouvoir modifier le comportement de ma vue : From panel Argument et From context.
Mes premiers essais ne sont pas concluants, je vais toutefois approfondir dans cette voie…
J’avoue tout de même être vraiment confus dans toutes les possibilités de context/arguments à tous les niveaux : page, panel,vue… J’ai l’impression qu’il y a 50 façons de faire la même chose. J’espère sincèrement que tout cet aspect sera retravaillé pour Drupal 7 !
(si vous avez des tutos bien faits sur le sujet je suis preneur !)
8corey
96