We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25059
    • 47 Posts
    Bonjour,

    Je souhaite réaliser ce que j’ai nommé dans mon titre :p Je m’explique: Après un première affichage de TvTagCloud de plusieurs pages, je souhaiterais pouvoir afficher les TvTagCloud spécifiques aux pages séléctionnés. De plus, j’aimerais pouvoir conserver la première séléction, puis la suivante, puis la suivante, etc. pour affiner l’affichage.
    J’ai déjà légèrement réfléchi au problème et vais tenter de vous expliquer plus en détails.
    Ce topic a pour but vous demander de l’aide sur certains points qui me parraissent obscures dans la réalisation de tout ceci.

    Afficher les TvTagCloud de bases ne pose pas de problèmes majeurs.
    [!TvTagCloud? &parent=`39` &landing=`47` &tvTags=`doctags` &showCount=`1`!]

    Puis, les résultats correspondant (page 47)
    [!ditto? &startID=`39` &tagData=`tvdoctags` &tagDelimiter=`,` &tpl=`searchDocTags` &archivePlaceholder=`1` &hideFolders=`1` &summarize=`all` !]


    Jusqu’ici tout va bien. Bon, mettons que je veuille afficher le TvTagCloud des pages qui résultent du tag séléctionné.
    On aura quelque chose du style
    [!TvTagCloud? &parent=`42,45,49` &landing=`47` &tvTags=`doctags` &showCount=`1`!]

    Le premier problème réside dans la récupération et l’insertion des id des pages dans l’appel du snippet. Je ne maîtrise pas encore parfaitement modx et je vois pas trop de quelle manière m’y prendre (enfin, c’est au niveau imbrication que ça bloque)

    Bon, vient alors le deuxième points. Les pages issues de la séléction du premier tag ont au moins ce tag en commun. Comment faire alors pour conserver celui-ci afin d’affiner la séléction et ne pas revenir sur une séléction d’ensemble ?
    Là dessus, je pense qu’il va falloir apporter une modification au snippet TvTagCloud, reste à voir quel est le meilleur moyen sans mettre trop de désordre là dedans. Il me faudra surement rajouter un paramètre, lequel devra alors pouvoir prendre n valeurs, à la manière de l’id des pages pour la séléction. Comme précédemment, quid de la récupération et de l’insertion de tags...

    Si vous avez des idées, des pistes, n’hésitez pas...

    Merci d’avance
      :: RiderCrazy.Com :: Server@Home - [WIP] En cours de transition vers MODx
      • 25059
      • 47 Posts
      Bon, j’avance doucement mais surement...
      Avec la paramètre tagMode de ditto et en mettant plusieurs tags dans l’url, y’a moyen de faire des choses. Seulement, les comportements des différents ne me conviennent pas.


      • onlyTags: affiche toutes la pages avec au moins un des tags présent dans l’url
      • onlyAllTags: ne fonctionne que si on a mis tous les tags présents dans le Tv de la page... pas vraiment pratique
      • removeTags: supprime de l’affichage les pages ayant au moins un des tags de l’url dans son Tv
      • removeAllTags: affiche toutes la pages sauf celles qui ont tous les tags de l’url dans leur Tv. L’extrême inverse de onlyAllTags

      Ce que je souhaiterais, c’est un comportement semblable à onlyAllTags mais moins restrictif dans le sens où ne doit pas être obligé d’avoir tous les tags présents pour avoir un résultat, mais plus restrictif que onlyTags dans le sens où tous les tags de l’url doivent être dans le Tv et pas au moins un.

      J’ai épluché un peu le code et j’en suis arrivé à la fonction tagFilter dans ditto.class.inc.php ligne 392.
      Le comportement des différentes option est réglé par un switch:
      		switch ($this->filtertype) {
      			case "onlyAllTags" :
      			case 7 :
      				if ($commonTags != $totalTags)
      					$unset = 0;
      				break;
      			case "removeAllTags" :
      			case 8 :
      				if ($commonTags == $totalTags)
      					$unset = 0;
      				break;
      			case "onlyTags" :
      			case 9 :
      				if ($commonTags > $totalTags || $commonTags == 0)
      					$unset = 0;
      				break;
      			case "removeTags" :
      			case 10 :
      				if ($commonTags <= $totalTags && $commonTags != 0)
      					$unset = 0;
      				break;
      			}
      Mais là, je sèche. Je vois pas quel est le test à placer dans un if pour avoir le comportement que je désire :/
        :: RiderCrazy.Com :: Server@Home - [WIP] En cours de transition vers MODx
        • 25059
        • 47 Posts
        ah, benh je suis pas le seul à avoir des problèmes de comportement avec tagmode :p
        http://modxcms.com/forums/index.php/topic,7496.0.html
          :: RiderCrazy.Com :: Server@Home - [WIP] En cours de transition vers MODx