[5.0.1] Tri des tags alphabetique non fonctionnel

PPmarcelPPmarcel Member
Bonjour.

J'essayais de voir si le tri des tags se faisait par ordre alphabetique s'effectuait bien.

Malheureusement il semble que non:

screenshotuk.png

Je suppose que natsort trie la clé associé à chaque élément de l'array, qui lui doit probablement incrémenter à chaque nouveau tag crée.

Réponses

  • Je remonte le fil pour qu'il ne soit pas oublié.
    Le site de Benpro présente le même problème de classement non-alphabetique.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Peux-tu essayé en remplaçant dans le fichier core/lib/class.plx.show.php, dans la fonction tagList
    natsort($array);
    
    par
    uksort($array, create_function('$a, $b', 'return strtolower($b)<strtolower($a);'));
    
    Merci

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • joomjoom Member
    août 2010 modifié
    Bonjour,

    Stéphane j'ai testé ton nouveau code, çà fonctionne pas j'ai un message d'erreur
    Parse error: syntax error, unexpected T_VARIABLE in /homez.228/monsite/www/core/lib/class.plx.show.php(1192) : runtime-created function on line 1

    Warning: uksort() [function.uksort]: Invalid comparison function in /homez.228/monsite/www/core/lib/class.plx.show.php on line 1192
  • StéphaneStéphane Member, Former PluXml Project Manager
    et avec plutot cette ligne ?
    uksort($array, create_function('$a, $b', 'return strcasecmp($a,$b);'));
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • joomjoom Member
    Oui çà fonctionne bien si dans les Mots clés aucun ne commence par une lettre "accentuée", sinon tous les mots commençant par é, ê, ect ... sont placés en fin :(
  • je remonte ce topic car je n'ai pas l'impression que ça marche chez moi ... :(
    j'appelle la fonction comme ça:
    [== PHP ==]
    <?php $plxShow->tagList('<li class="tag"><a class="#tag_status" href="#tag_url" title="#tag_name">#tag_name</a></li>'."\n", '100', 'alpha'); ?>
    
  • hello,

    j'ai trouvé le bug :
    en fait si le "mot clef" comporte un espace (ex : "jambon cru" ),
    la clef du tableau en comporte aussi.
    Du coup le tri ne se fait pas.

    Pour fixer le bug :
    dans le fichier class.plx.show.php, dans la fonction tagList
    [== PHP ==]
    if(!isset($array['_'.$tag])) {
    	// ancienne ligne :: $array['_'.$tag]=array('name'=>$tag,'url'=>$t,'count'=>1);
    	$array['_'.$t]=array('name'=>$tag,'url'=>$t,'count'=>1);
    }
    
Connectez-vous ou Inscrivez-vous pour répondre.