INCLURE GET & SET, variable dans noisette

Bonjour,

j’ai un code dans une noisette :

INC-ORGANISME.HTML

<?php $compteur_boucle=0; ?>

<BOUCLE_organisme(HIERARCHIE){id_rubrique}>

<?php $compteur_boucle=#COMPTEUR_BOUCLE; if ($compteur_boucle==1){ echo "#SET{id_organisme,0}"; elseif ($compteur_boucle==2){ echo"#SET{id_organisme,0}"; elseif ($compteur_boucle==3){ echo"#SET{id_organisme,#ID_RUBRIQUE}"; elseif ($compteur_boucle>3) { echo"#SET{id_organisme,#ID_RUBRIQUE}";} ?>

</BOUCLE_organisme>

ET je souhaite savoir si il est possible de recuperer depuis mon squelette rubrique.html la variable #GET{id_organisme} de ma noisette.

J’ai trouvé ceci sur spip contrib mais je ne vois pas comment l’utiliser dans rubrique.html :

  1. #SET{mavariable,#INCLURE{fond=monsquelette}{monparam=#ENV{monparam}}}

J’aurai bien fait un truc du genre :

RUBRIQUE.HTML
#SET{organisme,#INCLURE{fond=inc-organisme}{je ne sais pas quoi mettre=#ENV{je ne sais pas quoi mettre}}

Mon id d'organisme est #GET{organisme}

Est ce possible ?

Merci à ceux qui ont la lumière :slight_smile:

PS :
Le code du SET + INCLURE je l’ai trouvé ici : http://www.spip-contrib.net/Astuces-SPIP

* arthegone arthegone tapuscrivait, le 06/04/2009 17:14:

Bonjour,

j'ai un code dans une noisette :

*INC-ORGANISME.HTML*

<?php
    $compteur_boucle=0;
?>

<BOUCLE_organisme(HIERARCHIE){id_rubrique}>
    <?php
    $compteur_boucle=#COMPTEUR_BOUCLE;
    if ($compteur_boucle==1){
        echo "#SET{id_organisme,0}";
    elseif ($compteur_boucle==2){
        echo"#SET{id_organisme,0}";
    elseif ($compteur_boucle==3){
        echo"#SET{id_organisme,#ID_RUBRIQUE}";
    elseif ($compteur_boucle>3) {

echo"<BOUCLE_recupOrg(HIERARCHIE){2,1}>#SET{id_organisme,#ID_RUBRIQUE}</BOUCLE_recupOrg>";}
    ?>
</BOUCLE_organisme>

ET je souhaite savoir si il est possible de recuperer depuis mon squelette *
rubrique.html* la variable #GET{id_organisme} de ma noisette.

J'ai trouvé ceci sur spip contrib mais je ne vois pas comment l'utiliser
dans *rubrique.html* :

   1. #SET{mavariable,#INCLURE{fond=monsquelette}{monparam=#ENV{monparam}}}

J'aurai bien fait un truc du genre :

*RUBRIQUE.HTML*
#SET{organisme,#INCLURE{fond=inc-organisme}{je ne sais pas quoi
mettre=#ENV{je ne sais pas quoi mettre}}
<p>Mon id d'organisme est #GET{organisme}</p>

Est ce possible ?

Merci à ceux qui ont la lumière :slight_smile:

*PS :*
Le code du SET + INCLURE je l'ai trouvé ici :
Astuces courtes pour SPIP

Peut-être avec Déclarer des variables dans SPIP 1.9 - Pyrat.net – Création de sites Internet ?

--
RealET

Même si c'est marrant de voir ce code, je trouve pas ça très chouette de glisser du php dans du SPIP ré interprétré... hum les conditions c'est pas fait pour les chiens et les [(!={}|{'',''})] non plus... Ceci dit avec un peu de réflexion, de pratique du #GET et #SET on ne devrait plus voir ce genre de question, ni ce genre de réponse PUBLICITES par liens interposés d'ailleurs!

RealET a écrit :

* arthegone arthegone tapuscrivait, le 06/04/2009 17:14:

Bonjour,

j'ai un code dans une noisette :

*INC-ORGANISME.HTML*

<?php
    $compteur_boucle=0;
?>

<BOUCLE_organisme(HIERARCHIE){id_rubrique}>
    <?php
    $compteur_boucle=#COMPTEUR_BOUCLE;
    if ($compteur_boucle==1){
        echo "#SET{id_organisme,0}";
    elseif ($compteur_boucle==2){
        echo"#SET{id_organisme,0}";
    elseif ($compteur_boucle==3){
        echo"#SET{id_organisme,#ID_RUBRIQUE}";
    elseif ($compteur_boucle>3) {

echo"<BOUCLE_recupOrg(HIERARCHIE){2,1}>#SET{id_organisme,#ID_RUBRIQUE}</BOUCLE_recupOrg>";}

    ?>
</BOUCLE_organisme>

ET je souhaite savoir si il est possible de recuperer depuis mon squelette *
rubrique.html* la variable #GET{id_organisme} de ma noisette.

J'ai trouvé ceci sur spip contrib mais je ne vois pas comment l'utiliser
dans *rubrique.html* :

   1. #SET{mavariable,#INCLURE{fond=monsquelette}{monparam=#ENV{monparam}}}

J'aurai bien fait un truc du genre :

*RUBRIQUE.HTML*
#SET{organisme,#INCLURE{fond=inc-organisme}{je ne sais pas quoi
mettre=#ENV{je ne sais pas quoi mettre}}
<p>Mon id d'organisme est #GET{organisme}</p>

Est ce possible ?

Merci à ceux qui ont la lumière :slight_smile:

*PS :*
Le code du SET + INCLURE je l'ai trouvé ici :
Astuces courtes pour SPIP

Peut-être avec Déclarer des variables dans SPIP 1.9 - Pyrat.net – Création de sites Internet ?

Bonjour Bernard,

ok ma boucle n’est pas parfaite, c’est sur, mais en fait je posait une simple question suite à ce que j’ai trouvé dans SPIP-CONTRIB est il possible de recuperer ma variable ID_ORGANISME qui se situe dans ma noisette ?

En fait du get et du set dans le meme fichier, ca va mais via l’INCLURE je reste perplexe…

Je ne vois pas quoi mettre…

Le 6 avril 2009 23:34, Bernard Blazin <bernard.blazin@free.fr> a écrit :

Même si c’est marrant de voir ce code, je trouve pas ça très chouette de glisser du php dans du SPIP ré interprétré… hum les conditions c’est pas fait pour les chiens et les [(!={}|{‹  ›,‹  ›})] non plus… Ceci dit avec un peu de réflexion, de pratique du #GET et #SET on ne devrait plus voir ce genre de question, ni ce genre de réponse PUBLICITES par liens interposés d’ailleurs!

RealET a écrit :

  • arthegone arthegone tapuscrivait, le 06/04/2009 17:14:

Bonjour,

j’ai un code dans une noisette :

INC-ORGANISME.HTML

<?php $compteur_boucle=0; ?>

<BOUCLE_organisme(HIERARCHIE){id_rubrique}>

<?php $compteur_boucle=#COMPTEUR_BOUCLE; if ($compteur_boucle==1){ echo "#SET{id_organisme,0}"; elseif ($compteur_boucle==2){ echo"#SET{id_organisme,0}"; elseif ($compteur_boucle==3){ echo"#SET{id_organisme,#ID_RUBRIQUE}"; elseif ($compteur_boucle>3) { echo"#SET{id_organisme,#ID_RUBRIQUE}";} ?>

</BOUCLE_organisme>

ET je souhaite savoir si il est possible de recuperer depuis mon squelette *
rubrique.html* la variable #GET{id_organisme} de ma noisette.

J’ai trouvé ceci sur spip contrib mais je ne vois pas comment l’utiliser
dans rubrique.html :

  1. #SET{mavariable,#INCLURE{fond=monsquelette}{monparam=#ENV{monparam}}}

J’aurai bien fait un truc du genre :

RUBRIQUE.HTML
#SET{organisme,#INCLURE{fond=inc-organisme}{je ne sais pas quoi
mettre=#ENV{je ne sais pas quoi mettre}}

Mon id d'organisme est #GET{organisme}

Est ce possible ?

Merci à ceux qui ont la lumière :slight_smile:

PS :
Le code du SET + INCLURE je l’ai trouvé ici :
http://www.spip-contrib.net/Astuces-SPIP

Peut-être avec http://www.pyrat.net/Declarer-des-variables-dans-SPIP-1-9.html ?


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 ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

arthegone arthegone a écrit :

ET je souhaite savoir si il est possible de recuperer depuis mon squelette *
rubrique.html* la variable #GET{id_organisme} de ma noisette.

non.
un squelette inclu ne peut retourner d'information à son squelette incluant.

si je comprends bien ta structure de rubriques, tu cherches à récupérer la rubrique de niveau 3 pour quelque rubrique que ce soit, sauf pour les rubriques de niveau 0, 1 et 2.

tu devrais pouvoir faire directement dans ton squelette rubrique.html :

<BOUCLE_organisme(HIERARCHIE) {id_rubrique} {2, 1}>
   [(REM) si la rubrique est de niveau 3 ou plus ]
   #SET{id_organisme, #ID_RUBRIQUE}
</BOUCLE_organisme>
   [(REM) si la rubrique est de niveau 0, 1 ou 2
          la boucle ci-dessus ne retourne rien ]
   #SET{id_organisme, 0}
<//B_organisme>

* arthegone arthegone tapuscrivait, le 06/04/2009 23:58:

Bonjour Bernard,

ok ma boucle n'est pas parfaite, c'est sur, mais en fait je posait une
simple question suite à ce que j'ai trouvé dans SPIP-CONTRIB est il possible
de recuperer ma variable ID_ORGANISME qui se situe dans ma noisette ?

Tu voudrait donc avoir :

Fichier incluant
inclusion noisette
  dans la noisette, affecter une variable
utiliser la variable de la noisette dans le fichier incluant

Ce n'est pas possible en pur SPIP
Avec du PHP et en utilisant des globales (à partir de SPIP 2, c'est _nécessaire_), ça doit le faire, mais au prix d'un calcul du php à chaque hit.

--
RealET

* RealET tapuscrivait, le 07/04/2009 07:55:

* arthegone arthegone tapuscrivait, le 06/04/2009 23:58:

Bonjour Bernard,

ok ma boucle n'est pas parfaite, c'est sur, mais en fait je posait une
simple question suite à ce que j'ai trouvé dans SPIP-CONTRIB est il possible
de recuperer ma variable ID_ORGANISME qui se situe dans ma noisette ?

Tu voudrait donc avoir :

Fichier incluant
inclusion noisette
dans la noisette, affecter une variable
utiliser la variable de la noisette dans le fichier incluant

Ce n'est pas possible en pur SPIP

En fait, si, c'est envisageable si la noisette ne fait qu'une chose : renvoyer la variable.
Dans ta noisette, tu pourrais avoir :
<BOUCLE_....
#SET{mavariable,#BALISE}
</BOUCLE_...>
#GET{mavariable}

Et dans ton squelette appelant :
[(#SET{mavariablerecuperee,#INCLURE{fond=monsquelettequinefaitquerenvoyerlavaleur}})]

C'est limité, mais ça peut être utilisable dans certains cas

--
RealET

RealET a écrit :

Dans ta noisette, tu pourrais avoir :
<BOUCLE_....
#SET{mavariable,#BALISE}
</BOUCLE_...>
#GET{mavariable}
Et dans ton squelette appelant :
[(#SET{mavariablerecuperee,#INCLURE{fond=monsquelettequinefaitquerenvoyerlavaleur}})] C'est limité, mais ça peut être utilisable dans certains cas

je viens de tester en 2.0.6

test_boucle.html (appelant) :
   [(#SET{mon_appel, #INCLURE{fond=test_boucle2}})]
   #GET{mon_appel} - #GET{mon_retour}

test_boucle2.html (appelé) :
   #SET{mon_retour, retour de noisette}

résultat :
   rien, nada, nib, queudchi...

bien sûr si tu demandes à l'appelé d'afficher #GET{mon_retour}
tu le verras sur la page de l'appelant, mais la valeur n'en aura pas
plus été été transmise...

* denisb tapuscrivait, le 07/04/2009 10:34:

RealET a écrit :

Dans ta noisette, tu pourrais avoir :
<BOUCLE_....
#SET{mavariable,#BALISE}
</BOUCLE_...>
#GET{mavariable}
Et dans ton squelette appelant :
[(#SET{mavariablerecuperee,#INCLURE{fond=monsquelettequinefaitquerenvoyerlavaleur}})] C'est limité, mais ça peut être utilisable dans certains cas

je viens de tester en 2.0.6

test_boucle.html (appelant) :
  [(#SET{mon_appel, #INCLURE{fond=test_boucle2}})]
  #GET{mon_appel} - #GET{mon_retour}

test_boucle2.html (appelé) :
  #SET{mon_retour, retour de noisette}

Tu as oublié de mettre aussi :
#GET{mon_retour}

--
RealET

varinc.html (101 Bytes)

inc_var.html (54 Bytes)

RealET a écrit :

Tu as oublié de mettre aussi :
#GET{mon_retour}

ok.
je reprends donc :

test_boucle.html (appelant) :
   [(#SET{mon_appel, #INCLURE{fond=test_boucle2}})]

   la *valeur calculée* dans le squelette appelé est bien
   <br />
   *affectée* à la variable définie dans le squelette appelant :
   GET{mon_appel} => ' #GET{mon_appel} '
   <br />
   alors que la *variable définie* dans le squelette appelé
   <br />
   n'est pas *transmise* au squelette appelant :
   GET{mon_retour} => ' #GET{mon_retour} '

test_boucle2.html (appelé) :
   #SET{mon_retour, retour noisette}
   #GET{mon_retour}

résultat affiché :
   la *valeur calculée* dans le squelette appelé est bien
   <br />
   *affectée* à la variable définie dans le squelette appelant :
   GET{mon_appel} => ' retour noisette'
   <br />
   alors que la *variable définie* dans le squelette appelé
   <br />
   n'est pas *transmise* au squelette appelant :
   GET{mon_retour} => ' '

Salut Denisb,

Je trouve que tu ne décris pas bien ce qui se passe
et que tu (t')embrouille avec des notions hors sujet ici
("portée" de variable...)

Ce que ce qui se passe me paraît somme toute plus simple,
et peut être décrit comme juste une création et insertion de texte :

1) le squelette inclu génère un texte.

2) ce texte est inséré dans le squelette appelant à l'endroit de l'inclure

3) lorsque l'inclure est fait en partie 'valeur' (droite) d'un #SET,
    le #SET affecte la variable (partie gauche)
    ... avec le texte généré par le squelette inclu.

JLuc

denisb a écrit :

RealET a écrit :

Tu as oublié de mettre aussi :
#GET{mon_retour}

ok.
je reprends donc :

test_boucle.html (appelant) :
  [(#SET{mon_appel, #INCLURE{fond=test_boucle2}})]

  la *valeur calculée* dans le squelette appelé est bien
  <br />
  *affectée* à la variable définie dans le squelette appelant :
  GET{mon_appel} => ' #GET{mon_appel} '
  <br />
  alors que la *variable définie* dans le squelette appelé
  <br />
  n'est pas *transmise* au squelette appelant :
  GET{mon_retour} => ' #GET{mon_retour} '

test_boucle2.html (appelé) :
  #SET{mon_retour, retour noisette}
  #GET{mon_retour}

résultat affiché :
  la *valeur calculée* dans le squelette appelé est bien
  <br />
  *affectée* à la variable définie dans le squelette appelant :
  GET{mon_appel} => ' retour noisette'
  <br />
  alors que la *variable définie* dans le squelette appelé
  <br />
  n'est pas *transmise* au squelette appelant :
  GET{mon_retour} => ' '