プラグインは、管理ツールのサイドバー設定でドラッグアンドドロップで配置します。(保存ボタンを押さなければ反映されません。)
配置済みのプラグインをクリックするとプラグインの設定ができます。
標準プラグイン
新着記事 |
新着記事の一覧を表示するプラグインです。 |
過去ログ |
記事が存在する月の一覧を表示するプラグインです。 |
トラックバック |
ブログ全体の新着トラックバックの一覧を表示するプラグインです。 |
リンク |
リンク一覧を表示するためのプラグインです。 |
フリーエリア |
HTMLをそのまま表示するプラグインです。 |
コメント |
ブログ全体のコメント一覧を新着順で表示するプラグインです。 |
カテゴリ |
カテゴリ一覧を表示するプラグインです。 |
カレンダー |
<table>表示のカレンダーを表示するプラグインです。 |
Google検索 |
Google AJAX Search API を使ったサイト内検索を設置するプラグインです。 |
全文検索 |
記事DBから全文検索する検索窓を設置するプラグインです。 |
ハイライト |
全文検索された際にキーワードをハイライトするプラグイン。 |
プラグインの作り方
プラグインはPerlのpackageです。
まず、プラグインの内部的な名前を決めます。
これは、
プラグインのファイル名
プラグインのpackage名
です。
プラグインは/pluginディレクトリに置きます。
packageが呼び出された際、
$main::PluginName{内部的なプラグイン名}=実際に表示するプラグイン名
$main::PluginFunc{内部的なプラグイン名}{html}=表示処理を行う関数のリファレンス
$main::PluginFunc{内部的なプラグイン名}{set}=プラグインの設定メニューを要求された際の関数のリファレンス
$main::PluginFunc{内部的なプラグイン名}{update}=プラグインの設定の保存要求がされた際の関数のリファレンス
の4つを設定します。
html、set、update
の3つの関数が必要となります。
html
表示処理を行う関数です。
この関数では、
プラグインの見出し
プラグインの本文
の2つの文字列を返してください。
プラグインの本文に値がない場合はプラグインは表示されません。
プラグインの見出しが空の場合は、通常、見出しは表示されません。(テンプレート次第では表示される)
set
プラグインの設定メニュー作成用の関数です。
JavaScriptの配列のような形式の文字列を返します。
「'」「\」「\n」を含めたい場合、エスケープする必要があります。
&MetaEscape::js(変数のリファレンス);
を使うと変数内の特殊文字はエスケープされます。
返す配列は2重配列で、
一つの項目は
['項目のID','項目の見出し','項目のtype','項目のvalue']
のような感じとなります。
typeには、「text」「textarea」「select」「checkbox」が使えます。
<input type="text">
<textarea>
<select>
<input type="checkbox">
です。
['項目のID','項目の見出し','項目のinput type','項目のvalue','width','height']
5,6番目の値を入れた場合、
width
height
となります。
['項目のID','項目の見出し','select','selectのvalue','width','height','0=option1','1=option2']
typeがselectの場合、7番目以降がoptionとなります。
value=表示
形式です。
['項目のID','項目の見出し','checkbox','checked','width','height','テキスト']
typeがcheckboxの場合、7番目の項目はチェックボックスの右に表示するテキストとなります。
checkedは、'1'なら選択、'0'なら選択していない、です。(数値ではなく文字列です)
checkboxは、一つのチェックボックスで、0又は1のみを返します。
['項目1のID','項目1の見出し','項目1のtype','項目1のvalue']、['項目2のID','項目2の見出し','項目2のtype','項目2のvalue']
項目が複数ある場合はこんな感じ。
update
プラグインの設定を保存する関数です。
設定ファイルは
/plugin/file
以下に保存し、
他のプラグインとかぶらないファイル名にする必要があります。
この関数は管理ツール
/admin/index.cgi
から呼び出されるので、
/plugin/file
の相対パスは
../plugin/file
となります。
update関数には、
ブログID,プラグインID,set関数で設定した項目のリスト
が渡されます。
設定ファイルは基本的に、
ブログID-プラグイン名-プラグインID.dat
という名前の1ファイルです。
3番目以降の引数は、set関数で設定した項目のリストであり、set関数で設定した分だけあります。
項目ID=設定された値
のような文字列となっています。
標準添付のプラグインの中身を実際に見てもらえばわかりやすいと思います。