この記事は1年以上前の古い記事です。現状に即していない記述の場合があります。あらかじめご了承ください。
bluditでページのテンプレートを差し替える

nogajun
Bluditのテーマの話です。
コンテンツ編集のオプションを開くと高度な設定に「テンプレート」という項目があります。これの使い方がドキュメント化されていなくて、よくわからなかったのですがフォーラムに使い方が書いてあったのでメモです。
- Separate home page and blog (loop) page in theme (developing a new theme) - Bludit Support: https://forum.bludit.org/viewtopic.php?p=10690#p10690
予想通りですが、テンプレートの項目を使うとページを別のphpファイル(テンプレート)に差し替えられます。
ですが、ただ、テンプレートのファイル名を書いただけでは適用されません。テーマのindex.phpにテンプレートに指定したphpファイルを適用の分岐処理も合わせて必要になります。それが、フォーラムに書いてあったコードです。
<?php
if ($WHERE_AM_I=='home') {
include(THEME_DIR_PHP.'home.php');
} elseif ($page->template()) {
$file = THEME_DIR_PHP.$page->template().'.php';
if (file_exists($file)) {include($file);} else {include(THEME_DIR_PHP.'page.php');}
} else {
include(THEME_DIR_PHP.'page.php');
}
?>
この中で $page->template()
を使ってページのテンプレートに書かれているか調べています。書かれていたら、そのファイルをincludeして、そうでなければpage.phpをincludeするという単純な分岐ですね。
この例では、入力された値をそのまま渡しているので仕事で使うならバリデーションを入れたほうがいいかもしれないけど、テンプレートを使うとphpファイルを差し替えられるという情報でした。