La portlet Liste permet d’effectuer une requête Nuxeo en utilisant le langage NxSQL.

Il est possible ensuite de spécifier des éléments sur cette liste :

  • Choix de l’état des éléments requetés (publié ou live),
  • Affichage des métadonnées lors de l’affichage de la portlet,
  • Affichage de la requête calculée (pour tests),
  • Possibilité de limiter les résultats de recherche,
  • Possibilité de gérer une pagination,
  • Possibilité de spécifier un style d’affichage pour la liste,
  • Possibilité de gérer un cache profilé (scope),
  • Référence permalink, permet de générer un lien permanent sur la liste,
  • Référence RSS permet d’identifier un flux RSS pour cette liste,
  • Titre RSS correspond au titre du flux RSS.

Exemple de code NxSql en utilisant les selecteurs :

/*
implicits variables :
   - navigationPath :  current navigation folder path
   - navigationPubInfos : current navigation publication infos   
           navigationPubInfos.getLiveId() to get folder's live ID
   - basePath :  page folder path
   - contentPath : current item path
   - request : portlet request 
   - params : public selectors (shared parameters)
   - spaceId : space's (workspace or published space) live id
*/

import java.util.List;
import java.util.Arrays;		

String requete =  "ecm:path STARTSWITH '"+navigationPath+"'";

// format search by title
if (params.get("title") != null) {
requete += " AND " + NXQLFormater.formatTextSearch("dc:title",params.get("title")) ;
}

//format for dates search
if (params.get("datesId") != null) {
requete += " AND " + NXQLFormater.formatDateSearch("dc:created",params.get("datesId")) ;
}

// format search by nature

if (params.get("nature") != null) {
requete += " AND " + NXQLFormater.formatVocabularySearch("dc:nature",params.get("nature")) ;
}

// get childrens
requete +=  "AND ecm:parentId =  '"+navigationPubInfos.getLiveId()+"'";


requete += " ORDER BY dc:modified DESC";

return requete;