[SPIP Zone] Zspip et #THEME

Je voulais vous faire un petit retour rapide sur mon utilisation de
zpip et vous signaler une balise crée par marcimat : #THEME qui me
permet de surcharger mes thèmes dans squelettes selon le thème
sélectionné

Soit un site Zpip avec mettons une dizaine de thèmes, et un zen-garden
avec switcher d'activé coté public

Un problème s'est vite posé à moi, comment surchargé les habillage.css
des thèmes et surcharger les squelettes en fonction des thèmes :
exemple tel thème aura une image de bandeau de telle dimension et tel
autre une autre etc …

habillage.css étant surchargé en squelettes/habillage.css chaque
surcharge écraserait celle du précédent thème.

Marcimat est donc venu à mon secours, il m'a crée la balise #THEME,
qui a la même fonctionnalité que celle de tester la présence d'un
plugin, mais là on teste la présence du thème

http://zone.spip.org/trac/spip-zone/changeset/36702

Ce qui peut donc nous donner quelque chose comme par exemple
[(#THEME|=={KeepItSimple}|oui)
<INCLURE{fond=inclure/entete-keepitsimple}{env} /> ]

Au niveau de la CSS, autant surcharger tout dans perso.css qui est
loadée en dernier.
Il faut donc la rendre dynamique de la façon suivante :

[<link rel="stylesheet"
href="(#URL_PAGE{perso.css}|parametre_url{theme,#THEME}|direction_css)"
type="text/css" media="all" />]

Là encore l'astuce de passer |parametre_url{theme,#THEME} dans
l'appel à la CSS vient de marcimat, et cela semble résoudre mon
problème de ccs dynamique qui ne se reloadait qu'au recalcul.

Dans la CSS perso.css.html donc cela donc donne par exemple :

#CACHE{3600*100,cache-client}
#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
#HTTP_HEADER{Vary: Accept-Encoding}

/* Personnalisation css pour KeepItSimple */
[(#THEME|=={KeepItSimple}|oui)
ul#bandeaudusite li{list-style: none;margin-left:-40px;padding-top:50px;}
#entete #slogan_site_spip{color:#fff;}
#entete .accueil #nom_site_spip a{color:#7BA45B;}
]

Un grand merci à marcimat et à Cedric bien sur.
Plus on fait du zspip et plus on apprécie le truc
Alexandra

On 29/03/2010 11:06, Alexandra Guiderdoni wrote:

Je voulais vous faire un petit retour rapide sur mon utilisation de
zpip et vous signaler une balise crée par marcimat : #THEME qui me
permet de surcharger mes thèmes dans squelettes selon le thème
sélectionné
   

Ah tiens, je viens de penser à une autre solution : ajouter une classe CSS «theme_xx» dans <body>. Du coup, ça simplifierait pas mal de chose et éviterait d'avoir une css calculée.

<body class="[...][ theme_(#THEME)]">

et dans perso.css

.theme_KeepItSimple #nom_site_spip{...}

Le principal problème là déjà, c'est que #THEME retourne le nom du répertoire du thème, et non un identifiant précis, donc déjà à la base, c'est pas très géant, mais je n'ai pas trouvé plus simple pour débugguer la miss Alex rapidement (sans parser plugin.xml, ce qui serait très lourd)

Une classe sur le body ne gerera pas la surcharge cote squelettes. Alors que ta premiere methode si.
c'est quoi le désavantage d'une css calculee dans un contexte z ?
Alexandra

Le 29 mars 2010 à 11:34, Matthieu Marcillaud <marcimat@rezo.net> a écrit :

On 29/03/2010 11:06, Alexandra Guiderdoni wrote:

Je voulais vous faire un petit retour rapide sur mon utilisation de
zpip et vous signaler une balise crée par marcimat : #THEME qui me
permet de surcharger mes thèmes dans squelettes selon le thème
sélectionné

Ah tiens, je viens de penser à une autre solution : ajouter une classe CSS «theme_xx» dans <body>. Du coup, ça simplifierait pas mal de chose et éviterait d'avoir une css calculée.

<body class="[...][ theme_(#THEME)]">

et dans perso.css

.theme_KeepItSimple #nom_site_spip{...}

Le principal problème là déjà, c'est que #THEME retourne le nom du répertoire du thème, et non un identifiant précis, donc déjà à la base, c'est pas très géant, mais je n'ai pas trouvé plus simple pour débugguer la miss Alex rapidement (sans parser plugin.xml, ce qui serait très lourd)

On 29/03/2010 12:09, Alexandra Guiderdoni wrote:

Une classe sur le body ne gerera pas la surcharge cote squelettes. Alors que ta premiere methode si.

Je n'ai pas compris ce que tu veux dire.

c'est quoi le désavantage d'une css calculee dans un contexte z ?

Dans le cas 1, on crée 1 CSS perso / thème.
Dans le cas 2, il y a 1 CSS perso pour tous les thèmes, c'est tout.

MM.