2013-08-26 3 views
1

태그 시스템이 구현 된 xwiki 프로젝트가 있습니다. 내가 뭘 하려는지 해결 this 문제입니다. 태그를 클릭하면 올바른 결과를 얻지 만 다른 태그에 따라 문서를 정렬하려고합니다. 즉 여러 태그로 검색 할 필요가 있습니다. 내가 한 것은 첫 번째 태그로 태그가 지정된 문서 목록을 얻은 다음 #foreach을 사용하여 각 문서에서 보여줄 필요가있는 태그를 찾습니다.태그 목록을 반복하고 xWiki를 비교하십시오.

#set ($tag = "$!{request.get('tag')}") 
#set ($list = $xwiki.tag.getDocumentsWithTag($tag)) 
#foreach($doc in $list) 
    #set ($tags = $xwiki.tag.getTagsFromDocuments($doc)) 
    #foreach($tg in $tags) 
     #if($tg == 'Tutorial') 
     {{html}} #displayDocumentList($doc false $blacklistedSpaces){{/html}} 
     #end 
    #end 
#end 

위의 코드는 $tagTutorial로 태그 된 문서를 찾습니다. 매우 효율적으로 보일 수는 없지만이 시점에서 효율성을 기대하지는 않습니다. 작동하도록 위의 코드가 필요하며 이유가 없습니다.

편집 ::::

다른 해결책을 시도했습니다. 이번에는 $list$list2이 표시됩니다. 여기서 $list은 첫 번째 태그가있는 모든 문서이고 $list2은 두 번째 태그가있는 문서입니다. 그런 다음 두 번째 목록에서 각 문서의 전체 이름을 한 목록의 모든 문서의 전체 이름과 비교합니다. 아직도 작동하지 않습니다. 여기에 코드

#set ($tag = "$!{request.get('tag')}") 
#set ($list = $xwiki.tag.getDocumentsWithTag($tag)) 
#set ($list2 = $xwiki.tag.getDocumentsWithTag('Tutorial')) 
    #foreach($doc in $list) 
    #foreach($doc2 in $list2) 
     #if($doc.fullName == $doc2.fullname) 
       $doc 
     #end 
    #end 
    #end 

EDIT입니다 그래서 2 ::::

이제 #foreach 루프 나에게 정확한 출력을 제공하지만 내 문제는 내가 #{{html}} #displayDocumentList($doc false $blacklistedSpaces){{/html}}가 있다면 그것을 표시하는 것처럼 $의 문서를 표시 할 것입니다 유효한. 첫 번째 매개 변수가 목록이어야하고 여기에 $ doc가 하나의 문서라고 생각하기 때문이 아닙니다.

답변

1

문서를 표시하는 방법은 다음과 같습니다. 당신이 당신의 문서를 보여 $doc 사용이 줄을 일단, 여기

{{display reference="$doc"/}}Display Macro

에 대한 링크입니다
관련 문제