DokuWikiの自作プラグイン 「YouTube Plugin」

DokuWiki を使い出してから公開されている色々なプラグインを試してたのですが、ふと自分でプラグインを作ってみたくなったので、Hello World! なノリで試しに作ってみました。

作成したプラグインは YouTube の動画を DokuWiki のページに埋め込むだけの、YouTube Plugin です。

プラグインについての細かい説明は以下のリンクを見てください。ソースコードも載せているので、PHP わかる方はすぐ理解できるレベルです。

http://www.okoze-esca.net/dokuwiki/plugin/youtube

プラグイン自体は

{{youtube>b-Nw_14nuiw}}

と書いたら、下のような動画が出るだけ、とかなりシンプル。PHP 初心者なのでとりあえずこれで精一杯:-/

ハマッたこと

プラグインを作成したときに1点めちゃめちゃハマッた箇所が、getSort() で返す数値です。

DokuWikiのプラグインはそれぞれ固有のソート値を持っており、この値でプラグインの実行順序が決まってたりするんですが、この値は inc/parser/parser.php に実装されている標準の parser モードの数値を意識した正しい値を設定しておかなければいけません。

例えば、YouTube Plugin の場合は <object> タグで Flash コンテンツを出力しますが、その場合、このプラグインは Media 系の parser 実装である Doku_Parser_Mode_media よりも先に実行する必要があるので、YouTube Plugin のソート値は 3201) よりも小さい値にする必要があります。

プラグイン作成当初、getSort() で返す値を遠慮がちに 999 とかにしてたので、原因わかるまでかなり悩みました。マニュアルはしっかり読むべきですね。。。

作ってみての感想

1箇所ハマッたことを除けば、PHP 初心者にもかかわらず実装自体は30分くらいであっさり出来ました(まあ内容ショボイですが)。 あと、プラグインの関数内の拡張性も高そうなので、慣れればもっと色々できそうな感じですね。

1) Doku_Parser_Mode_media に設定されている値
wordpress/blog/2007/id-00000033.txt · 最終更新: 2007/08/10 01:41 (外部編集)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0