SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 309 visiteurs en ce moment

Accueil > Navigation > Tris Alphabétiques > Index alphabétique > Tri alphabétique des auteurs

Tri alphabétique des auteurs

17 mars 2008 – par erational – 18 commentaires

5 votes

Lister tous vos auteurs par ordre alphabétique selon leur nom

Cet article est une variante de la contribution Tri alphabétique tout en SPIP pour afficher la liste alphabétique de vos auteurs en fonction de leur nom

SPIP stocke le nom dans un seul champ. Les auteurs rentrent généralement le prénom nom et on désire un classement par nom
ex. Marcel Duchamp doit être rangé dans D et non dans M.

Ajout d’un filtre pour récupérer le nom

On crée un filtre (à ajouter dans mes_fonctions.php) pour déterminer la 1re lettre du nom des auteurs.
ex. Marcel Duchamp renvoie D

Intégration dans les boucles

On va utiliser le même principe que la contribution originale à savoir :

  • une boucle pour générer la liste alphabétique
  • une boucle pour stocker les auteurs dans un tableau
  • une boucle pour lister les auteurs correspondant à la lettre passée en paramètre

Note : le critère tout est facultatif, il permet de lister tous les auteurs. Si vous l’enlevez, vous n’afficherez que les auteurs qui ont déjà publiés un article dans l’espace public.

Dernière modification de cette page le 8 décembre 2008

Retour en haut de la page

