如何在xwiki

时间:2018-02-07 16:33:42

标签: javascript macros tags xwiki

我使用xwiki创建一个wiki。我想动态显示页面列表(在livetable中或只是批量)。所以我使用标签系统。

目前我使用的是HTML宏+ iframe,但它显示了包含标题,侧边菜单,选项等的所有页面。

我已经尝试了this snippet,但没有显示任何内容,而且我不太了解所有代码,我不确定这是不是很好的解决方案。

我尝试使用Display和Include宏:

{{display reference="Main.Tags"/}}

它在云端显示我的所有标签。

但要拥有我想要的东西,我应该用

指定这段代码
queryString="do=viewTag&tag=Test"

或类似的东西,但我不知道该怎么做。

因此,如果您想要显示具有相同标签的页面列表,我将很乐意阅读它:)

感谢。

EDIT1

所以我继续努力,用下面的指示显示我想要的东西:

    {{velocity}}
#set ($list = $xwiki.tag.getDocumentsWithTag('test'))
#foreach($doc in $list)
  $doc
#end
{{/velocity}}

但问题是显示文档的所有路径。

    Wiki Interne.2\. Liste des flux TEST.2_1_Flux_Externes_Entrants.AGDAT01.WebHome
Wiki Interne.2\. Liste des flux TEST.2_1_Flux_Externes_Entrants.AGOL20.WebHome
Wiki Interne.2\. Liste des flux TEST.2_1_Flux_Externes_Entrants.AGOL21.WebHome
Wiki Interne.2\. Liste des flux TEST.2_1_Flux_Externes_Entrants.AGOL22.WebHome

如何仅将显示限制为文档标题?

3 个答案:

答案 0 :(得分:0)

您可以使用Livetable宏(http://extensions.xwiki.org/xwiki/bin/view/Extension/Livetable%20Macro)列出您想要的页面,并将其自定义为仅显示标记有特定标记的页面。

{{velocity}}
#set($collist = ['doc.title', 'doc.location', 'doc.date', 'doc.author'])
#set($colprops = {
 'doc.title' : { 'size' : 30, 'link' : 'view', 'filterable': false, 'sortable': false },
 'doc.location' : { 'html' : true },
 'doc.date' : { 'type' : 'date' },
 'doc.author' : { 'type' : 'text', 'link' : 'author' }
})
#set($options = {
 'translationPrefix' : 'platform.index.',
 'rowCount' : 15,
 'tagCloud' : 'true',
 'selectedTags' : ['test']
})
#if(!$isGuest)
 #set($discard = $collist.add('_actions'))
 #set($discard = $colprops.put('_actions', { 'actions' : ['copy', 'delete', 'rename', 'rights'] }))
#end
#livetable('taggedDocs' $collist $colprops $options)
{{/velocity}}

由于' tagCloud'需要启用选项以便选择标记'允许您列出默认情况下要显示的代码的选项(在我的示例中,我列出了使用代码标记的页面' test'),您还会看到用户可以使用的所有其他可用代码选择。如果这让您感到困扰,并且您不想让用户更改显示的标签,您可以简单地隐藏' tagCloud'通过进入页面上的对象编辑模式并添加类型为' StyleSheetExtension' (有关详细信息,请参阅http://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/SkinExtensionsTutorial/#HMinimalStyleSheeteXtension),其中包含以下CSS内容:

#alldocs-tagcloud {
  display : none;
}

答案 1 :(得分:0)

感谢@Eduard Moraru :)我会尝试。

但是当我找到Velocity doc时,我已经解决了我的问题:http://velocity.apache.org/engine/1.7/user-guide.html

可能感兴趣的人的代码:

{{velocity}}
#set ($list = $xwiki.tag.getDocumentsWithTag('Your Tag'))
         #foreach($reference in $list)
  #set ($document = $xwiki.getDocument($reference))
  #set ($label = $document.getTitle())
         [[$label>>$reference]]
   #end
{{/velocity}}

答案 2 :(得分:0)

尝试一下,这是无耻的切割fron内置标签应用程序。

{{velocity}}
#set ($tag='Tag')
  #if ("$!{request.get('renamedTag')}" != '')
    {{info}}$services.localization.render('xe.tag.rename.success', ["//${request.get('renamedTag')}//"]){{/info}}

  #end
  #set ($list = $xwiki.tag.getDocumentsWithTag($tag))
  {{container layoutStyle="columns"}}
    (((
      (% class="xapp" %)
      === $services.localization.render('xe.tag.alldocs', ["//${tag}//"]) ===

      #if ($list.size()> 0)
        {{html}}#displayDocumentList($list false $blacklistedSpaces){{/html}}
      #else
        (% class='noitems' %)$services.localization.render('xe.tag.notags')
      #end
    )))
  {{/container}}
#set ($displayDocExtra = false)
{{/velocity}}