SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 59 visiteurs en ce moment

Accueil du site > Rédaction > Archives Rédaction > Typographie pour avant SPIP 1.9 > Homogénéiser les titres

Homogénéiser les titres

5 janvier 2003 – par marabbeh – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

Toutes les versions de cet article : [français] [français]

1 vote

Petit filtre pour homogénéiser l’apparence des titres sur les sites où interviennent de multiples rédacteurs.

Ce filtre fait 2 choses :
-  il tronque les titres à 60 caractères (sans coupure de mot, donc ça peut dépasser un peu cette limite)
-  il met en minuscules les titres écrits tout en majuscules, et, dans tous les cas, force la 1e lettre en majuscule.

Le filtre s’appelle « titre_homogene » et voici le code :

(Les lignes commençant par un // peuvent être supprimées : elles servent à expliquer le code, au cas où vous voudriez le modifier)

Exemple :


Mais au fait, pourquoi ce filtre : un petite explication s’impose

Pour la maquette de mon premier site SPIP, je me suis inspiré des squelettes par défaut, dont le graphisme avaient une certaine élégance. Le client était content, moi aussi. Jusqu’au jour où est arrivé le « Communiqué de presse du Collectif National des Psychologues de la Fonction Publique Hospitalière » (92 signes). Comme si leurs titres n’étaient pas assez visibles, nos bavards psys se sont mis en tête de les mettre en majuscules…

Pour éviter de tels excès, j’ai écrit ce filtre qui a donc 2 buts :

-  limiter la longueur des titres à 60 signes,
-  forcer les titres en minuscules (avec la 1ère lettre majuscule) pour homogénéiser les titres du site.

Comment utiliser ce filtre ?

Comme tous les filtres : (#TITRE.

Pour le filtre « titre_homogene », ce sera (#TITRE.

Où écrire ce filtre ?

SPIP met à votre disposition un fichier mes_fonctions.php3, vide à l’origine et destiné à recevoir tous vos filtres.

Donc ce fichier ressemblera à ça :

<?php
(tout le code de vos filtres, en particulier celui indiqué dans l'article « Homogénéiser les titres »)
?>

<?php et ?> sont les balises de code PHP. Donc pas de balises HTML en dehors de ces balises PHP.

Si vous n’avez pas d’éditeur acceptant les fichiers PHP, vous pouvez écrire vos filtres avec le Bloc-Note de Windows.

Le filtre titre_homogene

Un filtre appelle une fonction PHP de mes_fonctions.php3, avec un seul argument : le texte à modifier (les filtres peuvent avoir plusieurs arguments à partir de la version 1.42).

Notre filtre appelle donc la fonction titre_homogene(), laquelle fait appel à 2 sous-filtres tronquer_titre et casse_titre qui ont respectivement les fonctions décrites plus haut, et que vous pouvez utiliser individuellement.

Le sous-filtre tronquer_titre

Il tronque le titre à 60 caractères (limite que vous pourrez modifier en changeant la valeur dans la fonction tronquer_titre()), sans coupure de mot. Ca veut dire que si le dernier mot est coupé, le titre est tronqué juste derrière ce mot.

La fonction appelle une fonction couper_texte() qui coupe un texte à la longueur demandée, sans coupure de mot :

function tronquer_titre($texte) {
 return couper_texte($texte, 60);
}

Si le titre est tronqué, "(…)" est rajouté à la fin, pour montrer que le titre n’est pas complet. Evidemment, ça n’a d’intérêt que pour les liens "Dans la même rubrique", par exemple.

Le sous-filtre casse_titre

Ce sous-filtre n’a rien l’intention de casser, mais seulement de changer la casse majuscules du titre en minuscules, avec la 1ère lettre majuscule. Vous jugerez que ce n’est pas vraiment génial de transformer, par exemple : « LA FETE A COTE ! » en « La fete a cote ! » En fait, le but inavoué de ce filtre est de discipliner les rédacteurs afin qu’ils rédigent leurs titres en minuscules. En ce sens, oui, le filtre « casse » les titres majuscules.

La fonction casse_titre() détecte si le titre ne contient aucune minuscule. Si c’est le cas, elle le convertit en minuscules. Puis dans tous les cas, met la 1ère lettre en majuscule.

Si le titre contient un numéro de type « 1. le titre », c’est le 1er caractère suivant ce numéro qui est converti en majuscule.

Compatibilité

Le filtre est compatible SPIP 1.3 et suivants, ainsi que PHP3 et suivants.

P.-S.

Note des admins.
L’utilisation de ce filtre n’est pas conseillée : il est beaucoup plus efficace de FORMER vos rédacteurs à écrire des titres appropriés, cours et sans majuscules. Cependant, ce filtre peut être utile pour certains, alors il a sa place sur spip-contrib.

Retour en haut de la page

Vos commentaires

  • Le 29 octobre 2005 à 13:05, par K-leb En réponse à : Homogénéiser les titres

    Merci de cette contrib. J’ai réutiliser un bout du code pour recréer un filtre « couper » qui garde le formatage du texte. Cela donne le filtre couper_formatage. En plus il ajoute un lien « lire la suite » (c’est pourquoi il utilise deux paramètres.

    pour l’utiliser il faudra donc faire

    (#TEXTE|couper_formatage300,#URL_ARTICLE)

    (en modifiant le 300, qui est le nombre de caracères, mais pas le #URL_ARTICLE

    Voici le code à mettre dans le fonctions.php3 :

    // coupe une chaîne à $limite caractères, sans coupure de mot
    // (un mot est considéré comme un groupe de caractères séparé par des espaces)
    function couper_formatage($texte, $limite,$url) {
     // la longueur du texte est <= $limite, on retourne le texte entier
     if (strlen($texte) <= $limite) return $texte;
     // on fait la coupure avant le 1e espace après $limite caractères
     $texte = nl2br($texte);
     //Il y a parfois des doublons </p><br /> que l'on supprime (ajoute perso)
     $texte = str_replace("</p><br />", "</p>", $texte);
     $pos = strpos(substr($texte, $limite), " ");
     // s'il y a un espace après $limite caractères ou juste après $limite caractères
     // on retourne la partie de $texte jusqu'avant cet espace
     //ajout d'une lien "Lire la suite", ajout perso
     if (is_integer($pos) && $pos) return substr($texte, 0, $limite+$pos) . " (...)"." <a href=\"$url\">Lire la suite</a>";
     // sinon (pas d'espace après $limite caractères ou juste après $limite caractères) on retourne le texte
     else return $texte;
    }

    Répondre à ce message

  • Le 28 mars 2005 à 21:51, par cesium5500 En réponse à : > Homogénéiser les titres

    Bonjour,

    Il y a déjà un bail que cet article a été écrit, j’espère que j’aurai une réponse...

    J’aimerais savoir qu’elles variables modifier pour dupliquer la fonction titre_homogène dans le fichier mes_fonctions.php3.

    En passant cet add-on est très intéressant et surtout, il fonctionne à merveille...

    Merci de cette contribution en mon nom et celui de la communauté...

    cesium

    Répondre à ce message

  • Le 28 février 2003 à 21:46, par EDou En réponse à : > Homogénéiser les titres

     :-)

    Bonsoir ;

    J’aime beaucoup votre anecdote conçernant votre client et je doit dire que ce filtre me sera très utile.

    @+

    EDou

    Répondre à ce message

  • Le 20 janvier 2003 à 11:54, par ? En réponse à : > Homogénéiser les titres

    Réponse au message de Marcello :

    Tous les filtres persos sont dans le fichier mes_fonctions.php3. Ce fichier doit commencer et finir par des tags PHP :

    <?php

    Les filtres

    ?>

    Répondre à ce message

  • Le 20 janvier 2003 à 10:32, par marcello En réponse à : > Homogénéiser les titres

    Je cherche à comprendre spip pour créer mes propres squeletes.Onle met ou ce filtre ? :0)

    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

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.

  • Navigation AJAX

    31 janvier – 18 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet de modifier automatiquement une parties des liens internes de manière à ce qu’ils ne déclenchent pas un chargement complet de la page cible, mais un chargement en AJAX de certains éléments spécifiés à l’avance. Il permet aussi de (...)