Liens SPIP et class perso

Fonction qui permet d’appliquer ses propres class de liens dans les texte et les champs de SPIP au lieu des class « spip_in » ou « spip_out ».

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 !

Dernière modification de cette page le 2 août 2006

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?
  • [Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom