Soucis avec un INCLURE qui ne transmets pas de paramètres

Bonjour à tous,

Dans un squelette je fais:
---------8<--------------
<!--Vérification de l'authentification-->
<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule}
        {id_article=#ENV{id_article}}
)]
  <!--Fin de la zone à authentification-->
<?php } else { ?>

<h2>Cette partie est en accès restreint</h2>
#LOGIN_PUBLIC

<?php } ?>
--------->8----------------

Je m'attends donc, si une personne est authentifiée à ce que l'INCLURE se
fasse.
Hélas, ce squelette mène à une erreur 500 pour une raison que je ne
comprends pas.

Quand je corrige ainsi:
---------8<--------------
<!--Vérification de l'authentification-->
<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=#ENV{id_article}}
)]
  <!--Fin de la zone à authentification-->
<?php } else { ?>

<h2>Cette partie est en accès restreint</h2>
#LOGIN_PUBLIC

<?php } ?>
--------->8----------------

l'INCLURE se fait bien, mais sans transmission des paramètres (id_article) à
la noisette bidule. J'ai bien vérifié qu'#ENV{id_article} soit défini !!

Que se passe-t-il ? Avez-vous déjà vu ça ???

--
MARNE Bertrand

MARNE Bertrand a écrit :

Bonjour à tous,

Dans un squelette je fais:
---------8<--------------
<!--Vérification de l'authentification-->
<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule}
        {id_article=#ENV{id_article}}
)]
  <!--Fin de la zone à authentification-->
<?php } else { ?>

<h2>Cette partie est en accès restreint</h2>
#LOGIN_PUBLIC

<?php } ?>
--------->8----------------

Je m'attends donc, si une personne est authentifiée à ce que l'INCLURE se
fasse.
Hélas, ce squelette mène à une erreur 500 pour une raison que je ne
comprends pas.

Quand je corrige ainsi:
---------8<--------------
<!--Vérification de l'authentification-->
<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=#ENV{id_article}}
)]
  <!--Fin de la zone à authentification-->
<?php } else { ?>

<h2>Cette partie est en accès restreint</h2>
#LOGIN_PUBLIC

<?php } ?>
--------->8----------------

l'INCLURE se fait bien, mais sans transmission des paramètres (id_article) à
la noisette bidule. J'ai bien vérifié qu'#ENV{id_article} soit défini !!

Que se passe-t-il ? Avez-vous déjà vu ça ???

P'tet simplement un mélange du compilo SPIP entre les { et }...
As-tu essayé :?

