SPIP ecureuil




Thème de ce forum :

récupérer n° de rubrique dans fichier css



momax
récupérer n° de rubrique dans fichier css
10 janvier 2009 18:29

Bonjour,

J’ai créé un fichier css (style.css.html) que j’appel depuis mes pages par

<link rel='stylesheet' href='spip.php?page' =style1.csstype='text/css'
media='all' />

j’aimerais récupérer les informations de la rubrique ou de l’article en cours dans mon fichier CSS, surtout le numéro. j’ai essayé de faire une boucle toute simple, sans aucun résultat.

Quelqu’un a une idée ?

d’avance merci

Rechercher dans les forums:
 

denisb
10 janvier 2009 21:39
récupérer n° de rubrique dans fichier css

ha. intéressante question...

il te faut faire plusieures choses :

- dans ton squelette rubrique.html, passer l’id de rubrique au squelette qui affiche tes appels de feuille de style (inc-head.html) :

<INCLURE{fond=inc-head} {id_rubrique}>

- dans ce inc-head.html, faire un appel spécifique de ta css perso :

[<link rel="stylesheet" href="(#URL_PAGE{perso.css,id_rubrique=#ENV{id_rubrique}})" type="text/css" media="all" />]

- enfin, bâtir ainsi ta feuille de style qui se nommera perso.css.html :

[(#REM)
 Ce squelette definit mes styles perso
 Note: l'entete "Vary:" sert a repousser l'entete par
    defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
    genant en cas de "rotation du cookie de session" apres
    un changement d'IP (effet de clignotement).
 ATTENTION: il faut absolument le charset sinon Firefox croit
    que c'est du text/html !
]
#CACHE{3600*100,cache-client}
#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
#HTTP_HEADER{Vary: Accept-Encoding}

body {
 background-color:yellow !important;
 margin:[(#ENV{id_rubrique})]em;
}
momax
10 janvier 2009 22:29
récupérer n° de rubrique dans fichier css

merci beaucoup pour cette réponse je test ça en début de semaine et je vous fait pars des résultats

encore merci

momax
13 janvier 2009 16:54
[RESOLUS] récupérer n° de rubrique dans fichier css

Merci beaucoup pour cette astuce ça marche nickel !

Hemei
27 janvier 2009 09:48
récupérer n° de rubrique dans fichier css

Bonjour,

J’ai à peu près la même problématique que momax (cf. question sur le forum).

Ma feuille de style est censée personnaliser certaines couleurs en fonction de l’id de la rubrique dans laquelle l’article est situé (c’est une feuille de style en PHP).

J’ai bien insérer dans inc-head.html la feuille de style en question en utilisant la variable #ENV, mais j’ai une question concernant le code donné par denisb et devant être placé dans le fichier CSS :

body {
background-color:yellow !important;
margin:[(#ENV{id_rubrique})]em;
}

Qu’est censé renvoyer le code [(#ENV{id_rubrique})] exactement ?

Ma question est sans doute naïve (voire même stupide), mais je débute sous Spip et j’ai vraiment besoin de comprendre je crois si je veux sortir de l’impasse dans laquelle je suis...

Merci d’avance à ceux qui voudront bien me répondre...

denisb
27 janvier 2009 10:48
récupérer n° de rubrique dans fichier css

#ENV{id_rubrique} est la valeur de la variable id_rubrique présente dans l’environnement (équivaut à peu prés à $_GET['id_rubrique'] de php.
en passant la variable en url lors de l’appel de la feuille de style, on peut alors, dans celle-ci, retrouver et utiliser sa valeur.

Hemei
27 janvier 2009 12:18
récupérer n° de rubrique dans fichier css

Merci pour cette réponse. Ce qui signifie donc que si on est dans la rubrique 3, #ENV{id_rubrique} va renvoyer la valeur 3, c’est exact ?

Si oui, quel est l’intérêt du code donné dans l’exemple : margin:[(#ENV{id_rubrique})]em; ?

Quelque chose doit m’échapper. A moins que ce n’ait été donné que pour l’exemple justement et qu’il ne faille pas chercher plus loin...

denisb
27 janvier 2009 12:37
récupérer n° de rubrique dans fichier css

c’était juste pour l’exemple.
l’intérêt de marger différemment en fonction de la rubrique étant assez limité...

 
:-)
denisb
27 janvier 2009 14:23
récupérer n° de rubrique dans fichier css

mais ça permet :

body {
[color:(#ENV{id_rubrique}|match{^(1|2|10|65)$}|?{red,navy});]
}

dont l’intérêt devient plus évident...

Hemei
27 janvier 2009 14:56
récupérer n° de rubrique dans fichier css

Merci beaucoup pour ta réponse, ça me rassure...

Juste pour être sûre d’avoir bien compris (j’abuse un peu de ta patience denisb, désolée, mais c’est l’occasion pour moi de creuser les concepts spipens ^_^) :

Le code body {[color:(#ENV{id_rubrique}|match{^(1|2|10|65)$}|?{red,navy});]} signifierait :

  • #ENV{id_rubrique} : on récupère l’identifiant de la rubrique en cours
  • match{^(1|2|10|65)$} : on vérifie si l’identifiant de la rubrique en cours est égale à 1, 2, 10 ou 65.
  • |?{red,navy});] : cette partie est plus obscure pour moi... Le pipe suivi d’un point d’interrogation, c’est un autre critère et cela signifie "si oui" ? Dans ce cas, cela voudrait dire : s’il s’agit de la rubrique 1, 2, 10 ou 65, appliquer la couleur red, sinon navy. Est-ce bien cela ?

Si j’ai bien compris, ça ouvre des perspectives très intéressantes ! Spip est décidément plein de ressources !

denisb
27 janvier 2009 16:23
récupérer n° de rubrique dans fichier css

que dire ?
voilà. c’est ça. exactement.
une doc sur les filtres de spip : http://www.spip.net/fr_article901.html
regarder les filtres de texte et les filtres de test (entre autres...)

Hemei
27 janvier 2009 17:44
récupérer n° de rubrique dans fichier css

Ouf ! Merci beaucoup ! "Y a plus qu’à" (approfondir ces notions, résoudre les autres problèmes, jongler avec les boucles, créer de jolies choses avec ces outils...) maintenant !

Merci encore pour cet exemple éclairant et pour les réponses !

RSS






squelette