専用ページを表示するサンプル
このプラグインについて
専用ページを表示するサンプルです。
専用ページに今日の曜日を表示するだけのプラグインを作成し、プラグイン作成の流れを解説します。
導入方法
ファイルのアップロード
config.sample2.php
と page.sample2.php
を libs/freo/plugins/
ディレクトリ内にアスキーモードでアップロードします。
sample2/
を templates/plugins/
ディレクトリ内にアスキーモードでアップロードします。
完了
ブラウザソフトで freo/index.php/sample2
にアクセスし、今日の曜日が表示されれば成功です。
コード解説
まずは、半角英数字とアンダーバーで任意のプラグインIDを決めます。今回は、プラグインIDは sample2
とします。
config.sample2.php
<?php
//プラグインの名前
define('FREO_PLUGIN_SAMPLE2_NAME', 'サンプル2');
//プラグインのバージョン
define('FREO_PLUGIN_SAMPLE2_VERSION', '0.0.0');
//pageファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE2_LOAD_PAGE', 'sample2');
?>
「config.
+ プラグインID + .php
」というファイルを作成すると、プラグインの設定ファイルとして扱われます。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _NAME
」という定数で、プラグインの名前を定義します。これは管理ページのプラグイン一覧などに表示されます。この定義はどんなプラグインを作る場合でも必須です。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _VERSION
」という定数で、プラグインのバージョン情報を定義します。この定義はどんなプラグインを作る場合でも必須です。バージョン情報の表記方法は自由に決めることができます。(2
、1.2
、1.0.2
など、いずれの形式も可です。)
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _LOAD_PAGE
」という定数を定義すると、page.sample2.php
ファイルの読み込みタイミングを制御できます。今回の場合、freo/index.php/sample2
にアクセスしたときのみ page.sample2.php
が読み込まれます。この定義はプラグインによっては不要です。省略した場合、常に page.sample2.php
ファイルが読み込まれるようになります。
この定義は、,
区切りで複数指定することができます。具体的には、
//pageファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE2_LOAD_PAGE', 'sample1,test,aaa/bbb');
と定義しておくと、freo/index.php/sample1
か freo/index.php/test
か freo/index.php/aaa/bbb
にアクセスしたとき page.sample2.php
が読み込まれます。
今回は定義していませんが、「FREO_PLUGIN_
+ 大文字表記のプラグインID + _UNLOAD_PAGE
」という定数を定義すると、page.sample2.php
ファイルを読み込まないタイミングを指定できます。具体的には、pageファイルの読み込み設定の代わりに
//pageファイルの読み込み除外設定
define('FREO_PLUGIN_SAMPLE2_UNLOAD_PAGE', 'abc');
と定義しておくと、freo/index.php/abc
にアクセスしたとき以外に page.sample2.php
が読み込まれます。
page.sample2.php
<?php
/* メイン処理 */
function freo_page_sample2()
{
global $freo;
//曜日を定義
$weeks = array('日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日');
//今日の曜日を取得
$week = $weeks[date('w')];
//データ割当
$freo->smarty->assign('plugin_sample2', $week);
return;
}
?>
「page.
+ プラグインID + .php
」というファイルを作成し、そのファイル内で「freo_page_
+ プラグインID」という関数を定義すると、プラグインの設定ファイルが読み込まれた直後に呼び出されます。
今回は、現在の曜日を取得してSmartyの plugin_sample2
に割り当てています。この値は、テンプレートで {$plugin_sample2}
と書くと参照できます。
sample2/default.html
{include file='header.html'}
<p>今日は「{$plugin_sample2}」です。</p>
{include file='footer.html'}
今回のように page.
からはじまるプラグインファイルがあると、テンプレートとして「templates/plugins/
+ プラグインID + /default.html
」というファイルが自動的に読み込まれます。
このファイルはSmartyの文法に従って、自由にコードを記述することができます。なお、page.sample2.php
にある return;
の直前に
//データ出力
freo_output('plugins/sample2/test.html');
というコードがあると、templates/plugins/sample2/test.html
をプラグイン用のテンプレートとして読み込まれます。このように freo_output()
関数を使用すれば、任意のテンプレートを読み込ませることもできます。