<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=[(#ENV{id_article})]})]

Par ailleurs, il existe une balise #SESSION (plugin pour 1.9.2 ou par defaut en spip 2.0 beta)

--
MM.

Merci de ta réponse, hélas...

Matthieu Marcillaud wrote:

P'tet simplement un mélange du compilo SPIP entre les { et }...
As-tu essayé :?

<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=[(#ENV{id_article})]})]

Je viens de faire l'essai, sans succès...

Par ailleurs, il existe une balise #SESSION (plugin pour 1.9.2 ou par
defaut en spip 2.0 beta)

Et j'ai essayé aussi sans succès...

Le problème est plus vaste qu'il n'y paraissait:

Je viens de créer un squelette test.html:
---------8<----------
id_article=#ID_ARTICLE<br>
[(#INCLURE{fond=test-inclu,id_article=#ID_ARTICLE})]
fin.
-------->8----------

et un squelette test-inclu.html:
--------8<----------
id_article inclu=#ID_ARTICLE<br>
------->8-----------

avec http://truc.chose/spip.php?page=test&id_article=115&var_mode=calcul
j'obtiens:
--------8<---------
id_article=115<br>
id_article inclu=<br>
fin.
------->8-----------

Argh ??? J'ai un Spip 1.9.2d (rev 11132)... je vais essayer avec 1.9.2e.
Mais là je crois avoir péché un gros bug...

Pourtant j'ai des squelettes bien plus complexes (même ultra complexes !!!)
dans lesquels il y a des inclusions avec transmission d'une pelleté de
paramètres se passe bien...
Pourquoi dans cet exemple tout simple ça marche pas ???

J'ai dû oublier un truc... Mais... QUOI ???

NB: j'ai aussi essayé #ENV{id_article} dans test-inclu à la place de
#ID_ARTICLE. J'ai aussi essayé de transmettre autre chose, y compris une
valeur statique, genre [(#INCLURE{fond=test-inclu,bidule=115})]... et ça
fonctionne pas ! HELP !!

--
MARNE Bertrand

MARNE Bertrand a écrit :

Merci de ta réponse, hélas...

Matthieu Marcillaud wrote:

P'tet simplement un mélange du compilo SPIP entre les { et }...
As-tu essayé :?

<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=[(#ENV{id_article})]})]

Ah oui pardon :

[(#INCLURE{fond=optim}{id_article})] OK
[(#INCLURE{fond=optim}{id_article=3})] OK
[(#INCLURE{fond=optim}{id_article=#ENV{bidule}})] OK

[(#INCLURE{fond=optim,id_article=3})] Faux, cette syntaxe qui n'existe pas en fait...

--
MM.

Merci Matthieu pour ton aide !

Matthieu Marcillaud wrote:

Ah oui pardon :

[(#INCLURE{fond=optim}{id_article})] OK
[(#INCLURE{fond=optim}{id_article=3})] OK
[(#INCLURE{fond=optim}{id_article=#ENV{bidule}})] OK

[(#INCLURE{fond=optim,id_article=3})] Faux, cette syntaxe qui n'existe
pas en fait...

Bien sûr tu as raison, je me suis complêtement embrouillé... Comme j'étais
sur une fausse piste je ne trouvais rien. Et en fait le problème était plus
basique:
Je faisais un:
[(#INCLURE{fond=article}
        {id_article=#ENV{id_article}}
)]
dans un squelette article-7.html... Évidement ça mène au plantage puisque
l'INCLURE appelle à nouveau article-7.html dès que l'article est dans la
rubrique 7 et ainsi de suite... la boucle est fatale !

Grosse bétise de ma part et beaucoup de bruit pour rien...

Donc tout va bien. Encore merci !

--
MARNE Bertrand

Bonjour,

J'essaie de passer des paramètres à un script PHP à partir d'un INCLURE dans un squelettes, ... en vain.

Dans mon squelette sommaire.html j'ai :
[(#INCLURE{fond=aff_lien}{rubrique=36})]
Dans mon dossier squelettes, j'ai un fichier aff_lien.html qui contient
: <?echo $rubrique; ?>

Hélas impossible d'obtenir la valeur de l'argument :frowning:

Si vous aviez une petite idée sur le problème, cela m'aiderait bien.

Merci pour votre aide,
Cordialement.

Matthieu Marcillaud wrote:

MARNE Bertrand a écrit :

Merci de ta réponse, hélas...

Matthieu Marcillaud wrote:

P'tet simplement un mélange du compilo SPIP entre les { et }...
As-tu essayé :?

<?php if ($auteur_session) { ?>
[(#INCLURE{fond=bidule,id_article=[(#ENV{id_article})]})]

Ah oui pardon :

[(#INCLURE{fond=optim}{id_article})] OK
[(#INCLURE{fond=optim}{id_article=3})] OK
[(#INCLURE{fond=optim}{id_article=#ENV{bidule}})] OK

[(#INCLURE{fond=optim,id_article=3})] Faux, cette syntaxe qui n'existe pas en fait...

Le 14 nov. 08 à 15:04, ko a écrit :

Bonjour,

J'essaie de passer des paramètres à un script PHP à partir d'un INCLURE dans un squelettes, ... en vain.

Dans mon squelette sommaire.html j'ai :
[(#INCLURE{fond=aff_lien}{rubrique=36})]
Dans mon dossier squelettes, j'ai un fichier aff_lien.html qui contient
: <?echo $rubrique; ?>

Hélas impossible d'obtenir la valeur de l'argument :frowning:

#ENV{rubrique}

devrait remplacer avantageusement le code php :slight_smile: