0

我想获得我的 xwiki 农场中所有 wiki 的空间

我写了这段代码:

#set($WikiManager = $xwiki.wikimanager)
#set($wikiList = $WikiManager.getAllWikis())
$msg.get("wikimanager.totalnumberofwiki") : $wikiList.size()
#if($wikiList.size()!=0)
  #foreach($wiki in $wikiList)
    * *$wiki*

    ## pb in this line below
    #set($spaces = $xwiki.getSpaces())

    <table>
      <tr><th>Spaces</th></tr>
      #foreach ($space in $spaces)
        <tr><td>$space</td></tr>
      #end
    </table>
  #end
#end

但是这个脚本只给了我执行它的当前 wiki 的空间。

你知道如何解决它吗?

谢谢您的帮助。

埃里克

4

2 回答 2

0

A 说 Woolear,你必须 switxh 数据库上下文。在 xwiki 语法 2.0 中,您的代码应该是:

{{velocity}}
#set($currentwiki = $xcontext.database)
#set($WikiManager = $xwiki.wikimanager)
#set($wikiList = $WikiManager.getAllWikis())
$msg.get("wikimanager.totalnumberofwiki") : $wikiList.size()
#if($wikiList.size()!=0)
  #foreach($wiki in $wikiList)
    === $wiki :

    |=Spaces
    ##switch database
    $xcontext.setDatabase($wiki.wikiName)
    #set($spaces = $xwiki.getSpaces())
      #foreach ($space in $spaces)
        |$space
      #end
  #end
#end
$xcontext.setDatabase($currentwiki)
{{/velocity}}
于 2014-03-05T10:19:31.687 回答
0

您可能应该更改数据库:

      #set($currentwiki = $xcontext.database)

      $xcontext.setDatabase($wikidoc.wikiName)

然后改回来:

          $xcontext.setDatabase($currentwiki)
于 2013-10-28T11:48:08.873 回答