Vos commentaires

  • Le 19 octobre 2012 à 02:42, par gilcot En réponse à : Tri alphabétique des auteurs

    Une approche pour un SPIP >=2 ? serait d’utiliser le critère fusion (produit la fonction SQL GROUPE BY) avec la fonction SQL LEFT (extraire le nombre de premiers caractères indiqués, ici ce sera 1). Donc :

    <BOUCLE_listalpha1(AUTEURS){par nom}{fusion LEFT(nom,1)}>
     #NOM
    </BOUCLE_listalpha1>

    Depuis SPIP 2, je crois, on peut utiliser pratiquement n’importe quelle fonction PHP comme filtre... on va utiliser la fonction PHP substr pour n’afficher que les lettres (sinon le resultt n’a pas trop de sens) :

    <BOUCLE_listalpha1(AUTEURS){par nom}{fusion LEFT(nom,1)}>
     [(#NOM|substr{0,1})]
    </BOUCLE_listalpha1>

    Maintenant, y a plus qu’a positionner les liens :

    <BOUCLE_listalpha1(AUTEURS){par nom}{fusion LEFT(nom,1)}>
     [(#SET{lalettre,[#NOM|substr{0,1}]})]
     [<a href="[(#SELF|parametre_url{lettre,[(#GET{lalettre})]})]" [(#GET{lalettre}=={[(#ENV{lettre,A})]}|oui)class='on']> [(#GET{lalettre})] </a>
    </BOUCLE_listalpha1>

    Voila, voila.
    (disclamer : boucle non testée, c’est pour exposer le principe... que je rescite cette contrib..)

    Répondre à ce message

  • Le 25 septembre 2008 à 16:45, par Corinne En réponse à : Tri alphabétique des auteurs

    Bonjour,

    Super script et très utile ! est-ce que quelqu’un à régler le problème de l’affichage de la liste alphabétique qui est totalement désordonnée chez moi aussi (et ce malgré le critère par nom), cela fait deux jours que je cherche et je bloque complètement, alors merci d’avance ;=)

    • Le 5 janvier 2009 à 00:13, par alain bourdeau En réponse à : Tri alphabétique des auteurs

      Bonjour,
      Sur un site externe sous spip 2.0.2 j’ai ça comme titre de liste Alpha des auteurs dans la zone administrateur. La liste commence par les administrateurs avant de présenter les rédacteurs.
      A G L M P V Z B C D E F H I J K N O Q R S T U W X Y

      Sur un autre site en local sous Ubuntu avec la même base j’ai une liste alpha normale. Dans ce cas les administrateurs sont mélangés aux rédacteurs !!!
      Comprend qui peux ?
      Merci pour votre aide.
      Alain

    • Le 6 janvier 2009 à 02:07, par ashaszin En réponse à : Tri alphabétique des auteurs

      Bonjour à tous,

      J’ai essayé d’adapter cette contrib aux articles (j’ai une rubrique où mes titres d’articles sont tous sous la forme « Prénom Nom »).
      Cela marche plutôt bien, le seul hic est que, comme Alain Bourdeau et Corinne, j’ai mes ancres de pagination qui ne sont pas triées alphabétiquement.

      J’ai choisi dans un premier temps de contourner cela en écrivant les ancres de pagination en « dur » dans mon squelette. C’est pas génial comme solution (pas très propre), mais ça marche.

      • j’ai supprimé [<a href="[(#SELF|parametre_url{lettre,[(#NOM|lastfirstletter)]})]" [(#NOM|lastfirstletter|=={[(#ENV{lettre,A})]}|?{class='on'})]>(#NOM|lastfirstletter|unique)</a> ] de la boucle BOUCLE_listalpha
      • J’ai inséré 26 liens entre BOUCLE_listalpha et BOUCLE_listalphadeux
        • <a href="[(#SELF|parametre_url{lettre,A})]" [(#ENV{lettre,A}|=={A}|?{class='on'})]>A</a>
        • <a href="[(#SELF|parametre_url{lettre,B})]" [(#ENV{lettre,A}|=={B}|?{class='on'})]>B</a>
        • <a href="[(#SELF|parametre_url{lettre,C})]" [(#ENV{lettre,A}|=={C}|?{class='on'})]>C</a>
        • etc... (notez bien que #ENV{lettre,A} ne change pas d’un lien à l’autre)

      En espérant trouver une solution plus propre prochainement.

    Répondre à ce message

  • Le 8 décembre 2008 à 18:17, par ? En réponse à : Tri alphabétique des auteurs

    formidable mais ya pas de s a Duchamp

    Répondre à ce message

  • Le 9 juillet 2008 à 18:51, par Alexandre En réponse à : Tri alphabétique des signatures

    Pour ceux qui se cassent la tête avec une pagination alphabétique des signatures :

    -  fichier mes_fonctions.php (fichier à créer dans le dossier squelettes, si vous ne l’avez déjà fait) :

    -  dans votre squelette :

    Je ne sais pas si c’est tout à fait propre mais ça marche !

    Et si vous avez des problèmes d’accents utilisez le filtre |utf8_encode ou |utf8_decode (à choisir en fonction du charset de départ) sur la balise [(#NOM)]. Ce qui donne [(#NOM|utf8_encode)]

    Répondre à ce message

  • Le 28 mars 2008 à 20:25, par franz En réponse à : Et quand un auteur a plus qu’un prénom ???

    C’est bien joli, mais la prémisse sur laquelle votre code est basé est fausse : le nom n’est pas nécessairement le second mot de la chaîne. C’est bien sûr très courant dans le monde anglo-saxon, mais on trouve aussi des occurrences en français. Bref, ce procédé n’est pas fiable.

    • Le 29 mars 2008 à 08:45, par erational En réponse à : Et quand un auteur a plus qu’un prénom ???

      En fait si vous lisez bien la fonction, le nom est le dernier « mot » de la chaine, l’auteur pour avoir plusieurs prénoms (ou aucun) :

      • Paul Robert Parker
      • John Jack Gilles Ferreira
      • Inès Fakhir-Négrin
      • Cabu
      • ...

      Par contre, cela peut poser problème avec des noms à particules séparés

      • Pierre La Motte du Petit Bois (retourne Bois)
      • Angus Mac Angus (retourne Angus, dans ce cas, écrire Angus McAngus)
      • Barack Bush Jr
      • ...

      Dernier cas particulier qui peut poser problème :

      • Louis XVI
      • Pie VI
      • ...

      La solution proposée n’est donc pas infaillible mais permet une mise en place facile sans à avoir à renommer tous vos auteurs et reprendre les autres pages de votre squelette. Si vous voulez une solution « parfaite », utiliser la méthode de Fil (voir lien plus bas)

    Répondre à ce message

  • Le 18 mars 2008 à 16:17, par brunol En réponse à : Tri alphabétique des auteurs

    Je cherchai à faire ça depuis un bon moment et voilà que ça semble me tomber tout cuit dans le bec ! Mais... lorsque j’essaye de mettre cette contrib en place sur mon site qui contient 83 auteurs ( 80 6forum et 3 administrateurs) j’ai le message suivant qui se répète 5 fois : "Erreur : filtre « array_merge5 » non défini, _listalpha".

    Si, dans la partie squelette, j’enlève le paramètre tout dans les 3 boucles, j’obtiens la liste de lettre correspondant aux initiales des administrateurs C L, la lettrine A mais après, plus rien ne s’affiche.

    Si, dans la partie squelette, j’enlève le paramètre tout dans la 1re boucle, j’obtiens cette fois-ci toujours bien la liste de lettre correspondant aux initiales des administrateurs C L, la lettrine A et les 4 auteurs dont le nom commence par un A.

    Franchement, je n’y comprends rien. Si quelqu’un à une idée...

    D’avance merci.

    • Le 18 mars 2008 à 16:33, par erational En réponse à : Tri alphabétique des auteurs sous PHP5

      c’est du à l’évolution de la fonction array_merge de php4 à php5

      si vous êtes en PHP4
      utiliser l’exemple de la contrib avec le filtre array_merge

      si vous êtes en PHP5

      1. dans vos boucles remplayer les array_merge par array_merge5
      2. ajouter dans mes_fonctions.php :

      il faudrait écrire un filtre générique indépendant de la version de PHP ....

    • Le 19 mars 2008 à 10:22, par brunol En réponse à : Tri alphabétique des auteurs sous PHP5

      Merci de ta réponse,

      Je n’ai plus de message d’erreur mais au niveau fonctionnement, ce n’est pas encore ça.
      Voici le résultat obtenu :

      B A C L G H O J P M D E S F Y N T R W Z (lettres cliquables (non classées alphabétiquement) qui correspondent bien à toutes les initiales des noms de mes auteurs quoi que je n’ai aucun nom commençant par W)

      A (en lettrine)

      Alfred AGROUN
      Boussad ABGRES
      Jean-Stéphane ANTINIOLLE
      Rezak AYAUDA
      Tchao ASLIHA

      Cet affichage correspond bien aux cinq auteurs dont le nom commence par la lettre A. Par contre, ce sont toujours les mêmes 5 noms qui apparaissent quelque soit la lettre sur laquelle je clique dans la liste proposée.

      Au fait, dans l’article cité plus haut (Tri alphabétique tout en SPIP) il est spécifié qu’il faut être en SPIP 1.9.2 en UTF8 or, je suis bien en SPIP 1.9.2 mais ma base est en Latin1. Le problème viendrait-il de là ? Si oui, comment y remédier ?

      Bruno.

    • Le 19 mars 2008 à 15:34, par erational En réponse à : ordre alphabétique

      1. bien vérifier que vous n’avez pas oublié le tri {par nom} dans vos boucles
      2. essayer de passer votre base en UTF-8
    • Le 19 mars 2008 à 22:45, par brunol En réponse à : ordre alphabétique

      J’ai bien le tri par nom dans mes boucles car j’ai fait un simple copier coller de votre code fourni. J’ai essayé de passer ma table auteur et le champ nom en UTF8 mais ça donne le même résultat (je n’imagine même pas devoir passer toute ma base en UTF8 et gérer tous les problèmes d’accents qui en découlerait dans tous mes articles, mes brèves, etc.)

    • Le 21 mars 2008 à 11:35, par echo En réponse à : ordre alphabétique

      Si cela peut donner une piste à faire en mode SPIP et à adapter ce code est plus court mais moitié en php... il était destiné aux pétitions, merci et pardon à l’auteur de ce code dont j’ai oublié l’adresse...

      1. <BOUCLE_tot(SIGNATURES){id_article}>
      2. </BOUCLE_tot>
      3.  
      4. <h3>Liste par ordre alphab&eacute;tique des #GRAND_TOTAL signataires</h3>
      5.  
      6. <?php
      7. $l=[(#ENV{lettre,a})];
      8. //liste des lettres de l'alphabet...
      9. for ($i=ord("a");$i<=ord("z");$i++){
      10. echo (($l !=chr($i)) ? ('<a href="#URL_PAGE{signatures,id_article=#ID_ARTICLE&lettre='.chr($i).'"><strong>'.mb_strtoupper(chr($i)).'</strong></a>') : mb_strtoupper(chr($i)));
      11. echo " &nbsp; ";
      12. }
      13. ?>
      14. </B_tot>
      15.  
      16. <BOUCLE_signatures_alpha(SIGNATURES) {nom_email==^#ENV{lettre,a}} {par nom_email}>#NOM
      17. </BOUCLE_signatures_alpha>

      Télécharger

    • Le 21 mars 2008 à 11:44, par echo En réponse à : Tri alphabétique des auteurs

      Il me semble qu’il suffit de déclarer l’array avant la boucle,

      #SET{arrayarts,#ARRAY}

    Répondre à ce message

  • Le 17 mars 2008 à 11:58, par Fil En réponse à : Tri alphabétique des auteurs

    Pour obtenir quelque chose de similaire la méthode donnée par Améliorer l’affichage public et la gestion des auteurs et traducteurs d’un site SPIP est plus complète, et à mon sens plus pratique. Elle impose de saisir les noms sous la forme « Nom*Prénom », et explique à SPIP comment remettre les choses à l’endroit au moment de l’affichage.

    • Le 21 mars 2008 à 09:46, par martinus En réponse à : Tri alphabétique des auteurs

      Bonjour,

      Je pense qu’il faut vraiment éviter au maximum tout ce qui est codage arbitraire. Genre ajouter des étoiles au milieu des noms.

      Pour un informaticien, comme toi et moi, c’est facile, mais cela parait souvent trop ardu pour des gens qui n’y sont pas habitués et qui ont pourtant tout à fait vocation à gérer l’ espace privé.

      A mon sens, le mieux serait qu’il y ait en standard dans une prochaine version de SPIP les champs « Prénom » et « Nom », et d’utiliser un plugin attendant.

      Martinus

    • Le 21 mars 2008 à 10:01, par ? En réponse à : Tri alphabétique des auteurs

      Bof pour la mise en standard : perso je préfère un seul champ « nom ou pseudo ». Mais ce qui serait bien c’est qu’on puisse ajouter des champs de façon simple. Tu ajouterais prénom, et ça marcherait directement.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Newsletters

    16 janvier 2013 – 377 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 20 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Zone d’entête Nom du site Slogan si plugin bandeau présent (...)

  • Configurer Sparkpost

    25 avril – 14 commentaires

    N’hésitez pas à relire le préambule de cette rubrique avant de créer un compte sur une plateforme tierce . Présentation Sparkpost est une société d’envoi de mailing https://www.sparkpost.com/ Sur les petits volumes ( <100.000 emails / mois), (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre – commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 58 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

Ça spipe par là