Zephyr Cradle Diary


2012.01.11 (Wed)

[PG] MediaWikiのWidgets Extensionの使い方メモ

CelestiaのMediaWiki上にTwitter検索ウィジェットを設置しようと思ったのですが、MediaWikiには直接HTMLコードが書けません。なのでいろいろこねくり回した結果、Widget Extensionを使うことにしました。なんだか便利そうだしってことで。

Extension:Widgets - MediaWiki

でまあ、当然こういうのって日本語の解説ないんですよね。プログラマってのはこういうときにとっさに英語読めないと大変だなあとつくづく思いながら、取り敢えず設置できたのでその手順でもメモ。

1. Extensionのコードを入れる

ここらへんから落としてくるか、SVNでcheckoutなりexportなりしてファイルをゲット。ファイルはMediaWikiの /extensions ディレクトリ以下に置く。圧縮ファイルにも.svnファイルが入ってて面倒だったので、.tar.gzファイルをFFFTPでextensionsに置きsshで鯖にログインしてtar xzvfした。

2. LocalSettings.phpに記述を追加

どっかに以下をごりっとコピペ。自分の場合はファイルの末尾に追記した。

require_once("$IP/extensions/Widgets/Widgets.php");
$wgGroupPermissions['sysop']['editwidgets'] = true;

取り敢えずこれで下準備完了。

といってもこれだけではウィジェットがなにもない状態なので、使いたいウィジェットは一個一個自分で作る必要がある。幸いなことに(というかこれが一番のウリだけど)すでにいくつものテンプレートが存在してるので、そこからありがたく拝借して使うことにする。ひとつのウィジェットに対してひとつのWidgetページを作る必要がある。

3. 使いたいウィジェットを探す

Category:Widget - MediaWiki Widgets

ここに所望のモノがなかったら、お布団に入って不貞寝するか自作しましょう。まあ結構なソーシャルメディアがすでにフォローされてるので、ここにないものが使いたいってケースはよほどのことだとは思いますが。自作するにはSmartyの知識が必要らしい。ちょっと読んですぐページ閉じたけど。

4. Widgetページを作る

使いたいウィジェットが決まったら(今回はTwitter Search)そのWidgetページを自分のMediaWiki上に作成する必要がある。

各ウィジェットページの左上にある「Widget:Xxx」ってリンクを飛ぶと、そのテンプレートページに飛ぶ(ここではWidget:Twitter Searchページ)。そこの文中の最後のほうにある「and copy full source code」ってリンクか、上部の「View source」から、そのページのソースコードを表示する(これ)。

自分のMediaWiki上に同名のページ(ここでは「Widget:Twitter Search」)を新規作成して、表示したソースコードをまるっとコピーして新規ページを作る。これでウィジェット用のテンプレートが完成。

5. ウィジェットを置く

これでいよいよTwitter Searchウィジェットが使えるようになったので、早速表示したい箇所に以下のコードを書く。

{{#widget:Twitter Search
|query=showslow
|title=ShowSlow
|caption=what people say about ShowSlow
}}

詳細な使い方(パラメータとか)については各紹介ページに戻って確認しましょう、という感じ。

6. 幸せな気分になる(おわり)

というわけでこれで設置できるはず。 取り敢えずということでTwitter SearchとTweet Buttonを設置してみました(→CelestiaXサイト)。

今後はSound CloudやFeacebookのイイネボタンを導入してもいいかもーとか思ったり思わなかったり。最近MediaWiki使うのが楽しくて仕方ないけど、ただ書くだけでなく、Extensionとかにも手を出したらもっと面白くなりそうだなあという感想。ただまあSmartyは面倒くさそうなのでひとまず保留というところですが……。