組み込みプラグインの作成方法 | PHP Labo

組み込みプラグインの作成方法

トップ > カスタマイズ > 組み込みプラグインの作成方法

目次

広告

WADAX
安心の365日電話サポート付きレンタルサーバーです。
ロリポップ!
月額263円からのレンタルサーバー。マニュアルも充実しています。

組み込みプラグインについて

組み込みプラグインは、各プログラムの plugins フォルダに格納したPHPプログラムを実行する仕組みです。具体的にどのようなプラグインを作成できるかは、以下のページをご覧ください。

以下で、組み込みプラグインの作成方法を紹介します。

命名規約

プラグインファイルがプログラムによって認識されるためには、特有の命名規約にしたがってファイル名を付ける必要があります。具体的には、次のように指定します。

type.name.php

プラグインファイル内で関数やクラスを定義する場合、関数名やクラス名の先頭には plugin_ という文字と name で指定した値を記述します。例えばプラグインファイルを page.example.php にした場合、このファイル内で定義する関数は plugin_example()plugin_example_test() のような名前にします。

プラグインファイル内でテンプレートに値を渡す場合、変数名の先頭には plugin_ という文字と name で指定した値を記述します。例えばプラグインファイルを page.example.php にした場合、変数は plugin_exampleplugin_example_test のような名前にします。

これらは、他のプラグインと関数名や変数名が重複しないようにするための処置です。

実行のタイミング

プラグインファイルは、ファイル名の type によって読み込まれるタイミングが異なります。

typepage のプラグイン
プログラム本体のモードに応じた処理が行われる前に読み込まれます。主に、専用のページを表示するプラグインを作成する場合に使用します。
typebegin のプラグイン
プログラム本体のモードに応じた処理内において、入力チェックが完了した直後に読み込まれます。主に、入力チェックを行うプラグインを作成する場合に使用します。
typedisplay のプラグイン
プログラム本体のモードに応じた処理内において、データを表示する直前に読み込まれます。主に、画面への表示を行うプラグインを作成する場合に使用します。
typeend のプラグイン
プログラム本体のモードに応じた処理内において、すべての処理が完了した後に読み込まれます。主に、データの記録やメールの通知を行うプラグインを作成する場合に使用します。
typeconfig のプラグイン
プログラム本体からは読み込まれません。各プラグインファイルから読み込む設定ファイルとして使用します。

グローバル変数

プログラム本体では5つのグローバル変数を定義しており、プラグイン側でこれらを利用することができます。具体的な利用方法は、プログラム本体のコードを参考にしてください。

$users
プログラムにアクセスしたユーザーの情報を参照できます。
$configs
プログラムの設定ファイルの内容を参照できます。
$params
URLルーティングのパラメーターを参照できます。
$pdo
PDO(データベース)を参照できます。
$smarty
Smarty(テンプレート)を参照できます。

テンプレートファイル

プラグイン用にテンプレートを用意する場合、テンプレートファイルは templates/ ディレクトリ内に作成します。ただし、ファイル名の先頭には plugin_ という文字と name で指定した値を記述します。例えばプラグインファイルを page.example.php にした場合、テンプレートは plugin_example.htmlplugin_example_test.html のような名前にします。

これは、他のプラグインとテンプレートファイル名が重複しないようにするための処置です。

設定ファイル(基礎編)

プラグインのファイル名の typeconfig にすると、プラグインの設定ファイルとして利用できます。ただし、このファイル自体は普通のPHPプログラムなので、内容を編集するにはテキストエディタとFTPソフトが必要です。

これとは別に、管理ページの設定編集画面から編集できる設定ファイルを用意することができます。このような設定ファイルを作成する場合、設定ファイルは configs/ ディレクトリ内に作成します。ファイル名には name で指定した値を、拡張子には ini を指定します。例えばプラグインファイルを page.example.php にした場合、設定ファイルは example.ini という名前にします。

設定ファイルの内容は、一例ですが以下のようになります。

[基本設定]

;タイトル
title = "Mini Blog"

;ブログの概要
description = "サイトの更新情報配信ブログ。"

;ブログからの戻り先
back_url = "http://www.example.com/"

;exit

これで、管理ページの設定編集画面にexampleプラグインの設定という項目が表示され、クリックすると設定画面が表示されます。

プラグインの設定は上記のように

[見出し]

;設定項目の説明
設定を割り当てる変数 = 設定内容

;exit

のように記述します。最後の ;exit は、決まり文句として必ず記述しておいてください。

これでプログラムからはグローバル変数 $configs で値が参照でき、$configs['プラグイン名']['設定を割り当てる変数'] とすると 設定内容を取得できます。具体的には

$configs['example']['back_url']

のようになります。

また、テンプレートからは $info.configs.プラグイン名.設定を割り当てる変数 で設定内容を取得できます。具体的には

{$info.configs.example.back_url}

のようになります。

設定ファイル(応用編)

管理ページの設定編集画面から設定を行う際、設定を割り当てる変数 = 設定内容 の形式で、テキストエリア内に設定内容が表示されます。

これでも利用できるのですが、より解りやすくするために、1行入力欄やセレクトボックスなどで設定を行うこともできます。例えば、

;title char(30)

[基本設定]

;タイトル
title = "Mini Blog"

;ブログの概要
description = "サイトの更新情報配信ブログ。"

;ブログからの戻り先
back_url = "http://www.example.com/"

;exit

このように、先頭に ;title char(30) を追加すると、タイトルの設定欄が一行入力欄になります。これは「title の編集には char(一行入力)を使用する。入力ボックスのサイズは 30 にする。」という意味です。

char だけでなく、以下のような値が利用できます。

int
数値入力欄になります。
char
テキスト入力欄(一行入力)になります。
text
テキスト入力欄(複数行入力)になります。
bool
ON/OFFの選択欄になります。
enum
ラジオボタンで1つの値を選択できる欄になります。
set
チェックボックスで複数の値を選択できる欄になります。

各値の具体的な利用方法は以下のようになります。配布プログラム本体や配布プラグインも参考にしてみてください。

;test1 int(4) "件"
;test2 char(50)
;test3 text
;test4 bool "有効にする|無効にする"
;test5 enum "value1:項目1|value2:項目2|value3:項目3"
;test6 set "value1:項目1|value2:項目2|value3:項目3"

[設定例]

;数値入力
test1 = 10

;テキスト入力
test2 = "一行入力です。"

;テキスト入力
test3 = "複数行入力です。\n複数行入力です。"

;ON/OFFの選択
test4 = On

;ラジオボタン
test5 = "value1"

;チェックボックス
test6 = "value2,value3"

;exit