Passer un argument via l'url pour une view dans un panel

Catégories:

Bonjour, je vais essayer d’etre précis dans ma question, car j’ai déjà fouillé pas mal de forums et regardés des tutos qui répondaient presque a ma question.

sur un panel, j’ai créé une view qui affiche des vidéos issues de catégories que j’ai déjà filtré, trié etc…

parmi la dixaine de vidéo qu’il me reste a afficher, j’aimerai, tout en restant sur ma page http://www.monsite.com/mapage, en afficher une seule en fonction d’un argument défini dans l’url.
l’argument en question étant l’ID du noued de la vidéo que je veux afficher.

quand je défini l’argument par défaut (en gros quand l’url est simplement : http://www.monsite.com/mapage ) ça fonctionne, pas de soucis, j’ai bien la vidéo correspondant a l’argument par défaut qui s’affiche.

mais quand j’essaye de passer un argument par l’url, ça ne marche pas.

en, fait je ne sais pas de quelle manière passer cet argument…

j’ai essayé pas mal de trucs genre :

http://www.monsite.com/mapage ?var=2110 (mais quelle «var» utiliser ?)
http://www.monsite.com/mapage/2110

mais ça ne marche pas…

je rame je rame…

quelqu’un pour m’aider ??

merci d’avance !!

#

Pourquoi utiliser panel dans ce cas ???

Meme apres avoir filtrer trier tu peut aussi passer un argument a ta vue.Je vois pas pkoi tu est oblige de lier panel a vue pour arriver à tes fin ?

MOMO Drupal en force

#

euh…

j’utilise un panel pour afficher plusieurs vues différentes sur une même page, avec une mise en page particulière qui me semblait plus pratique a faire avec un panel.

mais quand bien même, ma question reste la même car c’est bien à la vue (affichée, certes, dans le panel) que je veux passer un argument… et je n’ai pas trouvé comment faire rien qu’avec la vue.

une solution ?

#

Salut,

Une vue n’est capable de récupérer automatiquement les arguments dans l’URL que quand elle est affichée sur sa propre page.

Dans ton cas, ta vue est affichée dans un panel. L’URL est donc l’URL du Panel, et les arguments que tu pourrais mettre dans l’URL sont transmis au Panel, pas à la vue.

Pour changer ce comportement, il faut paramétrer ton argument avec le réglage «Action à mener si l’argument est absent = Fournir l’argument par défaut», puis tu choisis le type d’argument qui te paraît le plus approprié (par exemple, si tu passes l’argument en écrivant ?var=2110 dans l’URL, tu peux le récupérer avec le code PHP $_GET['var']).

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

merci pour la réponse !

ça m’avait pourtant l’air d’être la solution que j’attendais, mais ça ne fonctionne pas…

j’ai bien mis comme code php dans «fournir l’argument par défaut» : $_GET['var']; (parce que : $_GET['var'], sans le «;» ça ne m’affiche plus rien du tout)

et l’url de mon panel est bien : http://www.monsite.com/mapage ?var=2110, mais ça ne fonctionne pas.

du coup nouvelle question : avec cette technique, on demande d’aller chercher dans l’url la variable «var» si l’argument est absent. mais ne peut on pas dire d’aller chercher la variable «var» dans l’url par defaut ? Je veux dire, comment on saitr si l’argument est absent, ou est il censé aller chercher l’argument avant de se rendre compte qu’il est absent et de finalement aller le chercher dans l’url ?

j’espere être clair dans ma question.

merci encore pour toutes ces réponses qui me font nettement progresser dans mon utilisation de drupal !

#

C’est normal que ça ne fonctionne pas, il te restait encore un peu de travail. Le code PHP que j’ai écrit n’est pas ce que tu dois taper au caractère près. C’était pour te donner un exemple, je pensais que tu adapterais à ta situation.

Donc, si ton URL est www.monsite.com/mapage?var=2110, pour qu’un argument dans une vue récupère la valeur de var, il faut écrire ceci dans le champ «Code d’argument PHP» :

return $_GET['var'];

Et, oui, cette fois-ci, tu peux faire un copier-coller ! ;-)

C’est bien marqué dans le commentaire en-dessous du champ qu’il faut RENVOYER la valeur, d’où le return.

L’argument est absent parce que la vue n’est pas affichée à sa propre URL, mais dans un panel. C’est ce que je t’ai expliqué dans mon précédent message : «Une vue n’est capable de récupérer automatiquement les arguments dans l’URL que quand elle est affichée sur sa propre page.» En conséquence, si la vue n’est pas sur sa propre page, elle n’a pas d’arguments !

