SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

94 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Navigation > Tris Alphabétiques > Créer un index alphabétique (bis)
[15 commentaires]

Créer un index alphabétique (bis)

mercredi 2 août 2006, par claudeD

0 vote

Une nouvelle version d’une boucle qui permet de publier un index de résultats, trié par ordre alphabétique, dans un site en charset=iso-8859-1.

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.

Retour en haut de la page

15 Messages de forum

Voir toute la discussion

Pages 1 | 2

  • Répondre à ce message

    29 mars 22:31 , par FBSES

    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

    29 mars 19:41 , par claudeD

    bonjour,

    je ne comprend pas exactement la question. S’agit-il de trier les titres sur la page de sommaire ?

  • Répondre à ce message

    26 mars 23:32 , par FBSES

    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

    16 août 2008 19:31

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

  • Répondre à ce message

    5 mai 2007 00:28 , par claudeD

    Je n’ai plus de version en 1.8 pour vérifier

    peux-tu envoyer une adresse de la page, voir s’il n’y a pas autre chose qui parasite ?

    Claude

  • Répondre à ce message

    6 avril 2007 11:55 , par spipopup

    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

    3 janvier 2007 12:49 , par claudeD

    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

    3 janvier 2007 11:49 , par jolinard

    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

  • Répondre à ce message

    2 janvier 2007 17:00 , par claudeD

    bonjour,

    il faudrait au moins la boucle pour voir

    claude

  • Répondre à ce message

    2 janvier 2007 15:07 , par jolinard

    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

Pages 1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici