Je ne sais pas si c’est exactement ce que tu recherches, mais de mon côté je fais comme ça :
#SET{req,"SELECT o.id_oeuvre "
" FROM spip_oeuvres AS o "
" WHERE 1"
}
Un autre exemple plus compliqué avec des GET à l’intérieur :
#SET{req,"SELECT o.id_oeuvre "
" FROM spip_oeuvres AS o "
#GET{join}
" WHERE o.statut = 'publie' "#GET{where_musee}#GET{where}#GET{where_numinventaire}#GET{where_visuel_hd}#GET{where_recherche}
" GROUP BY o.id_oeuvre ORDER BY "#GET{order}
}
Merci pour vos propositions.
Je trouve mon |replace encore plus élégant.
Vous pouvez le marquer « sans attente de nouvelle réponse ».
Ne peut-on pas proposer cette amélioration dans SPIP ? Que les itérateurs SQL acceptent une requête sur plusieurs lignes (ce que tout interpréteur SQL admet) ?
Mais de toute façon, si \n n’est pas accepté lorsque la requête est fabriquée dans le squelette lui même, peu importe la manière de le fabriquer, et il n’y a pas de raison que ça soit mieux accepté lorsque c’est fabriqué par une inclusion.
Donc dans ton fichier inclu, #FILTRE{trim} ne suffit pas puisque c’est le \n en milieu de chaine qu’il faut retirer.
En fait le inclure renvoyait bien le bon contenu, mais c’est l’affection #SET qui ne fonctionnait pas, le simple #GET renvoyant une chaîne comme « %##3@ »… Il ne faut pas mettre de guillemets dans l’argument de #SET :