サイトマップ

DokuWikiプラグイン開発tips:ツールバーアイコンでプラグイン独自のアクションを定義する

Wiki編集画面で、編集エリアの上部にツールバーと呼ばれるアイコンのリストがあります。このツールバーのアイコン達は、標準ではテキストエリアにWikiマークアップを挿入するショートカットのようなもので、私はファイルの追加以外のものを使うことはありません。

このツールバーはJavaScriptで動的に生成されているので、表示に少しタイムラグがあるのが難ですが、その分プラグインが独自にツールバーアイコンを追加しやすいようになっています。各プラグインのscript.jsに

toolbar.push({
  'type' : 'format',
  'title': 'タイトル',
  'icon' : 'アイコン画像のパス',
  'key'  : 'icon',
  'open' : '<タグ>',
  'close': '</タグ>'
});

のように書いてやれば、DokuWikiが自動でツールバーに追加してくれ、指定したアクションを実行できるようになります。ただ、このアクションがテキストの現在地に指定したタグを挿入するというだけのものです。もうちょっと何か別のことをしたい場合に困ります。

こうした問題を解決する方法の1つに、TOOLBAR_DEFINEイベントを捕捉して、独自のアクションを実行するためのアイコンを挿入することができます。まず、actionプラグインでTOOLBAR_DEFINEを捕捉します。

class action_plugin_hoge extends DokuWiki_Action_Plugin {
    function register(&$controller) {
        $controller->register_hook('TOOLBAR_DEFINE',
                                   'AFTER', $this, 'toolbar');
    }
 
    function toolbar(&$event) {
        $event->data[] = array(
            'type' => 'hoge', //独自のアクション名
            'title'=> 'アイコンのマウスオーバー時に表示されるtool tip',
            'icon' => 'アイコンの場所'
            );
    }
}

次に、javascript.jsで独自のアクション名”hoge”に対応するボタン生成用の関数を定義します。

function addBtnActionHoge(btn, props, edid) { //アクション名の最初の1文字は大文字にしてください
    addEvent(btn,'click',function(){
        //アイコンがクリックされたときに実行するアクションを記述
        return false;
    });
    return true;
};

以上です。簡単でしたか?

関連コンテンツ

 
research/1309344104.txt · 最終更新: 2011/07/02 08:33 by Kazuyuki Matsuda
特に明示されていない限り、本サイトの内容は次のライセンスに従います:Copyright(C) 2011 Shorindo, Inc. All Rights Reserved
Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki