Soph a écrit :
Je ne connais pas tout ce qui est pipeline (je me suis posée mon spip y'a quelques jours seulement) donc c'est effectivement mieux comme ca.
pour l'expression faut jouer avec $1 et $2 mais ca c'est pas un soucis.
sans passer par un pipeline (peut-être un peu lourd, puisque lancé
à chaque appel de la fonction propre()), et sans modifier (forker)
les scripts de spip on peut aussi surcharger
la fonction inc_lien_dist en posant dans mes_options.php :
// quel(s) domaine(s) 'modificateur de classe css' ?
define('_DOMAINE_EXT', 'domaine_ext.tld');
// remplace la classe css 'spip_out' par 'spip_out2'
// pour les liens vers le(s) domaine(s) '_DOMAINE_EXT'
function inc_lien($lien, $texte, $class, $title,
$hlang, $rel, $connect) {
if (preg_match(',('._DOMAINE_EXT.'),Ui', $lien)) {
$class = 'spip_out2';
}
return inc_lien_dist($lien, $texte, $class, $title,
$hlang, $rel, $connect);
}
- d'abord on crée une constante qui contiendra le
nom de domaine que l'on veut voir traité différemment.
ce faisant, on se laisse la possibilité de modifier
la valeur qui lui est affectée.
par exemple pour aussi donner la classe spip_out2 au
domaine 'domaine_ext2.tld', on écrira :
define('_DOMAINE_EXT', 'domaine_ext.tld|domaine_ext2.tld');
- puis on crée une surcharge de la fonction _dist en
lui supprimant son suffixe _dist :
. cette fonction cherche le(s) nom(s) de domaine défini(s) plus haut
dans le lien qui lui est fourni (à la fonction) ;
. puis, si elle trouve ce(s) nom(s) de domaine, affecte la valeur
'spip_out2' à la classe css liée à ce lien ;
. enfin elle appelle la fonction originale de spip
inc_lien_dist en lui passant cette classe nouvellement
renseignée.