Pour paramétrer une feuille de style dans l’espace privé de SPIP sans passer par du code css, on peut utiliser un formulaire CFG qui permettra de saisir les valeurs des attributs que l’on souhaite pouvoir modifier. En paramétrant les autorisations du formulaire, on peut y laisser accéder les administrateurs, les rédacteurs, ou au contraire seulement les webmestres.
CFG doit donc être installé avant tout.
Lien
CFG:Références sur Spip-Contrib
Dans le dossier fonds que l’on aura au besoin créé dans le dossier du squelette ou dans le dossier du plugin CFG, on crée un formulaire avec autant de champs que l’on veut de paramètres.
Chaque champ pourra être appelé dans les squelettes avec une balise #CONFIG{nom_du_formulaire/nom_du_champ}.
Pour utiliser ces balises dans une feuille de style, celle-ci doit être interprétée par SPIP avant d’être envoyée au navigateur :
- la feuille de style doit être renommée avec une extension html
styles.cssdevientstyles.html
- les valeurs des attributs doivent être remplacées sur la feuille de style par les balises
#CONFIGcorrespondant aux saisies du formulaire.
- l’appel de la feuille de style doit être modifié pour appeler un fichier du squelette.
<link rel="stylesheet" href="[(#CHEMIN{styles.css}|direction_css)]" type="text/css" media="screen, projection" />devient
<link rel="stylesheet" href="/spip.php?page=styles" type="text/css" media="screen, projection" />
- des headers css doivent être ajoutés au début du nouveau squelette, ainsi que la valeur du cache le cas échéant
A ce stade ça marche impeccable, les attributs saisis sur le formulaire CFG sont récupérés au moment du calcul de la feuille de style.
Le seul problème rencontré s’est présenté lorsque j’ai voulu modifier la feuille de style avec l’extension web developer. Ca n’est bien sûr plus possible. On peut tant qu’on veut bricoler le css à la volée et avoir un rendu immédiat, mais plus question d’enregistrer directement le fichier css modifié : les valeurs récupérées viendraient écraser les balises, et on perdrait les headers. Il faut donc reporter les modifs sur le squelette si elles ne concernent pas les attributs paramétrables, sur le formulaire sinon.

























