Mindtouch Dekiですべての添付ファイルを一覧表示する方法

久しぶりのMindTouch Deki Wiki TIPSです。

Dekiでは各ページにファイルを添付でき、添付ファイルも検索対象になるため、とても便利です。
しかし、ページ数が増えてくると全添付ファイル一覧を見たくなることもあると思います。

今回は、Wiki内の全添付ファイルを一覧する方法を紹介します。かなり強引なDekiScriptなのですが・・・

手順

まず、テンプレートに新しいページを作り、以下の内容をDekiScriptフォーマットで記述します。
ページ名はShowFilesとして保存しておきます。

<ul>
var pages = [ ];
foreach (var a in xml.select(wiki.tree("/"), "//a"))
{
    var text = xml.text(a, '.', null, true);
    var id = string.match(text, 'pageid="([0-9]+)"');
    var p = wiki.getpage(num.int(id));
    let pages ..= [ p ];
}

foreach (var p in pages) {
    foreach (var f in p.files) {
        <li>
        web.link(f.uri, f.name);
        web.html('<span style="color:#999999;"> (' .. num.floor( f.size / 1000) .. 'KB)</span>');
        if (f.description) {
            web.text(f.description);
        }
        web.html('<br />');
        web.html('<span style="color:#999999;">' .. f.page.path .. web.link(f.page.uri, 'goto this page') .. '</span>');
        if (f.ThumbUri) {
            web.html("<br /><img src=" .. f.ThumbUri .. " />");
        }
        </li>
    }
}
</ul>

あとは、任意のページで

{{ ShowFiles(); }}

と書けばOKです。

ちなみに、トップページに添付したものだけは出てきませんが、これは手抜きです^^

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(16区分17回 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、Ruby Programmer Gold、AWSソリューションアーキテクト(アソシエイト)、日商簿記2級、漢検準1級などを保有。

babaの書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