Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Views, relations, arguments, champs, tris, filtres...

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour!

J'essaie pour le moment de faire une vue de tous les posts qu'un user a posté (genre: "voir tous les messages de untel") Je choisis donc d'afficher des nodes, avec comme arguments l'username (utilisateur:nom pour les anglophobes :D)
Mais quand je veux sauver ma vue il me fait le message d'erreur suivant:
"Display "Paramètres par défaut" uses fields but there are none defined for it or all are excluded."

Effectivement, je n'ai encore assigné aucun champs.
Mais j'avoue ne pas très bien comprendre ce que je dois lui "donner comme champ pour qu'il soit content" :D

Mais de manière plus générale, je comprend pas la différence entre relations, arguments, champs, tris, filtres... apparemment, ils servent tous à filtrer, malgré leurs noms.

J'ai trouvé 3 vidéos sur biboo.net concernant la version 5 de drupal...
Mais heuum ça ne m'a pas nettement éclairci...
Vous connaissez d'autres tutoriaux peut-être?

Version de Drupal : 

Bon bah, grâce à l'aide de drupal, qui propose des tutoriaux, j'ai trouvé ceci:
http://drupal.org/node/314097
Et donc, pour mon probleme de champ, il suffisait de choisir dans les paramètres de base de la vue, à "style de ligne" : node.
Comme ca, dans les champs il met qu'il n'a pas besoin de champ, vu qu'il affiche un node entier.

J'affiche donc tous les posts de tous les users... en gros, tout ce qui a été posté...

Mais je n'arrive pas à cibler un user en particulier...
Je comprends pas trop comment faire :s

Je vais pas faire 1 view par user manuellement quand même! ^^"
Doit bien y avoir un moyen...

Si tu veux un user en particulier, tu utilises les filtres, et tu sélectionnes utilisateur : nom etc
ou tu peux passer en argument le nom si tu utilises les arguments
Tu as parlé des vidéos de biboo.net. Et bien la 3ème sur view explique tout cela, et même si c'est en version 5, ça aide beaucoup.
Après il faut essayer (c'est ce que je suis entrain de faire...)

moui oui, j'ai argumenté ET filtré par utilisateur.
Mais la vue me montre tous les posts de tous les utilisateurs, ils sont juste triés par ordre d'utilisateurs ascendant ou descendant, je ne peux pas choisir un utilisateur spécifique.
J'ai beau chipoté, j'arrive pas à cibler/isoler les résultats...
(en php je voudrais un " WHERE user = 'nom_de_l_user' ")

Et j'arrive encore moins à lier une vue avec un lien.
Imaginons un content "annonce", j'aurais un lien "voir plus d'annonces de tel user".
Je dois créer un contenu pour voir ma vue? oO
Ou bien je peux me servir de la vue telle quelle et la lier à un lien d'une manière ou d'une autre?

Dans un premier temps, fait seulement un filtre : ça correspond à la clause where qui serait codée en dur.
(l'argument, c'est aussi une clause where, mais là c'est une variable qu'on passe)
Tout ça n'a rien à voir avec le tri.
Alors, dans ton filtre, qu'as-tu mis?

Tout d'abord, merci de prendre le temps de me répondre, c'est fort urbain/aimable/gentil :)

Alors, ok, j'ai uniquement mis
Utilisateur : Nom asc
comme filtre.

Ce qui donne ceci comme requête:

SELECT node.nid AS nid,
users.name AS users_name
FROM drupal_node node
INNER JOIN drupal_users users ON node.uid = users.uid
WHERE node.status <> 0
ORDER BY users_name ASC

Mais dans prévisualisation en direct, il me montre tous les posts, je dois pas m'inquiéter de ça?

ouais mais...
c'est quand meme les nodes postés par des utilisateurs que je veux afficher, pas juste les utilisateurs? :s
Mais bon ok je vais refaire une vue qui portera sur la table users.

Ce qui me fait penser que je pourrais faire un relationship entre les deux tables...

A ta place, je créerais une nouvelle view (pas d'après un modèle), je changerais simplement le style de ligne et je le passerais en node
=> tous tes nodes s'affichent
=> ensuite je cliquerais sur le plus qu'il y a à côté du filtre, je choisirais le groupe utilisateur, puis le nom, je mettrais par exemple que je veux inclure mon nom d'administrateur et je teste une fois :
tu vois tous tes nodes
Puis je reviendrais modifier ce filtre et je mettrais que je veux exlure mon nom:
tu vois tous les nodes sauf les tiens
C'est là le principe de base et tu dois y arriver

Bon, c'était bien de ce coté là qu'il fallait chercher, ma vue fonctionne parfaitement!!!

Plus qu'à l'afficher à partir d'un lien...
Des idées? des conseils? des bonbons? des pistes?
Donc en gros comment "lier" une vue à un lien?

Grande nouvelle, j'y suis arrivé ^^
Avec le module "computed field"
Bon, faut tripatouiller avec du php, mais c'est super puissant comme module...
Dommage qu'il soit pas plus friendly-user ^^'

En gros, si ca peut aider qqun:

Si vous avez une vue comme moi avec le path "usernodelist/%"

Comme Computed code j'ai mis ceci:

global $user;
$node_field[0]['value'] = $user->name;

et comme display format:

$display = "<a href='../../usernodelist/".$node_field_item['value']."'>".$node_field_item['value']."</a>";

voilà, j'espère que ça aidera quelqu'un ;)