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 !

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

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