[spip-dev] [Spip-en] Problem with dynamic tag

This isn’t normal. I forward to spip-dev : this is certainly a bug of this version

I'm not sure.

You need to look at the PHP code produced by SPIP for your skel, or for a very short skel with just your bug.

I think that dynamic tag create a PHP code, like
[ before (#DYNAMIC) after ] is understood as [ before ("<?php return balise_DYNAMIC_stat(); (or anything else) ?>") after ]

So, for SPIP, there is allways content into.

MM.

Hi,

I think that dynamic tag create a PHP code, like
[ before (#DYNAMIC) after ] is understood as [ before (« <?php return balise_DYNAMIC_stat(); (or anything else) ?> ») after ]

So, for SPIP, there is allways content into.

An empty string is a positive content for SPIP ?
The case described here is a function that returns NULL;

Алексей Ярощук : could you share the generated PHP cache (with a template that produces the bug as small as possible) ?
On http://spip.pastebin.fr/ for ex.

Thanks,

.Gilles

Ok, je crois que j’ai pigé.

Par contre, si on met le résultat dans un #SET, ça ne permet pas de contourner ce problème ?
#SET{variable,#DYNAMIQUE}
[avant (#GET{variable}) apres]

?

2012/4/14 Matthieu Marcillaud <marcimat@rezo.net>

C'est d'ailleurs quelque part dans la doc il me semble : les parties conditionnelles ET les filtres ne peuvent être appliqués qu'à des balises statiques.

La doc officielle sur la syntaxe générale :
http://www.spip.net/fr_article899.html

"attention : cet affichage conditionnel ne fonctionne pas avec les balises dynamiques (par exemple #URL_LOGOUT)."

Bonjour,

Je vais écrire en français, tu traduiras Gilles ?

Je viens de vérifier mes dires et c'est effectivement cela :
une balise dynamique retourne comme contenu un code PHP qui sera exécuté. Le code est créé par synthetiser_balise_dynamique() appelé par executer_balise_dynamique() dans ecrire/public/composer.php

Ce code PHP, c'est le contenu retourné par la balise. À ce moment là, on ne sait pas ce que produira le code PHP lorsqu'il sera exécuté, c'est ça le dynamisme ! On ne sait pas s'il retournera ou non du contenu.

On ne peut donc pas appliquer [ avant (#DYNAMIQUE) après ] car cela renvoie toujours «avant» et «après» car la balise retourne toujours du contenu (le code PHP à exécuter).

Est-ce plus clair ?

Matthieu.

Le 14/04/2012 01:46, Gilles Vincent a écrit :

Hi,

On Fri, Apr 13, 2012 at 9:34 PM, Matthieu Marcillaud
<marcimat@rezo.net
<mailto:marcimat@rezo.net>> wrote:

    I think that dynamic tag create a PHP code, like
    [ before (#DYNAMIC) after ] is understood as [ before ("<?php return
    balise_DYNAMIC_stat(); (or anything else) ?>") after ]

    So, for SPIP, there is allways content into.