Feuille de style dynamique - des boucles et des balises dans le CSS

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.css devient styles.html (ou styles.css.html pour bien montrer qu’il s’agit d’une feuille de style squelettifiée).
  • les valeurs des attributs doivent être remplacées sur la feuille de style par les balises #CONFIG correspondant 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
#CACHE{3600*24*30}
#HTTP_HEADER{Content-Type: text/css;}

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.

Un problème se pose si on veut modifier la feuille de style avec l’extension web developer : ça 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é sous le nom du squelette html : 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.

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