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 !

updated on 2 August 2006

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom