je suis pas sur de comprendre pourquoi ca n'est pas faisable dans pre_boucle/post_boucle
on peut y modifier les order[] ou le default_order de la boucle, non ?
Par ailleurs, dans ta proposition, tu ajoute un critere {par ...} sans savoir ce qu'il y a comme critere deja present dans la boucle, et il me semble que du coup ca risque de conflicter avec un eventuel critere {par...} deja present, non ?
je suis pas sur de comprendre pourquoi ca n'est pas faisable dans pre_boucle/post_boucle
on peut y modifier les order ou le default_order de la boucle, non ?
Oui, on peut le faire en "order" ... mais je trouve dommage que SPIP connaissant les critères, on puisse pas simplement lui dire "ajouter un critère "truc" dans la boucle...., ce qui me parait plus propre.
Par ailleurs, dans ta proposition, tu ajoute un critere {par ...} sans savoir ce qu'il y a comme critere deja present dans la boucle, et il me semble que du coup ca risque de conflicter avec un eventuel critere {par...} deja present, non ?
Effectivement, mais il suffit de tester qu'il n'y ait pas déjà un critere ->op=='par' dans les critères pour l'ajouter...
je suis pas sur de comprendre pourquoi ca n'est pas faisable dans pre_boucle/post_boucle
on peut y modifier les order ou le default_order de la boucle, non ?
Oui, on peut le faire en "order" ... mais je trouve dommage que SPIP connaissant les critères, on puisse pas simplement lui dire "ajouter un critère "truc" dans la boucle...., ce qui me parait plus propre.
justement, c'est discutable :p, cf ci-dessous
Par ailleurs, dans ta proposition, tu ajoute un critere {par ...} sans savoir ce qu'il y a comme critere deja present dans la boucle, et il me semble que du coup ca risque de conflicter avec un eventuel critere {par...} deja present, non ?
Effectivement, mais il suffit de tester qu'il n'y ait pas déjà un critere ->op=='par' dans les critères pour l'ajouter...
Cela suppose que tu connaisses tous les critères possibles (y compris d'eventuels criteres personalises) qui ajoutent un order.
Alors qu'en utilisant pre_boucle et en mettant en default_order ton tri, celui ci ne sera pris que si aucun autre tri n'est ajouté.
Cédric
cedric.morin@yterium.com a écrit :
suppose que tu connaisses tous les critères possibles (y compris
d'eventuels criteres personalises) qui ajoutent un order.
Alors qu'en utilisant pre_boucle et en mettant en default_order ton tri, celui ci ne sera pris que si aucun autre tri n'est ajouté.
Cédric
Bon,d'accord, on obtient le même résultat (pour cet exemple, avec) :
function monpipe_pre_boucle($boucle){
if (in_array($boucle->type_requete, array('rubriques','articles'))
AND !$boucle->order) {
array_unshift($boucle->select, "0+" . $boucle->id_table . ".titre AS autonum");
$boucle->order = "'autonum'";
$boucle->order = "'".$boucle->id_table . ".titre'";
}
return $boucle;
}