オーバーライド可能な主なメソッド
getButtons
ページ編集画面にて、プラグインブロックの各種設定ボタンを表示するHTMLを記述します。
function getButtons(&$db, $permissionDetail) {
$buttons = array();
$buttons = parent::getButtons($db, $permissionDetail);
// ↓↓ココから設定ボタン用の記述
if ($permissionDetail['design_edit']) {
// 設定ボタンより呼び出されるプログラム(遷移先)
$designUrl = 'plugin_program_conf.php?blockId='.$this->_blockId;
// ウィンドウ名
$designWindowName = 'PluginConf2_'.$this->_blockId;
// ウィンドウを開くためのJavaScript設定
$designHref = "JavaScript:jsOpenWindow('$designUrl','$designWindowName', 480, 270)";
// 設定ボタン用のアイコン画像
$buttons[] = new MSM_Button('img/icon/spanner.gif',$designHref,'パラメータ設定');
}
// ↑↑ココまで設定ボタン用の記述
return $buttons;
}
getConfHtml
プラグインブロック設定ウィンドウを表示するHTMLを記述します。
function getConfHtml($db, $blockId) {
$popupHeader = MSM_SystemMenu::getPopupHeader(MSM_Utils::escHtml("プラグインブロック設定"));
$str =<<<EOD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="system.css" type="text/css" />
<title>SITE PUBLIS プラグインブロック設定</title>
</head>
<body>
<div id="wrapper">
<div id="content">
<div id="popupGR">
<form name="form1" method="post" action="plugin_program_conf_exec.php">
<p style="padding:0; margin:0;">
<input type="hidden" name="blockId" value="$blockId">
<input type="hidden" name="okClick4JS" value="false" />
</p>
<!-- 〓〓〓〓〓 ▼ヘッダー▼ 〓〓〓〓〓 -->
$popupHeader
<!-- 〓〓〓〓〓 ▲ヘッダー▲ 〓〓〓〓〓 -->
<!-- 〓〓〓〓〓 ▼ページエリア▼ 〓〓〓〓〓 -->
<div id="page">
<div id="pageinner">
<!-- ↓↓ココからブロックの設定を行うウィンドウ内のHTMLを記述します。 -->
<!-- ↑↑ココまでブロックの設定を行うウィンドウ内のHTMLを記述します。 -->
</div><!-- /pageinner -->
</div><!-- /page -->
<!-- 〓〓〓〓〓 ▲ページエリア▲ 〓〓〓〓〓 -->
<!-- 〓〓〓〓〓 ▼フッター▼ 〓〓〓〓〓 -->
<div id="footer">
<input class="button ok" type="submit" value="OK" />
<input class="button gray" type="button" value="キャンセル" onclick="window.close()" />
</div><!-- /footer -->
<!-- 〓〓〓〓〓 ▲フッター▲ 〓〓〓〓〓 -->
</form>
</div><!-- /popupGR -->
</div><!-- /content -->
</div><!-- /wrapper -->
</body>
</html>
EOD;
return $str;
}
getConfExecHtml
プラグインブロック設定ウィンドウで OKボタンをクリック(Submitされた場合)した際の設定情報保存処理を記述します。
function getConfExecHtml(&$db, $blockId, $parameter) {
// ↓↓ココから処理を記述
// ↑↑ココまで処理を記述
$str =<<<EOD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>プラグインプログラム設定登録</title>
<script type="text/javascript" language="JavaScript">
<!--
if(! opener.closed){
opener.location.reload();
}
window.close();
-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</html>
EOD;
return $str;
}
getTypeName
編集モードのときに表示するブロック名を記述します。
function getTypeName() {
// 表示したい名前を記述
return 'プラグイン:サンプル';
}
getHeadHtml
<head>~</head>に出力する内容を記述します。
外部スタイルシート、外部スクリプトファイルの読み込みやjavascriptを記述します。
JavascriptはgetJsでも記述可能です。
/**
* ヘッダー部のHTMLを表示するメソッドです。
*
* このメソッドで返される文字列が<head>内に表示されます。
*
* @param object DB &$db データベースオブジェクト
* @param object MSM_Page &$currPage 現在表示しているページのページオブジェクト
* @param integer $mode 表示モード VIEW_MODE(プレビュー)/EDIT_MODE(編集モード)
* @return string <head>内に表示するHTMLテキスト
*/
function getHeadHtml(&$db, &$currPage, $mode) {
$str = parent::getHeadHtml($db, &$currPage, $mode);
$str .=<<<EOD
<link rel="stylesheet" type="text/css" href="dynamic_css.php">
<script type="text/javascript" language="JavaScript">
<!--
function jsFontSizeChange(size){
document.getElementById('mainArea').style.fontSize = size;
}
}
//-->
</script>
EOD;
return $str;
}
getJs
ブロックで使用するJavascriptを記述します。
Javascriptは<head>内のscriptタグの中に挿入されます。
function getJs(&$db) {
$str = parent::getJs($db);
// スクリプトを記述
$str .=<<<EOD
function jsFontSizeChange(size){
document.getElementById('mainArea').style.fontSize = size;
}
EOD;
return $str;
}
copy
ブロックのコピー時(ページの公開で、編集リビジョンから公開リビジョンへのコピーするときなども)に呼ばれるメソッドです。ブロックのコピー時に一緒にコピーしなければならないデータなどがあれば実装してください。
function copy(&$db, $parentBlockId) {
parent::copy($db, $parentBlockId);
// ↓↓ココから処理を記述
// ↑↑ココまで処理を記述
}
delete
ブロックの削除時(ページの公開や削除のときなどでブロックが削除される場合も)に呼ばれるメソッドです。ブロック削除時に合わせて削除する必要があるデータがある場合には実装してください。
親クラスの deleteメソッドを呼び出す必要があります。
function delete(&$db, &$deleteFiles, $topFlag=false) {
// ↓↓ココから処理を記述
// ↑↑ココまで処理を記述
// 親クラスのメソッドを実行
$err = parent::delete($db, $deleteFiles, $topFlag);
return DB_OK;
}