Suite à une contrib. touvée sur ce site pour homogénéiser les titres des articles ou rubriques que j’ai installé et testé mais qui fonctionnait partiellement et buggait dans certains cas, j’ai dû demander à un ami de me concocter un nouveau filtre titre_homogene qui permet de :
- couper mes titres à un certains nombres de caractères sans couper le titre en plein milieu d’un mot.
- mettre les titres en minuscules avec la 1ère lettre en majuscule même s’ils ont été écrit en majuscule.
Il fonctionne parfaitement, contrairement à celui de la contrib originale : « Homogénéiser les titres »
Pourquoi un tel filtre ? :
J’utilise la 1.7.0 c’est pourquoi j’ai besoin d’un tel filtre car le filtre couper ne fonctionne pas bien sur cette version.
Le code
Voici le code à ajouter dans votre fichier mes_fonctions.php3.
/*
* +----------------------------------+
* Nom du Filtre : titre_homogene
* +----------------------------------+
* Date : mercredi 31 juillet 2004
* Auteur : Paul S.+ Lilian B.
* Mail : killer.27 AT laposte POINT net
* +-------------------------------------+
* Fonctions de ce filtre :
*
* - limite la longueur des titres à 20 caractères,
* - ne coupe pas les titres en plein milieu d'un mot
* - force les titres écrits en majuscules en
* minuscules et
* - met la 1ère lettre du titre en majuscule
* +-------------------------------------+
* Pour toute suggestion, remarque, proposition d'ajout
* reportez-vous au forum de l'article :
* http://www.spip-contrib.net/article.php3?id_article=640
*/
//début filtre titre_homogène
function titre_homogene($titre) {
$limite=20;
$titre = strtolower($titre);
$titre = ucfirst($titre);
$pos = strrpos($titre, " ");
if ($pos === false)
{
if (strlen($titre) > $limite)
{
$titre = substr($titre, 0, $limite);
return $titre." ...";
}
else return $titre;
}
else
{
if (strlen($titre) <= $limite) return $titre;
else
{
$titre = substr($titre, 0, $limite);
$pos = strrpos($titre, " ");
if ($pos === false)
{
return $titre." ...";
}
else
{
return substr($titre, 0,$pos)." ...";
}
}
}
}
//fin filtre titre_homogène
Quelques explications
Dans le code ci-dessus :
$limite=20 ; détermine à combien de caractères, il faut couper le titre. Modifier 20 par le nombres de caractères souhaités.
Si les points de suspensions " ..." à la fin du titre ne vous plaisent pas, vous pouvez les modifier entre les guillemets dans le code ci-dessus aux 3 endroits.
Ce filtre fait donc bien 5 choses :
- limite la longueur des titres à 20 caractères,
- ne coupe pas les titres en plein milieu d’un mot,
- force les titres écrits en majuscules en
minuscules et
- met la 1re lettre du titre en majuscule,
- coupe arbitrairement le titre si le premier mot dépasse la taille souhaité (par exemple Mon_titre_Spip_à_rallonge devient Mon_titre_Spip_à_ral,).
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.
Si votre fichier est vide, recopier les balises ci-dessous et mettez le code ci-dessus entre ces balises :
<?php
Insérez ici le code
?>
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |