Bonjour,
suite à un traitement de réponses d’un formulaire via le plugin formidable je souhaite trier selon un champ date ‹ date_1 › mes réponses, je fais:
<BOUCLE_reponse(FORMULAIRES_REPONSES){id_formulaire}{tri_selon_reponse date_1}>
seulement le tri ne se fais pas !
en sql la requête :
(L1.nom = 'date_1') ORDER BY STR_TO_DATE(L1.valeur,'%d/%m/%Y')
Je passe par la fonction tri_selon_reponse qui fonctionne avec un champ text :
function critere_tri_selon_reponse_dist($idb, &$boucles, $crit) {
$boucle = &$boucles[$idb];
$t = $boucle->id_table;
if ($t=='formulaires_reponses') {
$not = $crit->not;
$_quoi = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent);
$k = count($boucle->join)+1;
$boucle->join[$k]= array("'$t'","'id_formulaires_reponse'");
$boucle->from["L$k"]= 'spip_formulaires_reponses_champs';
$op = array("'='", "'L$k.nom'", "sql_quote(".$_quoi.")");
$boucle->where[]= array("'?'","!in_array($_quoi,array('date','id_formulaires_reponse'))",$op,"''");
$boucle->order[]= "(in_array($_quoi,array('date','id_formulaires_reponse'))?'$t.'.$_quoi:(strncmp($_quoi,'date_',5)==0?'STR_TO_DATE(L$k.valeur,\'%Y/%m/%d\')':'L$k.valeur'))".($not?".' DESC'":"");
}
}
Merci d’avance.
post d’origine: