bluditでページのテンプレートを差し替える

Posted by nogajun - 2022/03/07

Bluditのテーマの話です。

コンテンツ編集のオプションを開くと高度な設定に「テンプレート」という項目があります。これの使い方がドキュメント化されていなくて、よくわからなかったのですがフォーラムに使い方が書いてあったのでメモです。

予想通りですが、テンプレートの項目を使うとページを別の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ファイルを差し替えられるという情報でした。