Je suis en train de m'arracher les cheveux sur une boucle perso.
Ça marche nickel en 1.8.2 mais pas en 1.9, et je ne comprend plus rien
à ce qu'on doit avoir dans tables_principales si on veut forcer la
déclaration.
Le but du jeu c'est de faire une boucle permettant d'itérer sur un
tableau (http://www.spip-contrib.net/ecrire/articles.php3?id_article=1131)
Comme il n'y a pas de table associée, il faut forcer la déclaration, donc :
$tableau = array(
"var" => "varchar(100)",
"cle" => "varchar(100)",
"valeur" => "varchar(100)"
);
$tableau_key = array(
"PRIMARY KEY" => "cle"
);
$GLOBALS['tables_principales']['tableau'] =
array('field' => &$tableau, 'key' => &$tableau_key);
Mais, soit je met 'spip_tableau' et il ne trouve plus les #CLE et #VALEUR,
soit je met 'tableau' et j'ai une erreur ligne 535 de inc-criteres
(sur le «if (!array_key_exists($col, $desc['field']))» quand il analyse
le critere {var=...} (mais le résultat obtenu est correct !)
Cette même écriture marche nickel en 1.8.2
Dans trouver_def_table, si j'ajoute
if ($desc = $tables_principales[$nom])
return array($nom, $desc);
juste après le
if ($desc = $tables_principales['spip_' . $nom])
return array('spip_' . $nom, $desc);
ça marche nickel, mais est-ce que ça pose un problème ailleurs dans ce cas ?
Le mail d'annonce de cette évolution avait l'air de dire qu'il fallait utiliser
une notation spip_.., doit bien y avoir une raison ???
Help (je sais, j'l'ai déjà faite hier soir celle là ...)