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

Woolear 氏によると、データベース コンテキストを切り替える必要があります。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 に答える