OneThird CMS

Lightweight CMS for Small website, Web application framework.

Download Document

english

OneThird のソフトウェア構造

OneThird CMSのページレタリングの流れ

OneThird CMSにおけるページレタリングの流れを説明します

1) ページURLリクエストでindex.phpが呼ばれる

2) page_rendererが呼ばれる

3) 各種プログラムによって $html をセットする

4) $htmlを echoする


ページURLリクエストでindex.phpが呼ばれる

OneThirdではmod_rewriteにより、ページURLリクエスト(素材や、JS、CSS以外のページリクエスト)は全てindex.phpが呼ばれます

index.phpでは、

1) ユーザーのログイン処理(basic_initialize)

2) $configの設定、$paramsの設定

が行われます

次に標準プラグイン(/plugin.php)と、ユーザープラグイン(/files/1/plugin.php)を読み込み

最後に、URLの一次解析をおこない、メンバー一覧、やアクションログ等の特殊ページの振り分けを行います


page_rendererが呼ばれる

次に、index.phpはpage_rendererを呼び出します

page_rendererでは、URLの二次解析を行います

二次解析では、ページURLなのかプラグインURLなのかを判断、カノニカルの判断も同時に行います

ここでセットされる$paramsは、以下のとおり

$params['request'] ... $_SERVER['REQUEST_URI']とほぼ同じ

$params['arg'] ... URLのGETクエリー

$params['canonical'] ... ページカノニカル

$params['plugin'] ... プラグイン情報(プラグインページの場合)

$params['template'] ... テンプレートファイル

$params['top_page'] ... トップページか?


次に、ページURLの場合は、ページのデータを読み込みます

読み込んだデータは

$params['page']

に保存されます


最後に、ページプロパティで設定された、ページテンプレートとページphpプログラムを呼び出し、対応する各種レンダラーを呼び出します

****/login

のように、URL型プラグインはここで直接プラグインレンダラーが呼び出されその他は、basic_rendererが呼び出されます


各種プログラムによって $html をセットする

page_rendererによって呼び出された各種レンダラーでは、$html内の出力バッファにデータをセットすることになります


標準レンダラーは

basic_rendererであり

basic_renderer内で、ページタイプを参照し、

type=1の通常ページの場合はbody_rendererが呼ばれます

それ以外のプラグインページでは、対応するプラグインレンダラーが呼び出されます


OneThirdでは独自のブロックタイプのレタリングシステムを採用しています

$params['page']['meta']['renderer']

にインナーページの情報が収められていて、それに従い順次リンクされた下位ページをページ内にレタリングしていきます


なお、ページに設定されたページphpプログラムがわで$params['rendering']がセットされると、標準レンダラーbody_rendererの呼び出しはスキップされます


$htmlを echoする

レンダラーがレタリングした後、最後にexpand_circle_htmlにより、タグのバッファ展開を行い、最終的にechoされます

ただし、レンダラー内で$params['exit']がセットされた場合は、バッファ展開を行わずにプログラムを中断します