データを記録するサンプル
このプラグインについて
データを記録するサンプルです。
トップページにアクセスされた日時をファイルに記録するプラグインを作成し、プラグイン作成の流れを解説します。
導入方法
ファイルのアップロード
config.sample5.php
と end.sample5.php
を libs/freo/plugins/
ディレクトリ内にアスキーモードでアップロードします。
sample5.log
を files/plugins/
ディレクトリ内にアスキーモードでアップロードします。
パーミッションの設定
files/plugins/sample5.log
のパーミッションを 606
に設定します。
完了
ブラウザソフトでfreoの初期ページにアクセスし、sample5.log
に日時が記録されれば成功です。
コード解説
まずは、半角英数字とアンダーバーで任意のプラグインIDを決めます。今回は、プラグインIDは sample5
とします。
config.sample5.php
<?php
//プラグインの名前
define('FREO_PLUGIN_SAMPLE5_NAME', 'サンプル5');
//プラグインのバージョン
define('FREO_PLUGIN_SAMPLE5_VERSION', '0.0.0');
//endファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE5_LOAD_END', 'default');
?>
「config.
+ プラグインID + .php
」というファイルを作成すると、プラグインの設定ファイルとして扱われます。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _NAME
」という定数で、プラグインの名前を定義します。これは管理ページのプラグイン一覧などに表示されます。この定義はどんなプラグインを作る場合でも必須です。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _VERSION
」という定数で、プラグインのバージョン情報を定義します。この定義はどんなプラグインを作る場合でも必須です。バージョン情報の表記方法は自由に決めることができます。(2
、1.2
、1.0.2
など、いずれの形式も可です。)
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _LOAD_END
」という定数を定義すると、end.sample5.php
ファイルの読み込みタイミングを制御できます。今回の場合、freo/index.php
にアクセスしたときのみ end.sample5.php
が読み込まれます。(default
は初期ページを表します。)この定義はプラグインによっては不要です。省略した場合、常に end.sample5.php
ファイルが読み込まれるようになります。
この定義は、,
区切りで複数指定することができます。具体的には、
//endファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE5_LOAD_END', 'sample1,test,aaa/bbb');
と定義しておくと、freo/index.php/sample1
か freo/index.php/test
か freo/index.php/aaa/bbb
にアクセスしたとき end.sample5.php
が読み込まれます。
今回は定義していませんが、「FREO_PLUGIN_
+ 大文字表記のプラグインID + _UNLOAD_END
」という定数を定義すると、end.sample5.php
ファイルを読み込まないタイミングを指定できます。具体的には、endファイルの読み込み設定の代わりに
//endファイルの読み込み除外設定
define('FREO_PLUGIN_SAMPLE5_UNLOAD_END', 'abc');
と定義しておくと、freo/index.php/abc
にアクセスしたとき以外に end.sample5.php
が読み込まれます。
end.sample5.php
<?php
/* メイン処理 */
function freo_end_sample5()
{
global $freo;
//アクセスされた日時を取得
$now = date('Y-m-d H:i:s');
//日時を記録
$fp = fopen(FREO_FILE_DIR . 'plugins/sample5.log', 'a');
fwrite($fp, "$now\n");
fclose($fp);
return;
}
?>
「end.
+ プラグインID + .php
」というファイルを作成し、そのファイル内で「freo_end_
+ プラグインID」という関数を定義すると、プログラム本体の処理が終了した直後に呼び出されます。
今回は、アクセスされた日時を取得して sample5.log
に追記しています。定数 FREO_FILE_DIR
には、初期状態では files/
という値が格納されています。