[SPIP Zone] plugin cfg et css

Bonjour à tous.
Premier message et appel à l'aide.
J'essaye de mettre en place des options de configuration pour un squelette. Pour cela, je me penche actuellement sur le plugin cfg.

Et forcément, vu mes maigres compétences, je galère comme c'est pas permis.

Faire la page de configuration n'est pas difficile mais c'est récupérer les valeurs pour les utiliser dans la feuille css qui me pose problème. D'ailleurs, est-ce seulement possible ? Je ne vois partout que des exemples de récupération dans le squelette.

Et, dernière petite question (enfin, je crois), y a-t-il un moyen propre de faire un appel à la page de configuration sans avoir à créer un plugin qui ne sert qu'à ça ?

Merci beaucoup pour les réponses. Enfin, c'est surtout ce qui reste sur mon cuir chevelu qui vous remercie...

Amaury

Bonsoir

Si ta css est un squelette Spip, il n'y aucun raison que cela ne marche pas.
Tu peux regarder l'article
http://www.spip-contrib.net/Coder-un-plugin-simple-avec-cfg

Tu verras comment faire appel à une variable avec #CONFIG{aa/id_aa}

Pour la question d'accès, je crois que tu es obligé de définir un plugin.
A moins que dans les squelettes, le répertoire fonds/cfg_ton_form.html
soit autorisé.
Dans ce cas tu pourrais accéder à ton formulaire de configuration via
?exec=cfg&cfg=ton_form (partie privée)

Si la solution squelette marche, il serait bon de le mettre dans
l'article contrib de cfg.

Km

Si ta css est un squelette Spip, il n'y aucun raison que cela ne marche pas.

là, je ne comprends pas trop. Ma css se trouve dans un répertoire styles du répertoire squelettes. Mes fichiers de squelette ne font qu'y faire appel.

Tu peux regarder l'article
Coder un plugin simple avec cfg - SPIP-Contrib

En fait, c'est ma bible.

Tu verras comment faire appel à une variable avec #CONFIG{aa/id_aa}

C'est ce que j'essaye d'utiliser dans le fichier css sans résultats

Pour la question d'accès, je crois que tu es obligé de définir un plugin.
A moins que dans les squelettes, le répertoire fonds/cfg_ton_form.html
soit autorisé.
Dans ce cas tu pourrais accéder à ton formulaire de configuration via
?exec=cfg&cfg=ton_form (partie privée)

