Comment regrouper des éléments dans une vue?

33

J'ai 8 articles: Article 1 (Jeux), Article 2 (Nouvelles locales), Article 3 (Nouvelles du monde), Article 4 (Nouvelles du monde), Article 5 (Jeux), Article 6, Article 7, Article 8.

Dans une perspective, j'aimerais regrouper les articles par: "Nouvelles", "Jeux" et "Autres". Regrouper les informations mondiales et locales dans une catégorie et déplacer tout ce qui n’a pas de catégorie sur "Autre". Je ne voulais pas créer un nouveau vocabulaire pour cette vue. J'ai essayé d'accomplir cela en utilisant le groupe par champ, mais je ne peux pas comprendre comment je pourrais accomplir cela en utilisant cette méthode.

mstef
la source

Réponses:

15

Dans votre type de contenu, vous pouvez créer un champ "liste" appelé, par exemple, Catégorie, avec les catégories Nouvelles, Jeux et Autres. Vous pouvez ensuite classer le contenu devant apparaître dans votre vue à l'aide de ce champ.

Dans votre vue, sous Format, choisissez "Paramètres". Il devrait y avoir une option pour choisir un champ de regroupement. Sélectionnez le champ "Contenu: Catégorie". Votre vue devrait maintenant apparaître groupée en fonction de News, Gaming and Other.

Était-ce ce que vous aviez en tête?

MISE À JOUR Ce qui précède n’était pas tout à fait ce que vous recherchiez. Aucun problème.

Vous dites que vous avez des articles comme Article 1 (Jeux), Article 2 (Nouvelles locales), Article 3 (Nouvelles du Monde), Article 4 (Nouvelles du Monde), etc. Est-il exact que le mot entre parenthèses soit un terme de taxonomie? Sinon, les informations ci-dessous ne seront pas pertinentes, mais je suppose que pour le moment, elles le sont.

Si tel est le cas et que vous souhaitez diviser ces termes en trois catégories, vous pouvez certainement modifier la requête Views ou écrire la vôtre.

Alternativement (ce qui est probablement plus facile), vous pouvez changer votre vocabulaire existant en une taxonomie hiérarchique avec News en tant que super-catégorie et Local News et World News en tant que sous-catégories.

Alors maintenant, votre vocabulaire ressemble à:

Nouvelles

  • Nouvelles locales
  • Nouvelles du monde

Jeu

Autre

Si votre contenu était déjà associé aux catégories existantes, vous ne devriez rien changer.

Vous pouvez ensuite créer une vue qui affiche les champs souhaités. Ajoutez un filtre "Nom du terme" et entrez "Nouvelles". Ajoutez ensuite un affichage de pièce jointe et associez-le à votre vue actuelle, en remplaçant le filtre et en le définissant sur "Jeux". Enfin, ajoutez une deuxième pièce jointe et remplacez le filtre par "Autre". Cela devrait vous donner le résultat que vous voulez.

g_thom
la source
Je suis d'accord que votre méthode fonctionnerait. Mais pour mes besoins, il devient bâclé. Il s'agit d'une vue unique, quelque chose que je dois faire, mais créer un nouveau champ de liste afin de baliser les articles uniquement pour l'utiliser pour une seule vue ne semble pas très propre. Merci beaucoup pour la réponse, toujours utile. Mais si quelqu'un a une idée sur la façon de détourner l'appel mysql ou de le faire davantage dans le code afin de le faire sans créer de nouveau champ arbitraire, ce serait utile! Merci!
Mstef
Merci! Je n'avais pas pensé à le faire en utilisant une taxonomie hiérarchique, c'est nettement plus propre, merci. La seule chose qui m'inquiète, c'est que nous utilisons solr pour indexer le site. Je ne veux pas que les nouvelles, les jeux et autres soient affichés dans cet index, ce qui pourrait créer un nouveau problème à résoudre. Si quelqu'un a des références pour le faire dans le code, cela reste appréciable. Mais merci une tonne g_thom!
Mstef
@mstef, content que ce soit utile. Je ne connais pas bien solr, je ne l'avais jamais implémenté auparavant. Theming est plus mon sac, mais bonne chance avec le côté de la recherche.
g_thom
3

Vous pouvez aussi utiliser Vues distinctes . Ce module permet d'ajouter des relations ou d'autres jointures dans Les vues créent souvent des résultats "en double". Par exemple, un nœud avec un champ comportant plusieurs valeurs peut apparaître dans la vue une fois par valeur dans le champ à valeurs multiples.

Heilop
la source
2

Je suis tombé sur ce fil lors de la recherche d'une solution groupée, à l'aide de Views ou de Display Suite (D7). D'une certaine manière, je ne peux pas obtenir le groupe par fonctionnalité g_thom mentionné dans la section Format. Cela devrait-il être dans D7? y a-t-il un sous-module dépendant de Views qui me manque? De plus, dans Suite Suite, il existe une fonctionnalité groupe par, mais la seule option affichée est l'un de mes champs personnalisés que j'ai créé (je ne sais pas pourquoi celui-ci, ni un autre). Inutilisable dans un tel cas.

Mon objectif est de faire en sorte que les vues forment un bloc de liens (liés à des nœuds de type personnalisé), regroupés par un terme de taxonomie (le terme doit être affiché mais non lié à quoi que ce soit).

PS respect à g_thom pour son aide élaborée!

Artur
la source
Je suis désolé, j'aurais dû le placer comme commentaire, pas comme réponse. Ma faute.
Artur
Avez-vous déjà compris cela? semble qu'il n'y a toujours aucun moyen de le faire. (D7)
user379468
2
Je vais supposer que vous avez déjà compris cela, mais Group By ne va pas simplement apparaître sous la rubrique Format; vous devez cliquer sur le lien Paramètres en regard de l'élément Format sous l'en-tête Format.
EmmyS