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/" .......

    Répondre à ce 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.

    Répondre à ce 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)

    Répondre à ce 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)

    Répondre à ce 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

    Répondre à ce 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.

    Répondre à ce 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.

    Répondre à ce 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

    Répondre à ce message

Ajouter un commentaire

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.

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom