Je ne sais pas si cela avait déjà été traité avant mais vu que je n’ai rien trouvé sur le sujet, je me permet de proposer une fonction simple au problème que j’avais.
Problématique :
Dans une même page, vous pouvez avoir plusieurs liens et vous voulez pouvoir appliquer des styles (classes) différents pour plusieurs d’entre eux.
Or la fonction qui transforme
[patati->patata.htm]
va vous coller une class « spip_in » ou « spip_out » et donc limiter votre champ d’action.
Et perso, je n’ai pas trouvé de contrib (sauf erreur de ma part) qui permettait de mettre une ou plusieurs classes à soi.
Petite solution :
1. Rajouter la fonction qui suit dans mes_fonction.php
function lnkclass($texte) {
// suppression des class SPIP
$spipcl = array('/ class="spip_in"/','/ class="spip_out"/');
$nospipcl = array('','');
$texte = preg_replace($spipcl, $nospipcl, $texte);
// inclusion des CLASS perso Part One : début de la CLASS
$texte = str_replace('#+','" class="',$texte);
// inclusion des CLASS perso Part Two : fin de la CLASS
$texte = str_replace('+#','',$texte);
return $texte;
}
2. Puis dans vos champs d’articles ou de rubriques ou autres, vous tapez vos liens de cette manière :
[patati->patata.htm#+NOM DE LA CLASSE+#]
Vous noterez que les signes à rajouter sont #+ et +# et entre eux votre classe.
Vous noterez également qu’en fait les signes qui précédent et suivent la classe peuvent être laissés à votre libre arbitre du moment que vous mettez la fonction à jour et surtout que vous n’empiétez pas sur les raccourcis SPIP
3. Pour finir, dans vos squellettes, vous traitez vos balises avec une fonction comme d’habitude
[(#TEXTE|lnkclass)]
Au passage, la fonction ne supprime que les class « spip_in » ou « spip_out » si elles existent. Vous pouvez parfaitement adapté la fonction pour supprimer d’autres balises. Il suffit de comprendre le système simple de remplacement.
Vous avez deux tableaux (ARRAY) dans les variables « spipcl » et « nospipcl ». La première doit être construite de cette manière :
$spipcl = array("/chaine à remplacer 1/","/chaine à remplacer 2/",...etc); (AVEC BACKSLASHES "/")
et la seconde doit être « symétrique » mais construite de la même manière :
$nospipcl = array("chaine de remplacement 1","chaine de remplacement 2",...etc); (SANS BACKSLAHES "/")
A partir de tout çà vous pouvez faire une fonction « adaptée » pour le traitement des classes des images ou de certaines autres balises.
En espérant que cela puisse servir à ceux qui n’avait pas (mais j’en doute) déjà trouvé une solution similaire.
Ciao tutti !
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 : |