2
1
0
2 回答
- 321
ユーザーマクロを作成して取得する方法が以下の記事にありました。
ゴミ箱や履歴等も含まれる内容のようだったので、
現在のページのみ取得する場合は
以下のような内容にすれば取得できたように思えます。## @noparams #set ($containerManagerClass = $action.class.forName("com.atlassian.spring.container.ContainerManager")) #set ($getInstanceMethod = $containerManagerClass.getDeclaredMethod("getInstance", null)) #set ($containerManager = $getInstanceMethod.invoke(null, null)) #set ($containerContext = $containerManager.containerContext) #set ($spaceManager = $containerContext.getComponent("spaceManager")) <h2>List of Spaces</h2> <table class="confluenceTable"> <tr> <th class="confluenceTh">Space Name</th> <th class="confluenceTh">Page Count</th> <th class="confluenceTh">Last Modified</th> </tr> #foreach ($space in $spaceManager.getAllSpaces()) #if ($space.isGlobal()) #set ($spacePages = $pageManager.getPages($space, true)) #set ($pageCount = $spacePages.size()) <tr> <td> <a href="$req.contextPath/display/$space.getKey()">$space.getName()</a> </td> <td> $pageCount </td> <td> $space.getLastModificationDate() <!–$space.getLastModifierName()–> </td> </tr> #end #end </table>
後は DB から取得する方法も記載されていました。
こちらも「現在」の数ではないようだったので
以下のクエリにすることで取得できたように思えます。select count(CONTENTID) as "number of pages", SPACES.SPACENAME from CONTENT join SPACES on CONTENT.SPACEID = SPACES.SPACEID where CONTENT.SPACEID is not null and CONTENT.PREVVER is null and CONTENT.CONTENTTYPE = 'PAGE' and CONTENT.content_status = 'current' group by SPACES.SPACENAME order by "number of pages" desc;
- 樋口晃
便利なマクロのご紹介、ありがとうございます。
ページが多い場合処理に負荷がかかってしまう事も有るかと思いますので、こちらを利用する場合はマクロの利用を管理者に限定する設定にする事が良いかと思います。
- Shuzaburo Doba
ありがとうございます!
確かに負荷のことも考えられますね...
検討してみます!
コメントを追加... - 321
正確に数えられるか不明ですが、スペースツール→コンテンツルール→エクスポートから HTML 形式でエクスポートして html ファイルを数えるという方法はいかがでしょうか。
- Shuzaburo Doba
ありがとうございます!
いただいた方法でページ数が取得できました!
コメントを追加...
Confluence でスペース内に存在する現在のページ数を確認したいのですが
何か方法はありますでしょうか。