【问题标题】:Loop through a list of Tags and compare xWiki遍历标签列表并比较 xWiki
【发布时间】:2013-08-28 14:27:09
【问题描述】:

我有一个实施了标签系统的 xwiki 项目。我想做的是解决this 问题。当我点击一个标签时,我得到了正确的输出,但我想根据文档的其他标签对文档进行排序,这意味着我需要一种通过多个标签进行搜索的方法。我所做的是获取带有第一个标签的文档列表,然后使用#foreach 查看每个文档以查找我需要显示的标签。

#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

编辑 2::::

所以现在#foreach 循环给了我正确的输出,但我的问题是我想显示 $doc,因为如果#{{html}} #displayDocumentList($doc false $blacklistedSpaces){{/html}} 有效,它将显示它。不是因为我认为第一个参数应该是一个列表,而这里 $doc 只是一个文档。

【问题讨论】:

    标签: velocity xwiki


    【解决方案1】:

    所以,这里是如何显示您的文档。一旦你得到$doc,使用这一行来显示你的文档,{{display reference="$doc"/}}

    这是Display Macro的链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 2017-08-06
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 2021-04-21
      相关资源
      最近更新 更多