mon formulaire est dans /squelettes/fonds/ comme c'est autorisé par cfg. C'est juste que je ne peux pas y mettre de pipeline pour créer un bouton pour faciliter l'accès depuis l'interface privée (ne pas avoir à retaper l'adresse, je suis un gros fainéant et en plus certains pourraient trouver ça pénible)

En tout cas merci de m'avoir apporté des réponses aussi rapidement.

Amaury

bonsoir

> Tu verras comment faire appel à une variable avec #CONFIG{aa/id_aa}
C'est ce que j'essaye d'utiliser dans le fichier css sans résultats

Un fichier css normal n'a pas acces aux balises spip car ce n'est pas
alors un squelette.

Si j'ai bien suivi tu veux utiliser des balises de cfg directement
dans ta feuille de style.
Si tel est le cas, il faut utiliser un squelette qui utilisera la
balise #HTTP_HEADER
(Les balises propres au site - SPIP)

et ce squelette css sera à appeler via un INCLURE

> Dans ce cas tu pourrais accéder à ton formulaire de configuration via
> ?exec=cfg&cfg=ton_form (partie privée)

mon formulaire est dans /squelettes/fonds/ comme c'est autorisé par
cfg. C'est juste que je ne peux pas y mettre de pipeline pour créer
un bouton pour faciliter l'accès depuis l'interface privée (ne pas
avoir à retaper l'adresse, je suis un gros fainéant et en plus
certains pourraient trouver ça pénible)

Dans ce cas tu vas devoir utiliser la derniere version de cfg (1.0.4).
Avec cette version il y a un acces via l'onglet configuration. à peut
etre coupler avec la version svn de spip.

km

Tu verras comment faire appel à une variable avec #CONFIG{aa/id_aa}
C’est ce que j’essaye d’utiliser dans le fichier css sans résultats

Un fichier css normal n’a pas acces aux balises spip car ce n’est pas
alors un squelette.

Si j’ai bien suivi tu veux utiliser des balises de cfg directement
dans ta feuille de style.
Si tel est le cas, il faut utiliser un squelette qui utilisera la
balise #HTTP_HEADER
(http://www.spip.net/fr_article1902.html#HTTP_HEADER)

et ce squelette css sera à appeler via un INCLURE

Je dois avouer ne pas avoir compris à quoi sert cette balise ni ce dont tu me parles

La balise #HTTP_HEADER{argument} (depuis SPIP 1.9) permet de modifier l’entête HTTP de la page retournée par SPIP. Exemple : #HTTP_HEADER{Content-Type: text/css}. Attention ! Le fait d’utiliser cette balise supprime les boutons d’administration. Cette balise ne peut pas être utilisée dans des squelettes inclus via la syntaxe .

Pour information, je travaille sur le squelette Durzy (accessible sur la zone) qui est basé sur un maximum d’INCLURE pour alléger chacun des fichiers et permettre une meilleure maintenance. Notre head a cette forme là :

[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)] []

qui appelle donc inc-head qui lui a cette forme là :

#CACHE{86400}

[(#REM)
Entete standard de toutes les pages ; les elements specifiques
(title, description) figurent dans le squelette article.html
]

[(#REM) Preciser le charset ]

[(#REM) Fierement fabrique avec SPIP ]

[(#REM) Lien vers l’icone destinee a la barre de bookmarks ]
[]

[(#REM) Lien vers le flux RSS du site ]

[(#REM) Feuilles de style CSS pour l’affichage du site a l’ecran ]

[(#REM) Feuille de style CSS pour l’agenda ]

[(#REM) Balise permettant aux plugins d’inserer des appels javascript ou css ]
#INSERT_HEAD

[(#REM) Bibliothèque Jquery]

[(#REM) Styles spécifiques pour Jquery (à intégrer dans styles.css à terme) ]

Au final, je ne sais pas quel fichier il faut modifier et si tout ce qui est basé sur des INCLURE doit être supprimé (il faut avouer que ça m’embêterait un peu), si je dois mettre cette balise dans le head de mes pages sommaire/article/rubriques/breves/auteurs et appeler les css par des INCLURE ou je ne sais trop quoi encore.

Oui, je suis très perturbé là mais je crois que ça se sent dans mes propos, le désespoir me gagne.

Dans ce cas tu pourrais accéder à ton formulaire de configuration via
?exec=cfg&cfg=ton_form (partie privée)

mon formulaire est dans /squelettes/fonds/ comme c’est autorisé par
cfg. C’est juste que je ne peux pas y mettre de pipeline pour créer
un bouton pour faciliter l’accès depuis l’interface privée (ne pas
avoir à retaper l’adresse, je suis un gros fainéant et en plus
certains pourraient trouver ça pénible)

Dans ce cas tu vas devoir utiliser la derniere version de cfg (1.0.4).
Avec cette version il y a un acces via l’onglet configuration. à peut
etre coupler avec la version svn de spip.

Merci, j’avais en effet pris cette version mais je ne comprenais pas vraiment l’intérêt. Je peux maintenant me défaire de mon plugin inutile !

Pourquoi tout ça ? Juste pour pouvoir permettre à d’autres de choisir l’aspect des puces de certaines listes, la largeur du site, le background des pages, la position des cadres dans les pages, leur forme et leurs couleurs tout ça sans avoir à toucher une ligne de code.

@+
Amaury

Bonjour

Bon là je vais repondre avec un (gros) poil de pifométrie.

Essaye de faire un fichier style.html que tu met dans le repertoire squelettes/

Dedans tu met en debut de fichier #HTTP_HEADER{Content-Type: text/css}
Sur la suite tu écris en css avec les balises #CONFIG.

-> à ce stade tu as une feuille de style basé sur un squelette spip.

Dans ton ficher inc-head tu ajoutes dans la page
<link rel="stylesheet" href="[(#URL_PAGE{style})]" type="text/css"
media="projection, screen, tv, print" />

--> inc-head devrait charger ton squelette css comme il faut. Enfin je crois.
Comme on ne supprime pas les autres appels au css, si tu surcharge des
styles, il ne faut pas oublier d'utiliser la directive css !important
sur les styles concernés

là je viens d'atteindre mes limites :slight_smile:

Km