[FreeMarker] Trier le résultat d'une requête XPath

cancel
Showing results for 
Search instead for 
Did you mean: 
lil
Member II

[FreeMarker] Trier le résultat d'une requête XPath

Salut,

J'ai un template qui affiche des documents dans un dashlet. Pour trouver les documents à afficher, je fais une requête XPath :
<#assign allNews=companyhome.childrenByXPath["//.[@MyProject:actualite='actu']"]?reverse>

Je ne comprend pas comment sont triés les résultats :   

Name      Date de publication   Date de l'événement
————————————————————–
TestActuZ   Jul 16, 2008 11:46:27 AM    
testActu   Jul 16, 2008 10:53:43 AM   Aug 16, 2008 10:53:00 AM
test      Jul 9, 2008 6:08:30 PM    
asdf      Jul 15, 2008 11:47:56 AM    
24554.jpg   Jul 16, 2008 11:36:42 AM    
Publication   Jul 9, 2008 6:06:28 PM

Comment faire pour qu'ils soient triés par date de publication ?

Merci d'avance
2 Replies
rguinot
Customer

Re: [FreeMarker] Trier le résultat d'une requête XPath

C'est possible :

<#assign allNews=companyhome.childrenByXPath["//.[@MyProject:actualite='actu']"]?sort_by(["properties","creationdate"])?reverse>

Vous pouvez trier par n'importe quelle métadonnée.
La doc est ici : http://www.freemarker.org/docs/ref_builtins_sequence.html#ref_builtin_sort_by

En revanche, si vous avez beaucoup de noeuds à parcourir, je vous recommande plutôt de passer par une requête Lucene, la méthode de tri sera identique.
lil
Member II

Re: [FreeMarker] Trier le résultat d'une requête XPath

Parfait, avec
<#assign allNews=companyhome.childrenByXPath["//.[@ISFB:actualite='isfbActu']"]?sort_by(['properties', 'created'])?reverse>

ça marche, merci beaucoup.