オリジナルプラグイン作成の基礎
プラグインファイルとプラグインクラス
プラグインブロックの実体は、PHP言語で記述されたテキストファイル(プラグインファイル)です。プラグインファイルの内容は、SITE PUBLISが提供するMSM_PluginBlock クラスを継承したプラグインクラスの定義を記述したものです。プラグインクラス名とプラグインファイル名には、以下の関係があります。
プラグインクラス名は、「PLUGIN_プラグインファイル名」とします。
(例:ファイル名「Foo.php」の場合、プラグインブロックのクラス名は「PLUGIN_Foo」)
プラグインクラス名は、「PLUGIN_プラグインファイル名」とします。
(例:ファイル名「Foo.php」の場合、プラグインブロックのクラス名は「PLUGIN_Foo」)
メソッドをオーバーライドして機能を実装する
プラグインブロックの基本的な機能は、ページ内に配置されたときのブロック表示です。
プラグインブロックが表示するHTMLは、MSM_PluginBlockクラスのgetHtml() メソッドをオーバーライドすることで、任意のHTMLを表示できるようになります。
以下のサンプルでは、getHtml()メソッドの戻り値に任意の文字列を設定しています。
<?php
/**
* サンプルのプラグインです。
*
* ヒント)
* コンストラクタで、親クラス(MSM_PluginBlock)のコンストラクタを必ず呼び出してください
* getHtml()を記述して、表示内容を変更します。
*/
// 必ず MSM_PluginBlockを継承します。
// クラス名は必ず PLUGIN_ + ファイル名(.phpは付けない) とします。
class PLUGIN_SampleBlock extends MSM_PluginBlock {
/**
* コンストラクタ
*
* @param integer $blockId ブロックID
*/
function PLUGIN_SampleBlock($blockId) {
// 親クラス(MSM_PluginBlock)のコンストラクタを必ず呼び出す必要があります
parent::MSM_PluginBlock($blockId);
}
/**
* HTMLを表示するメソッドです。
*
* このメソッドで返される文字列がブロック内に表示されます。
*
* @param object DB &$db データベースオブジェクト
* @param object MSM_Page &$currPage 現在表示しているページのページオブジェクト
* @param integer $mode 表示モード VIEW_MODE(プレビュー)/EDIT_MODE(編集モード)
* @return string ブロック内に表示するHTMLテキスト
*/
function getHtml(&$db, &$currPage, $mode) {
$str = '<h1>サンプル表示</h1>';
return $str;
}
}
?>
プラグイン機能実装とメソッドの関係
プラグインブロック作成に関する主なメソッド(一部プロパティ含む)の関係を「プラグイン機能実装とメソッドの関係図」に示します。後続の各章では、これらのメソッドの具体的な実装方法および詳細を解説しています。