[Resolu]views et arguments

Bonjour,

Pourriez-vous m'expliquer à quoi sert les arguments dans les views et comment on les paramètre?

J'imagine que l'on transmet une valeur d'un nœud pour l'utiliser dans la view.
Est-ce cela?

J'aimerais faire une vue dynamique, du type
select mes champs from mes nœuds where terme_taxonomie="valeur taxonomie du noeud"

Est-ce possible?

Merci de votre aide.

---------RESOLU-------------
Après avoir bien galéré, j'y suis enfin arrivé, j'ai reçu ma première vue avec récupération d'un terme de taxonomie du noeud.

Merci à tous de m'avoir aiguillé.

Forum : 

Les arguments sont comme des filtres classiques exeptés que leur valeur dépend de l'url. Par exemple tu peux utiliser un argument "identifiant de terme" pour que ta vue n'affiche que les nodes qui appartiennent à un certain terme. La vue saura de quel terme il s'agit en observant l'url (par ex : taxonomy/term/3 : 3 est l'argument est la vue sait donc qu'elle ne doit afficher que les nodes appartenant au terme numéro 3).

pour que la vue sache quelle partie de l'url elle doit prendre, il faut lui indiquer avec un %.

Si on prend l'exemple de la vue taxonomie proposée par views; le chemin est :
taxonomy/term/%

La vue sait donc qu'elle doit prendre la troisième partie de l'url comme argument pour régler dynamiquement le filtre de taxonomie.

je comprends le principe, mais je ne comprends pas comment le mettre en oeuvre.

J'ai un noeud affiché et je veux que ma vue affiche par exemple les images des noeuds qui ont le même terme de taxonomie, où dois-je dire à mon noeud de mettre cette valeur dans l'URL?

je maitrise mal la version 6 de drupal mais il me semble que ce n'est pas possible de base : l'url du node ne contient pas dans l'url l'identifiant du terme donc pas possible d'affiche directement une vue dessous utilisant un identifiant de terme comme taxonomie.

C'est pour cette raison qu'il est possible de mettre du php dans les arguments : pour retourner une valeur si celle-ci n'est pas présente dans l'url.

Donc si j'ai bien compris ton souci, il faut que tu trouves un snippet à copier coller dans la partie php de ton node qui retrouve le terme de taxonomie de ton node pour le transmettre à la vue et qu'elle fasse son travail.

En tous cas la derni_re fois que j'ai essayé ça, j'ai procédé de la sorte

il faut donc que j'ajoute du code dans ma page node.tpl.php qui récupère l'ID du champ de taxonomie.

J'ai regardé la fonction taxonomy_get_term($tid) par contre je ne comprends pas trop la syntaxe.

Si j'ai un vocabulaire "themes" avec les termes comment lui dire qu'il faut récupérer pour ce vocabulaire et pas un autre.
Où dois-je l'indiquer dans ce code?

<?php
function taxonomy_get_term($tid) {
  static
$terms = array();

  if (!isset($terms[$tid])) {
   
$terms[$tid] = db_fetch_object(db_query('SELECT * FROM {term_data} WHERE tid = %d', $tid));
  }

  return $terms[$tid];
}
?>

Merci encore

Créer une vue de type node

Ajouter un champ : titre du noeud par exemple.

Ajouter un argument : nous prendrons terme de taxonomie. Laisser les options par défaut et faites "Mise à jour".

créer une page qui affichera la view, pour ceci faite "nouvel affichage">"Page" et dans "chemin" indiquer "mapage/%".Le % indique qu'il va récupérer l'argument dans l'URL.

Aller dans Construction du site > menus > paramètres et pour vos items indiquer les chemins respectifs : mapage/1, mapage/2...