データを記録するサンプル

このプラグインについて

データを記録するサンプルです。

トップページにアクセスされた日時をファイルに記録するプラグインを作成し、プラグイン作成の流れを解説します。

ダウンロード

以下のリンクからプラグインをダウンロードできます。

導入方法

ファイルのアップロード

config.sample5.phpend.sample5.phplibs/freo/plugins/ ディレクトリ内にアスキーモードでアップロードします。

sample5.logfiles/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」という定数で、プラグインのバージョン情報を定義します。この定義はどんなプラグインを作る場合でも必須です。バージョン情報の表記方法は自由に決めることができます。(21.21.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/sample1freo/index.php/testfreo/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/ という値が格納されています。