[spip-dev] Recuperer_fond et <BOUCLE sur tables inconnues

Hello

Je viens d'être confronté à un truc bizarre :

Soit un fond toto.html contenant une boucle sur une table n'existant pas :

- Avant
<B_zones>
- Boucle avant
     <BOUCLE_zones(TOTO)>
     - Boucle dans : #TITRE
     </BOUCLE_zones>
- Boucle apres
</B_zones>
- Boucle sinon
<//B_zones>
- Apres

Si l'on appelle spip.php?page=toto : l'erreur sur table inconnue apparaît.

Si l'on appelle depuis le privé
echo recuperer_fond('toto');
Aucune erreur n'est affiché, mais surtout, nous pouvons lire :

- Avant
- Boucle avant
- Boucle apres
- Apres

Comme si la boucle avait des résultats, et ça, c'est embetant !

Quelqu'un reproduit-il en svn ?

Matthieu Marcillaud a écrit :

Hello

Soit un fond toto.html contenant une boucle sur une table n'existant pas :

- Avant
<B_zones>
- Boucle avant
     <BOUCLE_zones(TOTO)>
     - Boucle dans : #TITRE
     </BOUCLE_zones>
- Boucle apres
</B_zones>
- Boucle sinon
<//B_zones>
- Apres

Si l'on appelle spip.php?page=toto : l'erreur sur table inconnue apparaît.

Si l'on appelle depuis le privé
echo recuperer_fond('toto');
Aucune erreur n'est affiché, mais surtout, nous pouvons lire :

- Avant
- Boucle avant
- Boucle apres
- Apres

En allant plus loin :
si l'on fait : <INCLURE{fond=toto}>, cela est identique à recuperer_fond() : aucune erreur signalée et affichage des parties conditionnelles de la boucle (alors que la table n'existe pas)

En entrant en mode debug, on comprend ce qui se passe : La fonction de la boucle générée est :

function BOUCLE_zoneshtml_d13c92d0dde19cd379a7129cff32ce05(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
  $connect = '';
}

Or, cette fonction ne retourne RIEN (NULL)

Mais le test effectué sur la fonction, affiche la partie conditionnelle si la boucle ne retourne pas '' (texte vide) et non NULL aussi...

(($t1 = BOUCLE_zoneshtml_d13c92d0dde19cd379a7129cff32ce05($Cache, $Pile, $doublons, $Numrows, $SP))!=='' ?
          ( ... ...

Il y a donc une petite coquille dans le compilateur je crois comprendre.
Quelqu'un saurait-il corriger sans tout casser ^^ ?

PS: en ajoutant (manuellement) return ''; dans la fonction de boucle, j'obtiens bien : - Avant - Boucle sinon - Apres

oui:

http://trac.rezo.net/trac/spip/changeset/11619

Committo,Ergo:Sum

Committo,Ergo:sum a écrit :

Comme les {ajax} vont devenir une étape obligée et que ajaxCallback.js est
constamment inséré dans insert_head... on recharge le hack pour les images
d'IE à chaque load...

Modified:
   spip/ecrire/inc/msiefix.php

Pourquoi ne pas virer tous ces multiples 'hack' disséminés un peu partout au
profit d'un seul et unique 'hack' global (11k) pour mettre IE 5.5 et 6 au
niveau de IE 7, voire de IE 8, et ce autant pour l'espace privé que pour le
site public (du moins pour la /dist/) ?

    http://dean.edwards.name/weblog/2008/01/ie7-2/
    http://ie7-js.googlecode.com/svn/test/

Il me semble que ça nous simplifierait beaucoup la vie.

Jusqu'ici, je n'ai pas vu d'incompatibilité avec Jquery et ses extensions,
sinon quelque redondance avec certaines extensions (comme
jquery.ifixpng.js).

André V.

S'lt

De meme pas de pb constaté avec le script dean edward. Il fait bien
son boulot et évite de se prendre la tete avec divers hacks eparpillés
et pas necessairement commentés.

Km