Ajouter une lettrine aux articles

Ce petit filtre, très simple à installer vous permettra de donner encore plus de classe à vos articles.

VOICI un filtre qui détecte la première lettre du premier paragraphe de l’article et qui la transforme en lettrine.

Vous trouverez ici un exemple en ligne du résultat:
http://www.illico.org/article.php3?...

Le filtre peut fonctionner en mode caractère ou en mode image.

En mode caractère il applique un tag
<font size="+3">...</font>, en mode image il remplace le caractère par une image, s’il trouve celle-ci dans le sous-répertoire lettrines/.

En mode image, le texte peut être ajusté au choix sur le haut ou sur le bas de la lettrine. Un jeu d’images est fourni pour faire les tests.

Vous êtes pressé d’essayer? Pas de problème:

-  téléchargez l’archive jointe à cet article, et décompressez-la sous la racine de votre site. A ce stade, vous aurez déjà fait les trois quarts du travail.

-  Ajoutez la ligne

require("lettrines.php3");

dans votre fichier mes_fonctions.php3.

-  Dans vos squelettes, il vous reste à utiliser le filtre de la manière suivante

(#TEXTE|lettrine)

-  Videz le cache.

Si ça ne marche pas, et après avoir vraiment tout essayé, lisez donc le fichier README_lettrines :-)

Ah! et si vous avez le cœur à l’ouvrage, il y a aussi un TODO_lettrines à lire...

A vous de jouer.

Discussion

18 discussions

  • Salut

    Script qui fonctionne très bien, mais attention si on utilise les images il faut ajouter un border=0 pour éviter d’avoir un cadre autour de l’image, si le texte est un lien.

    ligne 44 : “img border=0 src=\”lettrines/" .......

    Reply to this message

  • 1
    Noé de Naama

    Je voudrais juste signaler que la technique qui conssiste à créer une lettrine grace à une image rend le texte inaccessible aux personnes utilisant la synthèse vocale (les aveugles par exemple). Elle diminue aussi le référencement puisque les mots utilisants cette lettrine ne seront pas correctement indexé par le moteur de recherche. Quand aux utilisateurs de navigateur en mode texte seul il risque de trouver la lecture des articles un peu “speciale”.

    Pour la création de lettrines il existe une pseudo-classe css pourquoi ne pas l’utiliser ?

    • Je pense qu’il suffirait d’ajouter la balise ALT dans le tag image.

    Reply to this message

  • 2

    Salut,

    J’ai installé sans problème le filtre “Lettrine”.
    Par contre, ce sont tous les premiers mots de mes articles qui passent en majuscule et la première lettre en taille supérieure ...

    Exemple : “Quand j’étais plus jeune” est transformé en
    QUAND j’étais plus jeune

    Pas sûr que cela soit le comportement voulu ?

    • Kangourous Basket

      Salut et Merci @ l’auteur!!,

      Pour le premier mot en majuscule, modifier lettrines.php3 (ligne 49):

      return ($debut . "<font size=\"+3\">" . $I . "</font>" . $fin);

      vers

      return ($debut . "<font size=\"+3\">" . $I . "</font>" . strtolower($fin));

      Je ne parviens pas à utiliser directement le CSS first-letter sur (#texte) autrement qu’avec les balises <p> </p>. Celà a malheureusement pour effet de “lettriniser” tous les débuts de paragraphes.
      Une idée?

      @+
      Kangourou

    • Je pense qu’utiliser les CSS est plus judicieux, mais je n’ai pas encore testé.

      Pour les Letrines, j’ai entendu dire que justement, les autres lettres du mot devaient être en majuscule, d’après des règles typographiques...

      On va dire que c’est une nouvelle fonctionnalité, pourvu que l’on ai le choix.

      Effectivement, les “first-letre” du CSS ne peut s’appliquer qu’après un

      , les
      étants considérés que comme des simples retours à la ligne, (et non des sauts de paragraphes).
      Or les letrines, c’est pour les paragraphes.

      De plus, l’interprétation des CSS varie selon le navigateur et le système.

      PS: pour les tailles ou les positions: utilisez les px (pixels), sinon vous aurez de très désagréables surprises. (avec des unités de mesures en px les différences d’affichages entre navigateurs sont moindres)

    Reply to this message

  • Mouzila

    J’utilise le filtre de découpage d’un article en plusieurs pages et je me suis retrouvé avec le problème suivant : comment faire pour appliquer le filtre lettrine sur le premier mot de mes pages suivantes ?

    Il suffit simplement de placer le filtre lettrine comme suit :(#TEXTE*|decouper_en_page|lettrine)

    Reply to this message

  • Super !!
    Ca marche tres bien !
    sauf que j’avais compris qu’il fallait decompresser le tout dans le repertoire lettrines, du coup le chemin de require n’etait plus bon, mais une petite correction plus tard et ...
    BRAVO

    Reply to this message

  • Philippe Allart

    Si, si, c’est le comportement prévu, comme donné en exemple dans mon article.

    En fait je ne suis pas typographe, alors j’ai pris modèle sur des bouquins.

    Mais ce n’est pas une règle. Donc je vais mettre ça en option dans la prochaine version.

    Pour ceux qui sont pressés, il suffit de modifier les lignes suivantes dans lettrines.php3:

    Avant:

     // On met le premier mot en majuscules
            ereg("^([^ &]*)(.*)$", $fin, $parties);
            $fin = strtoupper($parties[1]) . $parties[2];

    Après:

     // On met le premier mot en majuscules
     //       ereg("^([^ &]*)(.*)$", $fin, $parties);
     //       $fin = strtoupper($parties[1]) . $parties[2];

    ou, plus radical, de les supprimer, tout simplement.

    Reply to this message

  • Philippe Allart

    Il y a un petit problème avec le site exemple: la table spip_articles a été abimée, et je n’arrive pas a restaurer: mysql reste bloqué au moment de recharger la table des articles.

    C’est encore SPIP 1.3.2

    Je vais essayer de restaurer sur un autre serveur.

    Désolé pour le contre-temps.

    Ph.

    Reply to this message

  • Voici le message d’erreur que retourne le site exemple :-(
    BOUCLE_principale SELECT articles.id_article, articles.id_rubrique, articles.id_secteur, articles.surtitre, articles.titre, articles.soustitre, articles.date, articles.date_redac, articles.visites, articles.statut, articles.accepter_forum, articles.texte,articles.descriptif FROM spip_articles AS articles WHERE articles.id_article NOT IN (0) AND articles.id_article=’64’ AND articles.date BOUCLE_principale

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom