Recuperer tous les noeux présent a partir d'une racine

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

Recuperer tous les noeux présent a partir d'une racine

Bonjour,

j'ai le problème suivant:

jusqu'à maintenant pour afficher mes document d'alfresco j'utilisais ce script:

dans un JS exécuter coté serveur:
var folder = roothome.childByNamePath(args.url);
model.folder = folder;

et je parcours mes noeux dans mon .ftl de cette manière:
<#list folder.children as node>

Maintenant ce qu'il me faudrait c'est pouvoir récupérer tout les noueux a partir d'un noueux racine c'est a dire je donne le nom exact d'un noueux "home" par exemple et je voudrais récupéré toutes arborescence en dessous de ce noueux au lieu de - comme le fait le code ci-dessus: childByNamePath('noueux') - récupéré uniquement les fils du noueux donné (que les fils direct).

Avez vous une solution a me proposer?

Merci.
6 Replies
rguinot
Customer

Re: Recuperer tous les noeux présent a partir d'une racine

possible avec une requête lucene qui filtre sur le PATH et le type (cm:folder)

voir http://wiki.alfresco.com/wiki/JavaScript_API_Cookbook#Find_All_Documents_using_Lucene_Search
et http://wiki.alfresco.com/wiki/Search
argorate
Member II

Re: Recuperer tous les noeux présent a partir d'une racine

Je n'y connais rien dans ce genre de truc, j'ai essayé un truc de se genre mais ça me fait une page blanche maintenant…

model.folder = search.luceneSearch("( PATH:\"/cm:folder//*\" ) AND ( TEXT:test)");

J'imagine qu'il doit pas y avoir se qu'il faut..?

EDIT:

je viens enfin de trouver, mais j'ai quand meme un pb, si je met ça:
model.resultset = search.luceneSearch("( TEXT:test*)");
j'arrive a afficher se que ça me renvoi, le problème c'est qu'il y a bien certains fichiers qui contiennent le mot "test" mais une grande majorité non! je ne comprend pas trop comment ça marche? de plus il ne cherche que les fichier (aucun dossier/espace) comment faire pour avoir les deux?

EDIT 2: apparemment c'est parce que ça recherche aussi dans le contenu des fichier le mot "test", d'où les fichiers qui ne contenaient pas le mot "test" dans leur nom, mais j'aurais besoin de savoir comment lui dire de rechercher les fichiers ET dossiers/espaces? svp

FINAL EDIT: j'ai trouvé! ça a été laborieux, mais au cas où ca aide qqun, voilà se que j'ai:

model.resultset = search.luceneSearch("(@cm\\:name:\"test\" AND TYPE:\"cm:folder\") OR (TEXT:test)");
argorate
Member II

Re: Recuperer tous les noeux présent a partir d'une racine

C'est encore moi^^ en fait je viens de me rendre compte que c'est bien beau d'avoir les résultat avec les dossiers, le problème c'est qu'il faudrait que j'ai le lien pour les utilisateurs qui clique sur ces dossiers. Donc il me faudrait arborescence ou du moins l'url de l'emplacement de chaque dossier que trouve la recherche.

Alors j'ai tenté a tout hasard un ${node.url} mais le problème c'est que ça sort des trucs bizarre du genre :
/n/browse/workspace/SpacesStore/2787d166-f9e7-4083-ab92-ee44f1cf0d79

Donc ça m'aide pas trop :s une idée d'où ou comment récupérer la "vrai" url?
jayjayecl
Active Member II

Re: Recuperer tous les noeux présent a partir d'une racine

C'est la vraie URL, ou plutôt son suffixe.
Dans votre exempl,e il faut rajouter http://{host}:{port}/alfresco/

Cela construira l'URL de navigation directe :
http://localhost:8080/alfresco/n/browse/workspace/SpacesStore/2787d166-f9e7-4083-ab92-ee44f1cf0d79
argorate
Member II

Re: Recuperer tous les noeux présent a partir d'une racine

Non en fait il y a plus simple:

il suffit de faire : ${node.displayPath} au lieu du ${node.path} qui marchait pas.

Donc c'est bon ça marche Smiley Wink

thx
argorate
Member II

Re: Recuperer tous les noeux présent a partir d'une racine

Type de résultat avec une recherche luceneSearch??

J'aurais besoin de savoir ce qu'on obtient avec une recherche lucen? car sur mon GED j'obtiens deux résultat diffèrent avec les mot "pol" et "politique"… Cela recherche dans le nom des fichiers + les contenus ou juste le nom pour un dossier j'ai cru comprendre?

Quelqu'un peut il me dire précisément comment ça fonctionne?