4 votes

Affichage d'un nuage de tags par auteur

J'ai un site qui a de nombreux utilisateurs, chacun avec leur propre mini-site. Une partie de ce 'mini-site' est un blog. J'aimerais afficher un nuage de tags pour chaque auteur. La fonction de base du nuage de tags de Tag et Tagger le fera, mais pour TOUS les auteurs. Ajouter un author_id ne fonctionne pas.

J'ai essayé d'utiliser une boucle channel entries pour obtenir toutes les entrées par auteur, puis afficher les tags associés à ces entrées.

{exp:channel:entries author_id="1" channel="blog"}
{exp:tag:tags entry_id="{entry_id}"}
{title}{tag_name}{total_entries}
{/exp:tag:tags} 
{/exp:channel:entries}

Cela m'a donné une liste de tags que seul cet auteur a utilisés (dans Tag, cela n'a pas fonctionné dans Tagger). Cependant, si un tag était utilisé plus d'une fois, il serait listé plus d'une fois.

La fonctionnalité native d'EE et de Tag ne me permet pas de faire ce que je veux faire. Je vais probablement devoir utiliser du PHP (un plugin) pour cela. Récupérer tous les tags qu'un auteur a utilisés, les mettre dans un tableau, supprimer les doublons, puis afficher cela dans mon template. J'ai posté chez Solspace, mais ils ont dit que je devrais utiliser PHP.

Avant de le faire, je voulais voir s'il y avait une méthode plus simple ou un autre add-on qui pourrait le faire. Je serais également reconnaissant pour tout conseil sur les approches dans un tel plugin si c'est la voie à suivre.

1voto

Anna_MediaGirl Points 968

Malheureusement, je pense que votre seule option ici est d'utiliser du PHP personnalisé pour supprimer les doublons.

1voto

Alex Kendrick Points 969

En utilisant Tagger et le module Query, vous devriez pouvoir obtenir ce dont vous avez besoin (probablement aussi Solspace Tags, je ne l'ai juste pas utilisé donc je ne peux pas dire avec certitude).

Une requête comme celle-ci

SELECT tag_name  
FROM exp_tagger
WHERE author_id = 7

Donne un ensemble de tags pour cet auteur.

Vous pouvez l'utiliser avec le module Query de cette manière, en utilisant l' author_id de l'entrée actuelle comme partie dynamique de la requête.

{exp:query sql= "SELECT tag_name FROM exp_tagger WHERE author_id = {author_id}"}
    {tag_name}
{/exp:query}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X