[5.0] Affichage des mots-clés en tagcloud

2»

Réponses

  • Bonjour,
    J'ai constaté une anomalie dans l'affichage du poids des mots dans le nuage. Il suffit de saisir plusieurs fois son tag pour le voir apparaître avec un poids plus important que celui auquel il doit prétendre. Un petit traitement sur les doublons à l'intérieur d'un même document s'impose me semble-t-il.
    Cordialement.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Celui qui saisit plusieurs fois le même tag pour le même article, faut vraiment qu'il se pose des questions ^^
    Après que le tag prenne plus de poids s'il apparait plusieurs fois, ça me semble tout a fait normal. Faut quand même un minimum de lucidité sur ce qu'on saisit

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Stéphane a écrit:
    Celui qui saisit plusieurs fois le même tag pour le même article, faut vraiment qu'il se pose des questions ^^
    Après que le tag prenne plus de poids s'il apparait plusieurs fois, ça me semble tout a fait normal. Faut quand même un minimum de lucidité sur ce qu'on saisit
    Tu as bien raison sur le fond mais une personne mal intentionnée peut utiliser cet artifice pour laisser apparaître un terme en gros caractères sur le site s'il n'y a pas de modérateur sur les articles... Même si elle se fait bannir par la suite cela peut être dommageable durant un moment.
  • Bonsoir,

    Est-ce que l'astuce marche avec Pluxml 5.1. Je me demandais aussi si il y aurait un plugin ?!
  • A priori Stéphane a déjà développé un tagcloud, donc il devrait être présent en natif dans la 5.1.
  • On a des news sur un possible pluggin ?
  • bg62bg62 Member
    bonjour,
    je teste et reteste la v 5.1 ...
    les tags il est vrai semblent poser problèmes lorsque la liste s'allonge un peu trop (et ça va très vite !)
    où en est-on alors avec cette gestion des tags pour la dernière version ?
    @+
  • @ppMARCEL
    avec la nouvelle version tout est ok et super !!! ;)
    sauf ta version de gestion des tags que j'aimerais bien remettre car plus 'sympa' que cette liste à rallonge que l'on a en natif et la possibilité de mettre une liste plus grande dans une page statique
    si tu pouvais "revoir" ton code ce serait super !!!
    @+
  • Salut bg62,

    J'aimerais bien me replonger sur PluXml, mais je manque cruellement de temps, surtout en ce moment.

    Je voudrais tester la dernière version de PluXml avant de faire des modifications, voire comprendre comment marche le système de plugin pour proposer quelque chose de plus propre.
  • PPmarcel a écrit:
    Salut bg62,

    J'aimerais bien me replonger sur PluXml, mais je manque cruellement de temps, surtout en ce moment.

    Je voudrais tester la dernière version de PluXml avant de faire des modifications, voire comprendre comment marche le système de plugin pour proposer quelque chose de plus propre.
    alors ... go !
    car ta version était vraiment sympa ;)
    on t'attends !!!!
  • Bonjour,

    Y a-t-il du nouveau par ici ? Parce que ça m'intéresserait beaucoup d'avoir cette fonctionnalité !

    Merk6. :)
  • En attendant un plugin, il y a cette solution identique qui fonctionne sous PluXml 5.1.5.
    Ici: http://forum.pluxml.org/viewtopic.php?id=2528
  • Il est vrai que de nos jours, c'est cette présentation qui prédomine, et à juste titre : c'est très pratique! Vivement l'implantation dans PluXML, même si heureusement une solution existe en attendant pour ceux que cela intéresse.
  • bg62bg62 Member
    et maintenant ... (musique;) )
    avec la 5.16 :
    "<?php global $plxShow;
    $plxShow->tagCloud($max='1000'); ?>"
    ... ne fonctionne plus ...
    que mettre dans le codage ?
    @+
  • bankaibankai Member
    Salouté Bg :)

    j'utilise ceci:
    <p><?php $plxShow->tagCloud($max='45'); ?></p> et cela fonctionne mais avec ma façon d'intégration.
  • bg62bg62 Member
    bankai a écrit:
    Salouté Bg :)

    j'utilise ceci:
    <p><?php $plxShow->tagCloud($max='45'); ?></p> et cela fonctionne mais avec ma façon d'intégration.
    merci ;)
    mais là j'essaie de 'migrer' vers la 5.16 et une foule de pages ne fonctionnent plus par rapport à la 5.14
    en sidebar j'ai ceci :
    <h3><?php $plxShow->lang('TAGS') ?></h3>
    <ul>
    <?php $plxShow->tagList('<li class="#tag_status"><a href="#tag_url" title="#tag_name">#tag_name</a></li>', 50); ?>

    <li><a href="?static4/tag-cloud" title="Tous les tags">[ Tous les tags ]</a></li>
    </ul>
    (qui semble fonctionner)
    et qui renvoie vers la page " 004.tag-cloud.php " dans laquelle il y a juste ceci :
    <h2> Liste des TAGS , cliquables, classés par ordre alphabétique.</h2>
    <?php global $plxShow;
    $plxShow->tagCloud($max='1000'); ?>
    et tout plante ...
    "Fatal error: Call to undefined method plxShow::tagCloud() in C:\wamp\www\blog\data\statiques\004.tag-cloud.php on line 3"
    je crise car ce n'est pas le seul problème ....
    @+
  • bankaibankai Member
    mai 2012 modifié
    Je suis en 5.1.6 et elle fonctionne ??
    http://www.site-de-bankai.fr/static6/alltags
  • bg62bg62 Member
    bankai a écrit:
    Je suis en 5.1.6 et elle fonctionne ??
    http://www.site-de-bankai.fr/static6/alltags
    stop ! vais être écoeuré !!!
    je viens de vérifier (en local, mais bon ça ne change rien ...)
    fonctionne toujours pas ^^
    peux-tu regarder les codes que j'ai mis pour voir s'il y a erreur ou pas ?
    (sur le tien : en sidebarr pas de lien vers la page ... normal ?)
    et mille excuses, mais pas reçu de mail de notification ....
    @+
  • bankaibankai Member
    Oui j'ai enlever le lien, il ne me sert pas ^^
    Sinon voici mes codes:

    Dans le fichier class.plx.show.php à la fin (mais avant le dernier } ):
    /** 
         * Méthode qui affiche un nuage de tags.
         * (inspiré de http://www.bytemycode.com/snippets/snippet/415/ )
         * @param   max     nombre maxi de tags à afficher
         * @author  PPmarcel
         **/ 
         public function tagCloud($max) {
    
            $time = @date('YmdHi');
            $array=array();
            # On verifie qu'il y a des tags
            if($this->plxMotor->aTags) {
                # On liste les tags sans créer de doublon
                foreach($this->plxMotor->aTags as $tag) {
                    if($tag['date']<=$time AND $tag['active']) {
                        if($tags = array_map('trim', explode(',', $tag['tags']))) {
                            foreach($tags as $tag) {
                                if($tag!='') {
                                    if(!isset($array[$tag]))
                                        $array[$tag]=1;
                                    else
                                        $array[$tag]++;
                                }   
                            }   
                        }   
                    }   
                }   
            }   
            uksort($array, create_function('$a, $b', 'return strcasecmp($a,$b);'));
            if(intval($max)>0) $array=array_slice($array, 0, $max);
        
            $font_max_size = 24; 
            $font_min_size = 12; 
            $tags_max_qty = max(array_values($array));
            $tags_min_qty = min(array_values($array));  
    
            $tags_spread = $tags_max_qty - $tags_min_qty;
            if ($tags_spread == 0) { // Evitons la division par 0
            $tags_spread = 1;
            }   
    
            // Parametrage de l'incrementation
            $tags_step = ($font_max_size - $font_min_size) / ($tags_spread);
    
            foreach($array as $tagname => $nbtags) {
    
                $tags_font_size = round($font_min_size + (($nbtags - $tags_min_qty) * $tags_step));
                $t = plxUtils::title2url($tagname);
                $tag_url = $this->plxMotor->urlRewrite('?tag/'.$t);
                $tag_status =  $this->plxMotor->cible==$t?'active':'noactive';
                $tag_name = plxUtils::strCheck($tagname);
                $nb_art = $nbtags;
                echo "<a class=\"$tag_status\" href=\"$tag_url\" style=\"font-size:${tags_font_size}px\" title=\"$nb_art articles avec le tag $tag_name\"> $tag_name </a>";
            }
        }
    


    Ensuite dans ma page statique:
    <?php global $plxShow;
    $plxShow->tagCloud($max='500'); ?>
    


    Sidebar:
    <h3><?php $plxShow->lang('TAGS') ?></h3>
    <p><?php $plxShow->tagCloud($max='45'); ?></p>
    

    Et voilà mon cher ami.
  • bg62bg62 Member
    ben voyons ... à l'amende !!!
    je l'avais "zappé' ce fichier à modifier ^^
    enfin, grand merci ça fonctionne !!!
    reste plus que la fonction rechercher :
    http://forum.pluxml.org/viewtopic.php?pid=25764#p25764
    et l'affichage des medias qui me posent problèmes...
    http://forum.pluxml.org/viewtopic.php?pid=25769#p25769
    après je pourrais enfin mettre en ligne :)
    @+
  • @bankai :
    sur ton site
    "
    Fatal error: Call to undefined method plxShow::tagCloud() in /homez.110/mamanmax/www/data/statiques/006.alltags.php on line 2" pour la page de tags ...:)
  • Oui faut que je mette tout cela à jour^^
  • bankai a écrit:
    Oui faut que je mette tout cela à jour^^
    toujours les 'cordonniers' les plus mal chaussés .... ;)
  • Oui cela est vrai :)
Connectez-vous ou Inscrivez-vous pour répondre.