SPIP Forums

[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.


Accueil du site> Forums de discussion >  Création de squelettes > récupérer n° de rubrique dans fichier css

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

par momax - 10 janvier 2009 18:29 - Réponse(s) : 11

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


Indiquez l'intérêt que vous portez à cette question

Suivre la vie du site

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

10 janvier 2009 21:39 - par denisb

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;
}

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

10 janvier 2009 22:29 - par momax

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

encore merci


[RESOLUS] récupérer n° de rubrique dans fichier css

13 janvier 2009 16:54 - par momax

Merci beaucoup pour cette astuce ça marche nickel !


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

27 janvier 2009 09:48 - par Hemei

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...


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

27 janvier 2009 10:48 - par denisb

#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.


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

27 janvier 2009 12:18 - par Hemei

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...


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

27 janvier 2009 12:37 - par denisb

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

 
:-)

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

27 janvier 2009 14:23 - par denisb

mais ça permet :

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

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


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

27 janvier 2009 14:56 - par Hemei

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 !


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

27 janvier 2009 16:23 - par denisb

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...)


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

27 janvier 2009 17:44 - par Hemei

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 !


Répondre à la question


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

  • Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :
  • Installation, mise à jour

    Utilisation de l’espace privé

    Administration, gestion, configuration du site

    Créer ses squelettes

Qui êtes-vous ? (optionnel)
  • [Se connecter]

  • par Guronsan - 19:05

    Soustraire les résultats d'une boucle à une boucle parente

    Réponse(s) : 1

    Pour être plus précis, j’ai essayé ceci qui ne fonctionne pas : <BOUCLE_membres_repondus(MY_INSCRIPTIONS)id_articlepresent IN oui,non,nsppar maj> <BOUCLE_nom_membre_repondus(MY_MEMBRES)par nomdoublons></BOUCLE_nom_membre_repondus (...)

  • par Krol - 18:07

    Problème de compréhension pour créer un plugin #AUTORISER

    Pas de réponse

    Bonjour, J’essaie de comprendre l’utilisation de #AUTORISER Voici ce que je voudrais faire, j’utilise le plugin "accès restreint" pour un site communautaire, avec des possibilités de charger des docs , modifier des articles, etc ... Pour cela (...)

  • par aurelie - 15:52

    Gestion des couleurs : Insérer feuille de styles dynamique en PHP

    Réponse(s) : 3

    À mon avis, ton inc-head n’inclut pas style.php. Tu peux vérifier cela en affichant la source de la page calculée (page publique d’une rubrique par exemple). <link rel="stylesheet" (...)

  • par pierre batton - 14:20

    squelettes compteur(incrémentation) suite

    Réponse(s) : 1

    je me répond tout seul comme un grand j’ai trouvé avec le filtre duree par contre après avoir copier comme indiqué ...case "jour" : $str = ($diff_days+($diff_weeks*7)+($diff_years*24*7*365)) ; break ; ... j’obtiens une réponse en semaines ou en (...)

  • par davduf - 10:03

    Lister les articles avec un même mot clé

    Réponse(s) : 9 - Résolu

    Me revoila ,) Je suis bien embêté car chez moi (exemple), ça ne marche pas. La boucle englobante est bien positionnée, tout en haut : <BOUCLE_principale(ARTICLES) id_article doublons > Tout en bas </BOUCLE_principale> Pour la (...)

  • 08:43

    musique en continue sur le site

    Réponse(s) : 10

    Juste au cas où tu n’aurais pas trouvé la solution à ton problème de musique en continue sur toutes tes pages de site, je te propose d’insérer une p’tite ligne de commande dans ton bouton ou lien : lien Tu peux aussi faire un PlayList en .aif , ça (...)

  • par cogicube - 11 mars 18:06

    articles triés par nombre de visites sur 7 jours

    Réponse(s) : 2

    Bonjour anic Je ne cherche pas à trier les articles par leur date de parution mais par le nombre de visites qu’ils ont eu durant les 7 derniers jours, indépendamment de leur date de mise en ligne. Exemple article1, visites durant les 7 derniers (...)

  • par s t i | g a r d - 11 mars 18:00

    Qui a créé un site vraiment multilingues ???

    Réponse(s) : 11

    * <multi>[fr]blabla[en]blabla </multi>

  • 11 mars 17:56

    > Utiliser un squelette (ou comment faire quand on est pas inteligent)

    Réponse(s) : 15

    Déjà intelligent s’écrit avec 2 l et pas 1 :p

  • par BENJI - 11 mars 17:42

    Bréve et multiflex3

    Pas de réponse

    « Bonsoir, Alors voila , je voudrai qu’une brève (nom de la brève : Partenaires) soit sur toutes les pages de mon site et que les dernières brèves se mettent en dessous de cette brève. J’utilise multiflex3 comme squelette et je pense que le problème se (...)


squelettes-dist/spip.png voir le squelette de cette page