C’est un gadget, mais ça m’amuse... Ce filtre permet d’afficher un titre en 2 couleurs, en séparant les mots en 2 parties à peu près égales.
Explications
Le filtre teste d’abord s’il y a l’un de ces caractères ,./-?
dans le titre. Si c’est le cas, la coupure se fait à la suite du premier de ces caractères rencontré.
Si ce n’est pas le cas, le filtre cherche l’espace le plus proche du milieu du titre et fait la coupure à la suite.
Ca donne par exemple :Un gadget : un titre en 2 couleurs
Un gadget : <span class="titre-altern">un titre en 2 couleurs</span>
soit : Un gadget : un titre en 2 couleurs
ouUn titre en 2 couleurs
Un titre en <span class="titre-altern">2 couleurs</span>
soit : Un titre en 2 couleurs
Il est nécessaire d’avoir dans votre feuille de style :
span.titre-altern {
color: #00f;
}
Comment l’utiliser ?
Comme tous les filtres : [(#TITRE|deux_couleurs)]
Le filtre maintenant
function deux_couleurs($titre) {
// met un titre en 2 couleurs en séparant les mots en 2 parties (à peu près) égales
$titre = trim($titre);
// si le titre contient l'un de ces caractères ":", ",", "/", "?", "." suivi d'un espace, on coupe à ce niveau-là
if (preg_match("/[:,\/\?\-\.\-]\s/", $titre))
$titre = preg_replace("/^([^:,\/\?\.\-]+)([:,\/\?\-\.]\s)(.+)$/", "$1$2<span class=\"titre-altern\">$3", $titre,"</span>");
// sinon on cherche l'espace le plus proche du milieu du titre
else {
// s'il y a plusieurs mots : on fait la séparation sur l'espace le plus proche du milieu du titre
$pos = strpos($titre, " ");
if (strpos($titre, " ") !== false) {
$longueur = strlen($titre);
$milieu = ceil($longueur / 2) - 1;
$pos_ap = strpos($titre, " ", $milieu);
$pos_av = $longueur - 1 - strpos(strrev($titre), " ", $milieu);
$milieu = (($pos_ap===false) || (($pos_av!==false) && ($pos_ap-$milieu>=$milieu-$pos_av))) ? $pos_av : $pos_ap;
$titre = substr($titre, 0, $milieu) . "<span class=\"titre-altern\">" . substr($titre, $milieu) . "</span>";
}
}
return $titre;
}
Des exemples sur ce site : http://www.solidaires.org/rubrique7.html
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 : |