SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Navigation > Tris Alphabétiques > Créer un index alphabétique (bis)

Créer un index alphabétique (bis)

2 août 2006 – par claudeD – 17 commentaires

4 votes

Cette contribution propose une boucle qui permet de faire une page de listant vos articles par ordre alphabétique, avec un bloc par lettre.

Afin d’alléger le code que j’utilise pour mes tris alphabétiques, j’ai repris à la base ma contribution sur le tri alphabétique que j’ai panaché avec celle sur affectation automatique d’articles à une brève.

L’astuce, est de créer une série de brèves nommées A, B, C, etc. Dans le corps du texte je mets mes variantes diacritiqes et majuscules/minuscules.

Pour que cette contribution marche, il faut créer les brèves suivantes :

TITRE TEXTE
A aAæÆâÂäÄ
B bB
C cCçÇ
D dD
E eEéÉèÈêÊëË
F fF
G gG
H hH
I iIïÏîÎ
J jJ
K kK
L lL
M mM
N nNñÑ
O oOôÔöÖ
P pP
Q qQ
R rR
S sS
T tT
U uUûÛüÜ
V vV
W wW
X xX
Y yYÿ
Z zZ

Le titre des brèves sera utilisé comme titre de chaque section dans le tri des articles. Le texte contient la liste des lettres qui doivent être la première lettre du titre des articles a afficher dans cette section. Vous pouvons donc changer les sections et les tris en fonction de vos besoin en modifiant ces brèves.

Je peux mettre ma série de brèves dans une rubrique « Tris » ad hoc — ici la rubrique n° 14, si vous utilisez une autre rubrique, pensez bien à changer l’id_rubrique dans le code proposé — et leur garder un statut « brève proposée » pour que la rubrique ne s’affiche pas dans l’espace public. Cette base de brèves me permet d’appeler mon tri depuis n’importe où (rubrique, mot, article, site, etc.) et de l’utiliser plusieurs fois dans un même site.

Il n’y a pas photo, pour le même résultat : un exemple visible était ici [1].

P.-S.

Je rappelle la remarque de la première contrib sur les tris alphabétiques :

Attention, si votre site est en utf-8, les lettres accentuées vont se placer entre le aA et le bB (sauf œ, Œ et « Y tréma » qui se placent à la suite de l’alphabet). Les majuscules puis les minuscules. Il n’est donc pas recommandé d’utiliser cette boucle sur ce paramètre sauf à supprimer les signes diacritiques en initiale. Celà ne présage pas d’autres surprises pontuelles pour les 2e-3e... lettres suivantes aussi utilisées pour le tri.

Notes

[1/ !\ attention !, ce site est depuis passé en utf-8 ce qui rend la contrib caduque. Elle ne fonctionne, en effet, qu’avec un charset iso-8859-1.

Dernière modification de cette page le 13 avril 2008

Retour en haut de la page

Vos commentaires

  • Le 26 juillet 2015 à 23:24, par chris En réponse à : Créer un index alphabétique (bis)

    Bonjour

    Voici ma boucle, j’ai un phénomène assez étrange avec ce script,
    a savoir tout les articles de la rubrique 22 commençant par P ou p
    se retrouve dans tout les résultats.

    A
    -  Anatole
    -  Patrick
    -  Patricia

    B
    -  Patrick
    -  Patricia

    C
    -  Patrick
    -  Patricia

    D
    -  Dominique
    -  Daniel
    -  Patrick
    -  Patricia

    Voici mon script :

    1. <div>
    2. <BOUCLE_titre_alpha(BREVES) {id_rubrique=1} {statut=prop} {par titre} >
    3. <B_article_alpha>
    4. <strong>#_titre_alpha:TITRE</strong>
    5. <ul>
    6. <BOUCLE_article_alpha(ARTICLES){id_rubrique=22}
    7. {titre==^[#_titre_alpha:TEXTE]} {par titre} >
    8. <li><a href="#URL_ARTICLE">#TITRE</a></li>
    9. </BOUCLE_article_alpha>
    10. </ul>
    11. </B_article_alpha>
    12. </BOUCLE_titre_alpha>
    13. </div>

    Télécharger

    • Le 2 août 2015 à 07:52, par claudeD En réponse à : Créer un index alphabétique (bis)

      bonjour,

      je viens d’essayer ton code. Je n’ai pas ce problème chez moi. Peux-tu vérifier le contenu des champs de tes brèves, s’il n’y a pas un copié-collé qui est resté à parasiter un champ.

    Répondre à ce message

  • Le 29 mars 2009 à 22:31, par FBSES En réponse à : Créer un index alphabétique (bis)

    Merci d’engager la discussion.

    Je vais me faire plus précis sur la conception du site : dans les rubriques « notions » et « citations », les articles sont (seront) classés par sous rubriques, chacune reprenant un thème du programme (cf colonne de gauche). Mais je souhaiterais un article dans chacune de ces rubriques dans lequel soient classés par ordre alphabétique tous les articles qui y sont publiés (cf colonne de droite).

    Je souhaiterais aussi classer par ordre alphabétiques les auteurs (article colonne de droite), par ailleurs classés par disciplines dans la rubrique « auteurs » (colonne de gauche)

    Mais un site vaut mieux qu’un de long disours :

    http://dico.fbses.webou.net/

    (sur la page d’accueil apparaissent les 15 derniers articles, toutes rubriques confondues)

    Il y aurait donc trois classements alphabétiques : pour les notions, les citations et les auteurs.

    Je n’ai pas compris ds quel fichier (spip ? ou celui de mon squelette EGT ?) insérer votre boucle pour faire apparaître ces classements alphabétiques. D’ailleurs, puis-je bien les faire apparaître dans un article ?

    Merci de votre réponse

    FBSES

    Répondre à ce message

  • Le 26 mars 2009 à 23:32, par FBSES En réponse à : Créer un index alphabétique (bis)

    Bonjour,

    je suis nul de chez nul... malgré un site fourni :

    http://fbses.webou.net/

    J’aimerais maintenant créer un index de notions à l’adresse suivante : http://dico.fbses.webou.net/

    Mais ... dans quel fichier copier votre boucle ?

    Merci

    Répondre à ce message

  • Le 16 août 2008 à 19:31, par ? En réponse à : Créer un index alphabétique (bis)

    Bonjour, je voudrais faire la même chose mais avec les surtitres. Est-ce possible ?
    Merci d’avance.

    Répondre à ce message

  • Le 6 avril 2007 à 11:55, par spipopup En réponse à : Créer un index alphabétique : expression regulieres

    j’ai un probleme avec l’expression reguliere :

    titre==^[#_titre_alpha:TEXTE]

    le debug me donne :

    SELECT articles.id_article, articles.descriptif, articles.soustitre, articles.titre, articles.lang

    FROM spip_articles AS articles

    WHERE (articles.id_rubrique = ’19’)

    AND (articles.titre REGEXP ’Z’) ...AU LIEU DE REGEXP ’^Z’

    AND articles.statut=’publie’

    ORDER BY articles.titre

    ni ^ (qui prend le 1er caractere d’un mot) ni d’ailleurs [ ] (qui séparent les caracteres) ne sont pris en consideration

    je suis sur spip 1.8.1 (les expressions regulieres sont utilisable avec 1.8)

    je ne comprends pas. une idée ? merci

    Répondre à ce message

  • Le 30 décembre 2006 à 21:08, par jolinard En réponse à : Créer un index alphabétique (bis)

    Bonjour,

    D’abord bravo pour cette ingéniosité.
    J’aime beaucoup cette contribution. Cependant, je me demande s’il est possible de faire en sotre que la rubrique ne soit pas définie dans la ligne (ici rubrique 1) et que ce système puisse s’adapter à un fichier rubrique.html.
    merci d’avance.

    Jolinard

    • Le 30 décembre 2006 à 22:32, par claudeD En réponse à : Créer un index alphabétique (bis)

      bonjour,

      il est possible de na pas définir la rubrique. Dans l’exemple, la rubrique 1 est celle dont je veux trier les articles. Je peux vouloir trier dans une ou d’autres ou toutes les rubriques ou la rubrique courante ou suivant d’autres critères (mots-clés etc.)

      La contrib de départ est pour un site où il y a une rubrique plante une oiseaux, une mollusques, une papillons ... et d’autres à venir. Donc un tri rubrique plantes, un tri rubrique autres etc. avec la même série de brèves. Dans les faits d’autres rubriques ont d’autres systèmes de tri pour des raisons diverses. De plus, dans ce site, les tris ne sont pas forcément dans la rubrique de saisie des notices puisque les mêmes articles de la rubrique 1 sont affichées selon plusieurs critères dans au moins 4 rubriques différentes (elles-mêmes vides de tout article :)).

      Dans ta demande, tu souhaiterais que la boucle de tri soit présente dans toutes les rubriques. C’est possible, bien sur, si c’est pertinent pour ton site. En principe, tu devrais remplacer {id_rubrique=1} par {id_rubrique}, en principe !

      claude

    • Le 2 janvier 2007 à 15:07, par jolinard En réponse à : Créer un index alphabétique (bis)

      Bonjour,
      merci de cette réponse. cependant c’est bien ce qui m’est venu à l’esprit dès le début mais du coup j’ai une page blanche. Mais je vais refaire des tests... Qui sait si j’ai fais une autre erreur...
      Merci beaucoup
      Jolinard

    • Le 2 janvier 2007 à 17:00, par claudeD En réponse à : Créer un index alphabétique (bis)

      bonjour,

      il faudrait au moins la boucle pour voir

      claude

    • Le 3 janvier 2007 à 11:49, par jolinard En réponse à : Créer un index alphabétique (bis)

      Fair enough...

      la voilà :

      <h1><BOUCLE_titre_rubrique(RUBRIQUES) {id_rubrique} > [(#TITRE|supprimer_numero)] </BOUCLE_titre_rubrique>
                              </h1>
                          <BOUCLE_lettre_alpha(BREVES) {id_rubrique=22} {statut=prop} {", "}>
                          <a href="#anchor-[(#TITRE)]">#TITRE</a></BOUCLE_lettre_alpha>.</div>
                              <hr>
       
                      <div>    <BOUCLE_titre_alpha(BREVES) {id_rubrique=22} {statut=prop} {par titre} {"
                         <br>
                    "}>
                 <B_article_alpha>
                   <h3>[<a name="anchor-(#_titre_alpha:TITRE)"></a>]#_titre_alpha:TITRE</h3><br>
                   
               </B_article_alpha>
                    <B_article_alpha>
                    </B_article_alpha><B_article_alpha><div><BOUCLE_article_alpha(ARTICLES) {id_rubrique=2} {titre==^[#_titre_alpha:TEXTE]} {par titre}>
                            <li> <a href="#URL_ARTICLE">#TITRE</a><br /> </li>
                             </BOUCLE_article_alpha></div>
               </B_article_alpha>
                     
                                             </BOUCLE_titre_alpha>

      La boucle est exactement la même si ce n’est que les breves sont en rubrique 22. Sinon, la partie qui pose problème est

      <BOUCLE_article_alpha(ARTICLES) {id_rubrique=2} {titre==^[#_titre_alpha:TEXTE]} {par titre}>

      qui ne fonctonctionne pas si je la remplace par id_rubrique.

      J’espère que cela peut vous aider.

      Merci encore et désolé pour mon manque d’attention.

      Bien à vous.

      Jolinard

    • Le 3 janvier 2007 à 12:49, par claudeD En réponse à : Créer un index alphabétique (bis) atention au nom des boucles

      héhé,

      il y a un pataquès dans le nommage des boucles :

      <B_article_alpha>
                  <h3>[<a name="anchor-(#_titre_alpha:TITRE)"></a>]#_titre_alpha:TITRE</h3><br>
                 
              </B_article_alpha>
                   <B_article_alpha>
                   </B_article_alpha><B_article_alpha>

      il y a un peu trop de B_article_alpha ; ça ressemble à des copiés-collés où le renommage n’est pas été terminé :)

      ça ne va pas dire qu’il n’y aura plus de pb hein !

      claude

    Répondre à ce message

  • Le 27 septembre 2006 à 11:00, par B.POIRAUD En réponse à : Créer un index alphabétique (bis)

    Bonjour

    J’ai bien regardé votre exemple, il m’intéresse beaucoup mais il m’inquiète :

    1) un mot de l’index doit-il renvoyer à un article et un seul ?
    2) le contenu de l’index est-il modifiable ? ou automatique ? Peut-on ajouter des mots ou en retrancher ?
    3) comment faire pour qu’un mot de l’index renvoie à plusieurs articles, comme dans un livre où, à la fin, un mot de l’index renvoie à plusieurs pages. Par exemple, dans mon site, j’ai l’expression « plateforme de services » et j’aimerais que cela renvoie à tous les articles où j’en ai parlé. Même chose pour le mot « bowling », etc.

    Est-ce trop compliqué ? Merci d’avance

    B.Poiraud - http://www.journal-la-mee.info

    • Le 27 septembre 2006 à 22:16, par claudeD En réponse à : Créer un index alphabétique (bis)

      Bonjour,

      c’est la question qui est compliquée.

      il y a deux choses.

      cette contrib qui permet, avec un jeu de 26 brèves de se crer plusieurs index de classement dans un site. J’ai écrit une autre contrib de ce genre où l’on classe donc soit par ordre alpha sur une page soit avec une page par lettre. Il y a aussi une très bonne variante (ici), beaucoup plus simple à écrire et à modifier mais avec les mêmes restrictions en utf8.

      la seconde chose c’est créer un index d’expressions prises dans un texte. Il y a la possibilité de rajouter des mots-clés chaque fois qu’un article cite les mots ou expressions voulues. Ceci à chaque création d’article mais bonjour les modifications. Il existe aussi une contribution pour créer un glossaire :

      un autre solution si tu veux un système automatique : créer un groupe de mots-clés par exemple (ou de brèves, d’aricles). Tu y ajoute chaque mot ou expression en titre. Dans un squelette tu mets une boucle (à modifier, détourner et déformer) du genre :

      <B_oiseau_rubrique>
              <div class="menu">
              <div class="rubriques"><div class="menu-titre">Oiseaux visiteurs</div>
                      <ul>
              <BOUCLE_oiseau_rubrique(ARTICLES) {id_rubrique=16} {texte==#_article_principal:TITRE} {par titre}>
      <li>[<a href="#URL_ARTICLE">(#TITRE)</a>]
                      </li>
              </BOUCLE_oiseau_rubrique>
                              </ul>
              </div>
              </div></B_oiseau_rubrique>

      cette boucle me liste l’ensemble des articles d’une autre rubrique où le titre de mon article (ici c’est un article.html, mais ce pourrait être un mot.html ou brève.html) apparait — tel quel — dans la zone texte. Ainsi, si mon article se nomme « plateforme de services », alors il va lister tous les articles de la rubrique 16 où est saisi cette expression. Qu’il y ait des majuscules, des minuscules ou des mélanges, il reconnait l’expression. Celà est d’ailleurs un problème pour moi. AInsi si je cherche « Aurinia », il me ressort aussi « Pseudaurinia » alors que si je pouvais différencier majuscules et minuscules ce problème n’apparaitrait plus. J’aurais toutefois « aurinia » qui trouverait les articles avec « Pseudaurinia ».

      On a là, la limitation habituelle de l’indexation automatique (ou robotisés) par rapport à l’indexation humaine avec des mots-clés, plus longue mais plus efficace dans beaucoup de recherches (pas toutes, hein !). Tu devrais pouvoir tricher en entourant tes expressions par des astériques (ou plutôt un autre caractère qui ne pas perturber les critères entre accolades). Mais, c’est pareil, c’est surtout utile à la saisie pas rétrospectivement sur un fonds important d’articles.

      Il doit y avoir d’autres astuces.

      bon courage d’abord pour éclaircir ma prose

      Claude

    • Le 28 septembre 2006 à 11:11, par B.POIRAUD En réponse à : Créer un index alphabétique (bis)

      Merci, je vais essayer de comprendre ... mais il me faut beaucoup de temps.
      Quand j’aurai trouvé, je le dirai.

      Merci d’avoir répondu de façon détaillée.

      B.Poiraud

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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

  • Metas +

    3 décembre – 10 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Newsletters

    16 janvier 2013 – 378 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 (...)

Ça spipe par là