INCLURE, quand tu nous tiens

Bonjour à tous,

Je souhaite inclure un squelette ( menu-rub-left.php3/html destiné à
afficher l'arborescence des rubriques dans une boiboite, qui doit recevoir
en paramètre un numéro de rubrique ) dans une page breve.html qui recoit
elle meme son id_breve par l'url. C'est sous SPIP 1.7

Mon premier jet fut le suivant (ne figure que la partie problématique):
<BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>
Mais bien sur, ça ne marche pas parce que les balises <INCLURE> sont
envoyées telles quelles au navigateur, car faisant partie de la boucle.
Par contre, ça m'a permis de voir que l'#ID_RUBRIQUE est bien remplacé par
son numéro.

D'où l'idée suivante :
Extraire le numéro de rubrique dont dépend la brève
<BOUCLE_breve(BREVES){id_breve}>
  <?php $rub=#ID_RUBRIQUE; ?>
</BOUCLE_breve>
Et la passer en paramètre au squelette à inclure
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=<?php echo $rub;?>}>
</div>

Là non plus, ça ne marche pas (comprendre: le squelette menu-rub-left.html
est bien inclus, mais on dirait qu'il ne "recoit" pas le paramètre et donc
n'affiche rien ) et je ne vois pas pourquoi.
Pour info, voici la structure de ce fichier menu-rub-left.html:
<B_rubrique>
<div class="menubox">
<ul class="menu-titre"><li><:rubriques:></li></ul>
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
  ici tout l'affichage ( qui marche bien par ailleurs puisqu'appelé
  depuis d'autres pages, notamment rubrique.html )
</BOUCLE_rubrique>
</div>
</B_rubrique>

Par contre, si je colle des numéros de rubrique en dur, ça fonctionne.

Tout se passe donc comme si les paramètres de la balise <INCLURE> ne
pouvaient pas être "variables" ou "calculés".

Quelqu'un pour m'éclairer ?

On Wed, 03 Mar 2004 11:20:07 +0100, "Cedric" <cg.news@9online.fr>
wrote:

Mon premier jet fut le suivant (ne figure que la partie problématique):
<BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
<INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>

Dans une boucle BREVES {id_rubrique} devrait suffire, non ?:

<BOUCLE_breve(BREVES){id_breve}>
<div id="menu"><INCLURE (menu-rub-left.php3){id_rubrique}></div>
</BOUCLE_breve>

Cordialement

---
Patrice

---

Ci-jointe la réponse reçue il y a deux jours qui fourni l'explication mais non la solution :
"L'odre d'execution est :
1 Spip
2 PHP
3 Chez le client: HTML+Javascript+CSS

Donc, tu ne peux pas ainsi utiliser une varaible PHP dans SPIP.
Il existe des méthodes pour contourner cela, mais je n'ai pas les liens.
Peut-être en cherchant sur Spip-contrib

Amicalement
Grégoire"

@+
YR
Le 3 mars 04, à 11:20, Cedric a écrit :

Bonjour à tous,

Je souhaite inclure un squelette ( menu-rub-left.php3/html destiné à
afficher l'arborescence des rubriques dans une boiboite, qui doit recevoir
en paramètre un numéro de rubrique ) dans une page breve.html qui recoit
elle meme son id_breve par l'url. C'est sous SPIP 1.7

Mon premier jet fut le suivant (ne figure que la partie problématique):
<BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>
Mais bien sur, ça ne marche pas parce que les balises <INCLURE> sont
envoyées telles quelles au navigateur, car faisant partie de la boucle.
Par contre, ça m'a permis de voir que l'#ID_RUBRIQUE est bien remplacé par
son numéro.

D'où l'idée suivante :
Extraire le numéro de rubrique dont dépend la brève
<BOUCLE_breve(BREVES){id_breve}>
  <?php $rub=#ID_RUBRIQUE; ?>
</BOUCLE_breve>
Et la passer en paramètre au squelette à inclure
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=<?php echo $rub;?>}>
</div>

