解説
URLに付加されたパラメータが正しいか、順序と指定先の存在をチェックします。デフォルトは
の、3段階。増減やパラメータ名の変更はdefine.phpの、$param_tableで指定出来ます。
$param_tableの設定値以外のパラメータ名があったり、順番が違っていたりするとパラメータエラーを返し、表示処理を中断します。
パラメータの名前と順序が正しい場合、パラメータの値を繋げてカレントディレクトリへのpathとし、該当pathのXML(ファイル名は最後尾のパラメータの値=最下層フォルダ名と同じ)の存在をチェックし、読み込めなければxml読み込みエラーを返し、処理を中断します。
また、トップページ専用xml(デフォルトのファイル名はtop.xml、同じくdefine.phpで指定出来ます。)から該当ページまでの全階層のxmlを読み込み、配列で保持します。
デフォルトでの例
- パラメータ1個目(デフォルトでid)がparam1
- パラメータ2個目(デフォルトでclass)がparam2
- パラメータ3個目(デフォルトでnum)が無し
の場合、リンクのURLはindex.php?id=param1&class=param2になります。(注:&は半角で&と記述してください。)
このURLパラメータをindex.phpが受け取ると、以下の手順で該当ページまでのデータを取得します。
- config.xmlを取得
- 失敗したら「config xml load error!!!」と表示して終了
- 成功すれば2.へ。
- top.xmlを取得
- 失敗したら「top xml load error!!!」と表示して終了
- 成功すれば3.へ。
- パラメータの数と順番をチェックする。
- define.phpの、$param_tableと比較。設定値以外のパラメータ名があったり、順番が違っていたりしたらエラー。
- 成功すれば4.へ。
- パラメータ1個目で第一階層へのパスを作成。この場合は「param1/」。さらに各階層直下はフォルダ名と同名のxmlとするのでparam1/param1.xmlを取得
- 失敗したら「xml read error!!!」と表示して終了
- 成功すれば5.へ。
- パラメータ2個目を加えて第二階層へのパスを作成。この場合は「param1/param2/」。さらに各階層直下はフォルダ名と同名のxmlとするのでparam1/param2/param2.xmlを取得
- 失敗したら「xml read error!!!」と表示して終了
- 成功すれば6.へ。
- パラメータ3個目はないので、最後に取得したparam1/param2/param2.xmlを読み込み表示を開始する。
階層別設置ファイル例
- root直下
- config.xml
- index.php
- top.xml
- 第一階層(param1/)
- 第二階層(param1/param2/)
- 第三階層(param1/param2/param3)