Submitted by sahuni on
Bonjour,
quand j'affiche un noeud pour un certain type de contenu, j'aimerai afficher une vue bloc, qui a comme argument un champ perso du dit noeud.
Est-ce possible en D7? Uniquement avec du code PHP ou je peux me débrouiller sans?
Est-ce que je dois faire un load des valeurs du noeud ou pas besoin?
Si je dois passer par un argument PHP, qu'est-ce que je dois indiquer dans la partie réservée à mon code PHP, pour récupérer ce champ en tant qu'argument?
Par exemple mon champ serait : field_example.
L’argument ou «contextual
Permalien Soumis par khtuluu le 14 Décembre, 2012 - 15:39
L'argument ou "contextual filter" dont tu as besoin existe de base
Dans "contextual filter" t uvas trouver :
Sous "When the filter value is NOT available" tu choisis "Provide default value" et tu sélectionne "Content ID from URL".
mmmm, non l’argument n’est
Permalien Soumis par sahuni le 14 Décembre, 2012 - 17:11
mmmm, non
l'argument n'est pas le nid mais un champ qui me permet un regroupement quelconque.
Mon nid a la valeur 11 et le champ argument de ma vue aurait la valeur 5.
dans View UI, quand je teste ma vue, si je mets cette valeur 5 comme argument, c'est OK.
mais quand j'affiche mon noeud, le bloc ne s'affiche pas, parce qu'il est vide.
il me semble que je demande à ma vue deux choses contradictoires : je lui demande d'accepter un argument sur mon champ-example et je lui dis aussi qu'il va le trouver dans l'url. Hors, via l'url, la vue va récupérer mon nid monsite/node/11, la valeur 11. Il me semble que c'est ce qu'il va faire quand je lui dis «Content ID from URL».
Ou est-ce que la vue comprend: l'argument passé dans l'url est le nid, et à partir de ce nid, débrouille-toi pour récupérer la valeur de mon champ dans le noeud et sert-en comme argument de ma vue??? J'en doute ... J'ai tord?
C'est pourquoi j'avais pensé qu'il me fallait du php, pour créer l'argument.
je suis à des années lumière du bon raisonnement? Etant moins souvent sur Drupal maintenant, j'ai peut-être perdu un peu mes réflexes.
tu peux certainement
Permalien Soumis par khtuluu le 14 Décembre, 2012 - 18:00
tu peux certainement récupérer l'id nu noeud avec un argument php en faisant arg(1) et ensuite faire un entity_load pour charger ton noeud et aller chercher la valeur de ton fameux champs qui constitue l'argument. Mais bon ça fait un peu beaucoup... c'est peut être le moment d'envisager de faire ton bloc et son contenu à la main au lieu de faire une view
Merci pour ton
Permalien Soumis par sahuni le 15 Décembre, 2012 - 08:24
Merci pour ton avis.
Effectivement j'envisage un petit module maison.
ou eventuellement le module EVA: Entity Views Attachment : http://drupal.org/project/eva.
Le résultat ne serait pas un bloc, mais un attachement à un contenu. Avec eva, j'arrive à faire ce que je veux. Mais j'aurais bien aimé un bloc ...
Je vais m'occuper de tout ça dès que j'ai un peu de temps.