Là non plus, ça ne marche pas (comprendre: le squelette menu-rub-left.html
est bien inclus, mais on dirait qu'il ne "recoit" pas le paramètre et donc
n'affiche rien ) et je ne vois pas pourquoi.
Pour info, voici la structure de ce fichier menu-rub-left.html:
<B_rubrique>
<div class="menubox">
<ul class="menu-titre"><li><:rubriques:></li></ul>
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
  ici tout l'affichage ( qui marche bien par ailleurs puisqu'appelé
  depuis d'autres pages, notamment rubrique.html )
</BOUCLE_rubrique>
</div>
</B_rubrique>

Par contre, si je colle des numéros de rubrique en dur, ça fonctionne.

Tout se passe donc comme si les paramètres de la balise <INCLURE> ne
pouvaient pas être "variables" ou "calculés".

Quelqu'un pour m'éclairer ?

_______________________________________________
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.spip.net/
irc://irc.freenode.net/spip

Ah ! Excellent message !

J'en profite pour poser la question suivante :

comment le cache gére-t-il la situation conséquente :
on a une page (ici menu-rub-left.php3/html) qui est apellée à chaque fois
qu'on affiche une brève. Et qui est donc à chaque fois différente.

Est ce qu'on risque d'avoir dasn le cache la dernière version calculée de
menu-rub-left.php3/html, sans que le changement de paramètre soit pris en
compte. Ou est ce que SPIP va faire un appel à MySQL à chaque fois que le
contenu change (ce qui fait que le cache est inutile dans ce cas). Ou enfin
est ce que le cache va contenir chaque variation possible ?

Parce que j'avais fait des includes dans le même esprit, et je suis revenu
en arrière à cause de ce 'problème'.

Olivier G.

----- Original Message -----
From: "Cedric" <cg.news@9online.fr>
To: <spip@rezo.net>
Sent: Wednesday, March 03, 2004 11:20 AM
Subject: [Spip] INCLURE, quand tu nous tiens

Bonjour à tous,

Je souhaite inclure un squelette ( menu-rub-left.php3/html destiné à
afficher l'arborescence des rubriques dans une boiboite, qui doit recevoir
en paramètre un numéro de rubrique ) dans une page breve.html qui recoit
elle meme son id_breve par l'url. C'est sous SPIP 1.7

[Couic]

Le Wed, 03 Mar 2004 11:46:29 +0100, Patrice a ecrit :

On Wed, 03 Mar 2004 11:20:07 +0100, "Cedric" <cg.news@9online.fr>
wrote:

Mon premier jet fut le suivant (ne figure que la partie problématique):
<BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
<INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>

Dans une boucle BREVES {id_rubrique} devrait suffire, non ?:

<BOUCLE_breve(BREVES){id_breve}>
<div id="menu"><INCLURE (menu-rub-left.php3){id_rubrique}></div>
</BOUCLE_breve>

Cordialement

---
Patrice
http://www.ecoparis.org/
---

Youpi, ça marche !

J'avais déjà essayé ça il me semble mais il devait sans doute y avoir une
autre erreur.

Merci à toi en tout cas

Bonjour,

Je fais mes menus par un squelette externe appelé par INCLURE et ça marche sans pb.

<BOUCLE_article_principal(ARTICLES) {id_article}>

[...]

   <INCLURE(inc-Menu.php){id_article}>

</BOUCLE_article_principal>

Cedric wrote:

Je souhaite inclure un squelette ( menu-rub-left.php3/html destiné à
afficher l'arborescence des rubriques dans une boiboite, qui doit recevoir
en paramètre un numéro de rubrique ) dans une page breve.html qui recoit
elle meme son id_breve par l'url. C'est sous SPIP 1.7

Mon premier jet fut le suivant (ne figure que la partie problématique):
<BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>
Mais bien sur, ça ne marche pas parce que les balises <INCLURE> sont
envoyées telles quelles au navigateur, car faisant partie de la boucle.

--
Cordialement, Stéphane *** http://www.team-santonum.com
      Loisirs, nature, arts, technologie : accueil en Charente-Maritime

Le Wed, 03 Mar 2004 14:02:29 +0100, Stéphane Santon a ecrit :
Effectivement, ca marche ( et c'est très bien comme ça ), je pense qu'il
devait y avoir une autre erreur lorsque j'ai essayé ça. Mea maxima
culpa.

Pour info, voici la version finale de ce qui fonctionne :
<BOUCLE_breve(BREVES){id_breve}>
  <INCLURE (menubar.php3){id_rubrique}>
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique}>
</div>
</BOUCLE_breve>

Cedric

Bonjour,

Je fais mes menus par un squelette externe appelé par INCLURE et ça
marche sans pb.

<BOUCLE_article_principal(ARTICLES) {id_article}>

[...]

   <INCLURE(inc-Menu.php){id_article}>

</BOUCLE_article_principal>

Cedric wrote:

Je souhaite inclure un squelette ( menu-rub-left.php3/html destiné à
afficher l'arborescence des rubriques dans une boiboite, qui doit
recevoir en paramètre un numéro de rubrique ) dans une page
breve.html qui recoit elle meme son id_breve par l'url. C'est sous SPIP
1.7

Mon premier jet fut le suivant (ne figure que la partie
problématique): <BOUCLE_breve(BREVES){id_breve}>
<div id="menu">
  <INCLURE (menu-rub-left.php3){id_rubrique=#ID_RUBRIQUE}>
</div>
</BOUCLE_breve>
Mais bien sur, ça ne marche pas parce que les balises <INCLURE> sont
envoyées telles quelles au navigateur, car faisant partie de la
boucle.

Bonjour

Y a t'il moyen dans l'espace privé de créer une rubrique non autorisé aux
rédacteurs, afin d'éviter qu'il publie des articles dedans ?

Merci
Philippe

Le Wed, 03 Mar 2004 12:12:26 +0100, yorghos.remviko a écrit :

Ci-jointe la réponse reçue il y a deux jours qui fourni l'explication
mais non la solution :
"L'odre d'execution est :
1 Spip
2 PHP
3 Chez le client: HTML+Javascript+CSS

Donc, tu ne peux pas ainsi utiliser une varaible PHP dans SPIP. Il
existe des méthodes pour contourner cela, mais je n'ai pas les liens.
Peut-être en cherchant sur Spip-contrib

Amicalement
Grégoire"

@+
YR

Effectivement, l'explication ( ainsi qu'une solution )est fournie sur
spip-contrib dans le wiki mis en place :
http://www.uzine.net/spip_contrib/spikini/index.php?wiki=FaQ
( voir tout en bas FAQ SPIP 4-Divers )

Bonjour

sur la page rubrique (rubrique.php3) j'ai un menu principal constitué de
trois rubriques : Sélection, Dossiers, Radio. Ce sont des boutons images
réagissant au On mouse over
J'ai réussi à faire un script php pour dire si on se trouve dans la rubrique
1 alors tu affiches le bouton highlighté sinon le bouton off
etc

ca fonctionne très bien avec la balise <INCLURE> dans le squelette
rubrique.html

voici le script dans rubrique.html pour le bouton Sélection :
<td width="203"><INCLURE (navig_selection.php3)></td>

et le script dans navig_selection.php3
<?php
if ($id_rubrique == 3){
  echo "<img src=\"IMG/menu_selection_on-fr.gif\" width=\"203\"
height=\"38\">";
}else{
  echo "<img src=\"IMG/menu_selection_off-fr.gif\" name=\"Image2\"
width=\"203\" height=\"38\" id=\"Image2\"
onMouseOver=\"MM_swapImage('Image2','','IMG/menu_selection_on-fr.gif',1)\"
onMouseOut=\"MM_swapImgRestore()\">";
}
?>

Pour le bouton Dossiers il y a un INCLURE "navig_dossiers.php3" et ce
fichier comprend :
<?php
if ($id_rubrique == 2){
  echo "<img src=\"IMG/menu_dossiers_on-fr.gif\" width=\"99\"
height=\"38\">";
}else{
  echo "<img src=\"IMG/menu_dossiers_off-fr.gif\" name=\"Image2\"
width=\"99\" height=\"38\" id=\"Image2\"
onMouseOver=\"MM_swapImage('Image2','','IMG/menu_dossiers_on-fr.gif',1)\"
onMouseOut=\"MM_swapImgRestore()\">";
}
?>

Maintenant comme mon site est multilangue (v1.7) j'ai beaucoup de
difficultés à automatiser tout ça
A savoir si je suis en anglais la page rubrique Sélection aura l'id 5 par
exemple et la page Dossier l'id 6

Il faudra gérer les images avec #LANG à la place de fr (ex :
menu_dossiers_on-fr deviendra menu_dossiers_on-#LANG j'imagine)

Voilà j'espère avoir été clair

Je ne suis pas un as de php, mais quand c'est basique je me débrouille

Merci de m'avoir lu et pour votre aide

Philippe

Bonjour
je relance ma question n'ayant pas eu de réponse :wink:

Merci pour votre aide

sur la page rubrique (rubrique.php3) j'ai un menu principal constitué de
trois rubriques : Sélection, Dossiers, Radio. Ce sont des boutons images
réagissant au On mouse over
J'ai réussi à faire un script php pour dire si on se trouve dans la rubrique
1 alors tu affiches le bouton highlighté sinon le bouton off
etc

ca fonctionne très bien avec la balise <INCLURE> dans le squelette
rubrique.html

voici le script dans rubrique.html pour le bouton Sélection :
<td width="203"><INCLURE (navig_selection.php3)></td>

et le script dans navig_selection.php3
<?php
if ($id_rubrique == 3){
  echo "<img src=\"IMG/menu_selection_on-fr.gif\" width=\"203\"
height=\"38\">";
}else{
  echo "<img src=\"IMG/menu_selection_off-fr.gif\" name=\"Image2\"
width=\"203\" height=\"38\" id=\"Image2\"
onMouseOver=\"MM_swapImage('Image2','','IMG/menu_selection_on-fr.gif',1)\"
onMouseOut=\"MM_swapImgRestore()\">";
}
?>

Pour le bouton Dossiers il y a un INCLURE "navig_dossiers.php3" et ce
fichier comprend :
<?php
if ($id_rubrique == 2){
  echo "<img src=\"IMG/menu_dossiers_on-fr.gif\" width=\"99\"
height=\"38\">";
}else{
  echo "<img src=\"IMG/menu_dossiers_off-fr.gif\" name=\"Image2\"
width=\"99\" height=\"38\" id=\"Image2\"
onMouseOver=\"MM_swapImage('Image2','','IMG/menu_dossiers_on-fr.gif',1)\"
onMouseOut=\"MM_swapImgRestore()\">";
}
?>

Maintenant comme mon site est multilangue (v1.7) j'ai beaucoup de
difficultés à automatiser tout ça
A savoir si je suis en anglais la page rubrique Sélection aura l'id 5 par
exemple et la page Dossier l'id 6

Il faudra gérer les images avec #LANG à la place de fr (ex :
menu_dossiers_on-fr deviendra menu_dossiers_on-#LANG j'imagine)

Voilà j'espère avoir été clair

Je ne suis pas un as de php, mais quand c'est basique je me débrouille

Merci de m'avoir lu et pour votre aide

Philippe