本来表示されるページを変更するサンプル
このプラグインについて
本来表示されるページを変更するサンプルです。
特定のURLにアクセスされた時、本来のページとは異なるページを表示するだけのプラグインを作成し、プラグイン作成の流れを解説します。
導入方法
ファイルのアップロード
config.sample1.php
と init.sample1.php
を libs/freo/plugins/
ディレクトリ内にアスキーモードでアップロードします。
完了
ブラウザソフトで freo/index.php/sample1
にアクセスし、No.1~No.3いずれかのエントリーが表示されれば成功です。(記事がなければ、「指定されたエントリーが見つかりません。」のエラーが表示されます。)
コード解説
まずは、半角英数字とアンダーバーで任意のプラグインIDを決めます。今回は、プラグインIDは sample1
とします。
config.sample1.php
<?php
//プラグインの名前
define('FREO_PLUGIN_SAMPLE1_NAME', 'サンプル1');
//プラグインのバージョン
define('FREO_PLUGIN_SAMPLE1_VERSION', '0.0.0');
//initファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE1_LOAD_INIT', 'sample1');
?>
「config.
+ プラグインID + .php
」というファイルを作成すると、プラグインの設定ファイルとして扱われます。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _NAME
」という定数で、プラグインの名前を定義します。これは管理ページのプラグイン一覧などに表示されます。この定義はどんなプラグインを作る場合でも必須です。
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _VERSION
」という定数で、プラグインのバージョン情報を定義します。この定義はどんなプラグインを作る場合でも必須です。バージョン情報の表記方法は自由に決めることができます。(2
、1.2
、1.0.2
など、いずれの形式も可です。)
「FREO_PLUGIN_
+ 大文字表記のプラグインID + _LOAD_INIT
」という定数を定義すると、init.sample1.php
ファイルの読み込みタイミングを制御できます。今回の場合、freo/index.php/sample1
にアクセスしたときのみ init.sample1.php
が読み込まれます。この定義はプラグインによっては不要です。省略した場合、常に init.sample1.php
ファイルが読み込まれるようになります。
この定義は、,
区切りで複数指定することができます。具体的には、
//initファイルの読み込み設定
define('FREO_PLUGIN_SAMPLE1_LOAD_INIT', 'sample1,test,aaa/bbb');
と定義しておくと、freo/index.php/sample1
か freo/index.php/test
か freo/index.php/aaa/bbb
にアクセスしたとき init.sample1.php
が読み込まれます。
今回は定義していませんが、「FREO_PLUGIN_
+ 大文字表記のプラグインID + _UNLOAD_INIT
」という定数を定義すると、init.sample1.php
ファイルを読み込まないタイミングを指定できます。具体的には、initファイルの読み込み設定の代わりに
//initファイルの読み込み除外設定
define('FREO_PLUGIN_SAMPLE1_UNLOAD_INIT', 'abc');
と定義しておくと、freo/index.php/abc
にアクセスしたとき以外に init.sample1.php
が読み込まれます。
init.sample1.php
<?php
/* メイン処理 */
function freo_init_sample1()
{
global $freo;
//エントリーのURLをランダムに作成
$parameter = 'view/' . rand(1, 3);
//パラメーター設定
$freo->parameters = explode('/', $parameter);
$_REQUEST['freo']['mode'] = $freo->parameters[0];
$_REQUEST['freo']['work'] = $freo->parameters[1];
return;
}
?>
「init.
+ プラグインID + .php
」というファイルを作成し、そのファイル内で「freo_init_
+ プラグインID」という関数を定義すると、プラグインの設定ファイルが読み込まれた直後に呼び出されます。
//エントリーのURLをランダムに作成
$parameter = 'view/' . rand(1, 3);
この部分の rand(1, 3)
で、1~3の数値をランダムに取得しています。つまり、$parameter
には view/2
のような文字列が格納されます。
//パラメーター設定
$freo->parameters = explode('/', $parameter);
$_REQUEST['freo']['mode'] = $freo->parameters[0];
$_REQUEST['freo']['work'] = $freo->parameters[1];
この処理によって、実際に表示するページが $parameter
の内容(view/2
など。)になります。