C’est plus clair maintenant ?

Vincent

Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.

#

super !

merci pour l’explication, ça me parait complètement logique maintenant.

bon, mon premier probleme est résolu, merci beaucoup, j’en arrive maintenant a un second, toujours motivés pour m’aider ? :D

alors maintenant que mon panel peut récupérer via l’url l’ID d’une vidéo principale a afficher, je veux afficher en dessous une seconde vue avec les thumbnails de toutes les vidéos d’une même catégorie (ça pas de soucis) et que ces thumbnails renvoient pour le coup vers la même page ou nous sommes déjà (monsite.fr/mapage) en changeant juste l’argument var avec l’ID correspondant (suis-je clair ?)

je souhaite donc overrider le lien du thumbnail.

sauf que quand je coche «Output this field as a link» et je met comme code http://monsite.fr/mapage?var=var=[nid_1], ça ne fonctionne pas.

le code source de la page m’indique que deux liens sont présents, et celui de base du thumbnail l’emporte sur celui que j’essaye de faire
cf : <a href="http://www.monsite.fr/mapage?var=2082 "><a href="http://www.monsite.fr/rub/cat/2010-04-10/titredelavideo">   <img class="flashvideo_thumbnail" src="http://www.monsite.fr/files/videos/image_thumb_3390.jpg" alt="Regardez cette vidéo !" /></a></a>

du coup, comme dans les options du champ «flashvideo : video» il n’est pas possible (ou alors j’ai pas vu) de delier l’image de son lien de base, j’ai voulu réécrire le champ en lui meme.

je coche donc «Rewrite the output of this field» et apres avoir essayé pas mal de truc, la seule solution que j’ai trouvé qui me réécrit bien le lien de sortie du thumbnail est ceci : <img src=[nid] qui marche mal vu qu’il me laisse apres le thumbnail les caractères "> qui dépassent

au niveau de la source, ça donne ça :
<a href="http://www.monsite.fr/mapage?var=2082 "><img src="<a href="http://www.mosite.fr/rub/cat/2010-04-10/titredelavideo">      <img class="flashvideo_thumbnail" src="http://www.monsite.fr/files/videos/image_thumb_3390.jpg" alt="Regardez cette vidéo !" /></a>"></a>

pas très très propre tout ça…

quelqu’un sait comment virer le lien de base du thumbnail ?

merci !!

#

probleme résolu :

j’ai désactivé dans le module flashvidéo le lien du thumbnail.

merci encore pour toute l’aide en amont !

#

Salut je remonte ce poste puisque c’est un sujet qui a été déja traité…

Comme b.one je souhaiterais envoyé des arguments pour filtrer sur le type d’information, «type» est un champs que des contenus «Document»
J’ai opté donc pour un argument passé en PHP comme expliqué plus haut, mais voila ca ne m affiche plus rien.
voila ce que j’ai fait

  • J’ai ajouté dans ma vue un argument : Content : type fourni par Document
  • J’ai choisi «Provide default argument» à Action to take if argument is not present.
  • J’ai choisi Php code et j’ai entré : return $_GET[‘type’] ;

Bon euh, vu que c’est la premiere fois que j’utilise les arguments je me suis ptet gourré quelque part…
Lorsque je supprime l’argument mon tableau affiche tout les documents, et lorsque je met l’argument plus rien ; meme en utilisant un argument dans l’url. par exemple : http://exemple/documents ?type=Trade

#

Dans ton cas tu affiche une vue simple tu n a pas a mettre de code php.Ca tu le fait si t a vue et appeler a partir d un panel par exemple.C est la difference avec ce qu il y a plus haut.Toi tu n a pas besoin de retourner qoui que ce soit.
Enleve le code php

MOMO Drupal en force

#

j’utilise un panel aussi désolé de l’oubli. donc je doit utilisé le php

#

c’est bon mon probleme est résolu, j’ai trop honte pour dire comment :D, en faite je m’était trompé de champs dans l argument… merci de ton aide ;)

#

ah ok.C est vrais que il n y avais pas de raison que ca ne marche pas.

MOMO Drupal en force

#

Sinon, à moins de ne pas avoir bien compris, il y a tout simplement les options de context et l’envoie d’arguments dans Panel qui permettent d’envoyer justement l’argument de la page dans la Vue. Pas besoin de PHP ;)

gregoiresan

Syndiquer le contenu