#DESCRIPTIF du secteur dans le squelette rubrique.html ?

Hello à tous !

J'ai mis dans le champ #DESCRIPTIF de mes rubriques principales, une partie
du contenu de la balise <BODY...> telle que bgcolor="#FFEEDD" ou
background="".
Comme cela, je change de fond en fonction du type de rubrique... sans
ré-écrire un squelette spécifique à chaque rubrique.

Enfin, c'est ce que je voudrais faire...

J'ai fait cette boucle juste après la balise <HEAD>:

<BOUCLE_fond(RUBRIQUES){id_secteur}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">

... (reste de la page)

</BOUCLE_fond>
</BODY>

Cette boucle ne donne rien... (pas de balise <BODY> dans le code généré)

Par contre lorsque je remplace "id_secteur" par "id_rubrique" comme ceci :

<BOUCLE_fond(RUBRIQUES){id_rubrique}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">

... (reste de la page)

</BOUCLE_fond>
</BODY>

J'obtiens une belle balise <BODY> mais la partie #DESCRIPTIF est vide...

Comment faire pour appeler le #DESCRIPTIF du secteur dont dépend une
rubrique ?

Nota : j'utilise un <INCLURE(hierarchie.php3)> suivi de la boucle classique
:
<BOUCLE_principale(RUBRIQUES){id_rubrique}{doublons}>

Merci d'avance à vous, nobles spipeurs de la Liste !

A+
Cyril

Il faut entourer ta <BOUCLE_fond(RUBRIQUES){id_secteur}> d'une boucle
{id_rubrique}, sinon l'id_secteur n'est pas connu.

Ensuite, je te conseillerais plutôt de passer par des feuilles destyle pour
gérer ce que tu fais. Tu crées juste un squelette style.php3/html que tu
appelles avec un paramètre id_rubrique=#ID_SECTEUR... pas le temps de
détailler, désolé.

<BOUCLE_fond(RUBRIQUES){id_secteur}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">

-- Fil

Fil,

Merci pour ton astuce qui marche très bien avec les rubriques. Voila ce que
ça donne pour le squelette rubrique.html :

...
</HEAD>
<BOUCLE_fond_rub(RUBRIQUES){id_rubrique}>
<BOUCLE_fond_sect(RUBRIQUES){id_secteur}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">
</BOUCLE_fond_sect>
</BOUCLE_fond_rub>
...
</BODY>
</HTML>

--------------------
Pour la version avec feuille de style, est-ce que tu suggères de faire créer
la balise <BODY> avec tous ses tags par un squelette style.html, puis dans
ce squelette de régler <BODY> avec un paramètre class="" qui dépendrait du
N° de rubrique, après avoir déterminé les 'class' correspondant (par exemple
.1 .2 .3 etc.) dans la feuille de style ?

Je ne vois pas très bien quoi mettre dans le squelette style.html...

Peut-être connais-tu l'url d'un squelette qui fait ce à quoi tu penses ?

Si tu n'as pas le temps de répondre, ce n'est pas grave. Je ne veux pas te
faire perdre ton temps...

A+
Cyril

Il faut entourer ta <BOUCLE_fond(RUBRIQUES){id_secteur}> d'une boucle
{id_rubrique}, sinon l'id_secteur n'est pas connu.

Ensuite, je te conseillerais plutôt de passer par des feuilles destyle

pour

gérer ce que tu fais. Tu crées juste un squelette style.php3/html que tu
appelles avec un paramètre id_rubrique=#ID_SECTEUR... pas le temps de
détailler, désolé.

> <BOUCLE_fond(RUBRIQUES){id_secteur}>
> <BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
> MARGINHEIGHT="0">

-- Fil

Ensuite, je te conseillerais plutôt de passer par des feuilles destyle pour
gérer ce que tu fais. Tu crées juste un squelette style.php3/html que tu
appelles avec un paramètre id_rubrique=#ID_SECTEUR... pas le temps de
détailler, désolé.

je te propose aussi de mettre ce code dans l'entête:

<link rel="StyleSheet" type="text/css" href="rubrique<?php echo $id_rubrique
?>.css">

il te faudra bien sûr créer autant de feuilles de styles que de rubriques :
rubrique1.css, ...

Je ne sais pas si on peut mettre autre chose que tu code php ?
(#ID_RUBRIQUE ne marche pas car on est pas encore dans une boucle,
{id_rubrique} idem)

J'ai mis dans le champ #DESCRIPTIF de mes rubriques principales, une partie
du contenu de la balise <BODY...> telle que bgcolor="#FFEEDD" ou
background="".
Comme cela, je change de fond en fonction du type de rubrique... sans
ré-écrire un squelette spécifique à chaque rubrique.

Pour info j'ai une méthode sympa dans les squelettes de
http://www.mytiliculture.com .
ça ressemble ? à ce que tu veux faire.

ici, Christiane (la webmestre) personalise la page d'accueil avec une photo
choisie aléatoirement dans la rubrique édito.
Elle utilise les logos des articles de cette rubrique (22) :

<!-- milieu, photo edito -->
      <td width="215"><BOUCLE_edito1(ARTICLES){id_rubrique=22}{par hasard}
{0,1}>#LOGO_ARTICLE</BOUCLE_edito1></td>
      <td width="289"><table width=100% border="0" cellpadding="0"
cellspacing="0" summary="">
    <tr>
      <td width="15"><img src="#CHEMIN_SQUELETTES/nav/rien.gif" border="0"
width="15" height="10" alt=""></td>

Elle affiche aussi aléatoirement un article de dans la case "le saviez-vous
?"

<!-- colonne droite : le saviez-vous -->
      <td width="15"><img src="#CHEMIN_SQUELETTES/nav/rien.gif" border="0"
width="15" height="2" alt=""></td>
      <td width="258"
valign="middle"><BOUCLE_random(ARTICLES){id_rubrique=23}{par hasard}
{0,1}>#TEXTE</BOUCLE_random></td>
      <td width="15"><img src="#CHEMIN_SQUELETTES/nav/rien.gif" border="0"
width="15" height="2" alt=""></td>
      <td width="1" bgcolor="#cccccc"><img
src="#CHEMIN_SQUELETTES/nav/rien.gif" border="0" width="1" height="2"
alt=""></td>
    </tr>

Dans ce cas elle aurait pû utiliser les brèves à la place des articles :
- saisie plus simple (pas de chpeau, d'auteurs, de post-scriptum)...
- probablement place gagnée dans la base de donnée.

Concernant ses squelettes de rubriques (et probablement ceux de ses
articles), j'ai une simplification a proposer :

Actuellement, elle utilise un squelette par rubrique (rubrique1.html, 2..6,
19,21,22,24 et 36).
Il me semble que la seule différence est la barre de titre/navigation qui
diffère.

Il est donc possible de ne garder qu'un seul squelette "rubrique.html".
Il faut donc concaténer le numéro de la rubrique au nom de l'image :

<img src="nav/barretop#ID_RUBRIQUE.gif" border="0" width="720" height="30"
alt="" usemap="#topbartech">
(#ID_RUBRIQUE fonctionne directement ici car on est dans la boucle des
rubriques.)

Il ne reste plus qu'à renommer les images existantes :
barretop3ac.gif -> barretop24.gif
barretop3ed.gif -> barretop22.gif
etc.

Encore merci Christiane pour ce magnifique site et ses squelettes.

Yves

mytiliculture.zip (14.1 KB)

Salut,

J'ai trouvé la solution à mon problème, en me basant sur les conseils de
Fil; j'en fais profiter tout le monde, en espérant que ça serve...

Pour appliquer un style différent en fonction des secteurs :
1) déterminer le style dans la feuille de style (ex .rub1, .rub2, etc)
2) calculer le secteur à partir d'un N° de rubrique
2) dans la balise body paramétrer le tag class selon le secteur.

