[spip-dev] Critère annee et champs annee sont dans un bateau

Après passage en SPIP 3, je me retrouve avec un petit problème.

Soit une table additionnelle crée par un plugin.
Cette table comprends un champs ‘annee’.

Une boucle <BOUCLE_test(OBJETS){annee=2012}>#ANNEE</BOUCLE_test> ne fonctionne plus correctement.

Un tour sur le débuggeur. La requête SQL produite est :

Tickets ouvert : http://core.spip.org/issues/2912

Joseph

Au passage, une astuce trouvée pour régler (au moins temporairement le souci) :

function zotspip_post_boucle ($boucle) {
if ($boucle->id_table == ‘zitems’) {
$boucle->where = replaceTree (‘YEAR(zitems.date)’,‘zitems.annee’,$boucle->where);
}
return $boucle;
}

// Source: http://kvz.io/blog/2008/09/05/php-recursive-str-replace-replacetree/
function replaceTree($search="", $replace="", $array=false, $keys_too=false)
{
if (!is_array($array)) {
// Regular replace
return str_replace($search, $replace, $array);
}

$newArr = array();
foreach ($array as $k=>$v) {
// Replace keys as well?
$add_key = $k;
if ($keys_too) {
$add_key = str_replace($search, $replace, $k);
}

// Recurse
$newArr[$add_key] = replaceTree($search, $replace, $v, $keys_too);
}
return $newArr;
}