コンテンツ用プラグイン
コンテンツ用プラグインは、既存の独自ブロック・独自タグの動作を変更したり、新しく独自ブロック・独自タグを追加するプラグインです。
Serene Bachでは既存の独自ブロックを置き換えるプラグインを有効にすると、基本的に標準動作の代わりにプラグインが動作するようになります。
もし既存の独自ブロック内部に追加する形で動作させたいなどの場合は、プラグイン側で明示的に標準動作をハンドリングしているサブルーチンを呼び出す必要があります。
コンテンツ用プラグインとして機能させるためには
の後、register_plugin
メソッドにより、管理用プラグインとして登録する必要があります。register_content_module
sb::Plugin->register_content_module( 'type' => 'main', 'callback' => &sb::Content::Memo::_topmemo, 'field' => 'topmemo', 'name' => undef, );
メソッドにはregister_content_module
, type
, callback
, field
という4つの引数があります。name
typeは必ず指定する必要があります。コンテンツ用プラグインが適用される種類を指定します。以下の5つからいずれかのtypeが指定されます。
- main
- entry
- comment
- trackback
- profile
は必ず指定する必要があります。コールバック関数のリファレンスを指定します。callback
上記例では、パッケージ
内にあるsb::Content::Memo
というサブルーチンのリファレンスを指定しています。_topmemo
type
によって適用されるコールバック関数の引数が変わります。
では指定したfield
内におけるコンテンツ用プラグインの適用フィールドを指定します。type
が未指定の場合、field
name
の値が利用されます。
はfield
が「main」の時と、「main」以外の時(entry, comment, trackback, profile)で意味合いが異なります。type
が「main」の時は、処理する独自ブロック名を示します。type
上記の例では
という独自ブロックを追加するため、topmemo
に「topmemo」と指定されています。field
標準で処理されている独自ブロックの処理を置き換える場合には、置き換える独自ブロック名を指定します。
で処理される標準独自ブロックは以下の通りです。type => main
- title
- archives
- category
- link
- recent_comment
- recent_trackback
- latest_entry
- selected_entry
- profile
- calendar
- amazon
- page
- option
が「main」以外の時(entry, comment, trackback, profile)では、特定の独自ブロックだけを処理します。type
- entry
- entryブロックを処理します。以下のfieldが標準で定義されています。
- date_time
- authors
- attach
- category
- body_text
- discovery
- sequel
- others
- comment
- comment_area並びにcommentブロックを処理します。_contentという
が定義されています。field
- trackback
- trackback_area並びにtrackbackブロックを処理します。_contentという
が定義されています。field
- profile
- profile_areaブロックを処理します。_contentという
が定義されています。field
また、
によらず、「_main」という特殊なtype
が標準で定義されています。field
コンテンツ用プラグインで「_main」フィールドの置き換えも可能ですが、その際には標準の処理サブルーチンを明示的に呼び出すことを強く推奨します。
はコンテンツ用プラグイン毎につけるユニークな名称を指定します。未指定(空もしくは未定義)の場合は、プラグイン名が利用されます。name
ひとつのプラグインにつき、ひとつのコンテンツ用モジュールを登録するだけなら
を指定する必要はありません。ひとつのプラグインで複数のコンテンツ用モジュールを登録する場合、それぞれのモジュール毎にユニークな名称をつけます。name
comments
comment form