Voila ce que ça donne :

-----------------------
1ères lignes du fichier hierarchie.html :

<BOUCLE_style(RUBRIQUES){id_rubrique}>
  <BOUCLE_secteur(RUBRIQUES){id_secteur}>
  </BOUCLE_secteur><? $rub=[(#ID_SECTEUR)]; ?>
</BOUCLE_style>

<BODY class="rub<? echo $rub; ?>" topmargin=0 leftmargin=0 marginwidth=0
margineheight=0>
...

-----------------------
quelque part dans le spip_styles.css :

...
.rub1 {
  background:#99FFFF;
}
.rub2 {
  background:#FF66FF;
}
...

A+
Cyril

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Cyril MARION
Envoyé : vendredi 30 août 2002 14:52
À : spip@rezo.net
Objet : [Spip] #DESCRIPTIF du secteur dans le squelette
rubrique.html ?

Hello à tous !

J'ai mis dans le champ #DESCRIPTIF de mes rubriques
principales, une partie
du contenu de la balise <BODY...> telle que bgcolor="#FFEEDD" ou
background="".
Comme cela, je change de fond en fonction du type de rubrique... sans
ré-écrire un squelette spécifique à chaque rubrique.

Enfin, c'est ce que je voudrais faire...

J'ai fait cette boucle juste après la balise <HEAD>:

<BOUCLE_fond(RUBRIQUES){id_secteur}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">

... (reste de la page)

</BOUCLE_fond>
</BODY>

Cette boucle ne donne rien... (pas de balise <BODY> dans le
code généré)

Par contre lorsque je remplace "id_secteur" par "id_rubrique"
comme ceci :

<BOUCLE_fond(RUBRIQUES){id_rubrique}>
<BODY [(#DESCRIPTIF)] TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0"
MARGINHEIGHT="0">

... (reste de la page)

</BOUCLE_fond>
</BODY>

J'obtiens une belle balise <BODY> mais la partie #DESCRIPTIF
est vide...

Comment faire pour appeler le #DESCRIPTIF du secteur dont dépend une
rubrique ?

Nota : j'utilise un <INCLURE(hierarchie.php3)> suivi de la
boucle classique
:
<BOUCLE_principale(RUBRIQUES){id_rubrique}{doublons}>

Merci d'avance à vous, nobles spipeurs de la Liste !

A+
Cyril

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip

ENGLISH - desole :slight_smile:

One important thing about using CSS this way. You can customize the entire page without adding extra tags or attributes.

Use inheritnace like this:

  H1 { color: red}
  
  BODY.rub1 H1 {color: green}
  /* only when H1 is inside <BODY class="rub1"> */

I hope this helps.

Cyril MARION wrote:

Salut,

J'ai trouvé la solution à mon problème, en me basant sur les conseils de
Fil; j'en fais profiter tout le monde, en espérant que ça serve...

Pour appliquer un style différent en fonction des secteurs :
1) déterminer le style dans la feuille de style (ex .rub1, .rub2, etc)
2) calculer le secteur à partir d'un N° de rubrique
2) dans la balise body paramétrer le tag class selon le secteur.

Voila ce que ça donne :

-----------------------
1ères lignes du fichier hierarchie.html :

<BOUCLE_style(RUBRIQUES){id_rubrique}>
  <BOUCLE_secteur(RUBRIQUES){id_secteur}>
  </BOUCLE_secteur><? $rub=[(#ID_SECTEUR)]; ?>
</BOUCLE_style>

<BODY class="rub<? echo $rub; ?>" topmargin=0 leftmargin=0 marginwidth=0
margineheight=0>
...

-----------------------
quelque part dans le spip_styles.css :

...
.rub1 {
  background:#99FFFF;
}
.rub2 {
  background:#FF66FF;
}
...