9. インクルード機能でファイルをまとめる
これは必須の作業ではありませんが、テンプレートファイルの管理のために分割して再利用できるようにしておく事が大事になってきます。
「ヘッダー」と「フッター」部分は全ファイル共通で利用する事ができそうですし、一覧と詳細ページで共通の「カテゴリータイトル」と「トピックパス」「サブカラム」部分も共通化できそうです。また、<head>タグの部分も共通化できる部分もありますので共通化しておくといいでしょう。
/themes/sample/include というフォルダを作って管理します。例えば、ヘッダーと、フッターは以下のように書いてインクルードします。
<!--#include file="/include/header.html" -->
<!--#include file="/include/footer.html" -->
また、サブカラム部分は
<!--#include file="/include/sub.html" -->
のようにインクルードにして、sub.html には、さらにインクルードを指定する事も可能です。
<!--#include file="/include/entry_list.html" -->
<!--#include file="/include/search.html" -->
<!--#include file="/include/banner.html" -->
インクルードされているファイルを調べる
a-blog cms では、ファイルを分割して管理し、インクルードして利用するような運用をお勧めしています。 その場合、ファイルがどこからインクルードされているのか分からなくなってしまわないように HTML ソース側にコメントを追加出力しています。
ブラウザの「ページのソースを表示」か「検証」等の機能をつかってソースコードを確認ください。
<!-- Start of include : source=themes/sample/include/header.html -->
(略)
<!-- End of include : source=themes/sample/include/header.html -->
また、これらのインクルードコメントは config.server.php の最後の方にある DEBUG_MODE が 1 のときに表示されるようになっています。コメントにもあるように、本番運用時には DEBUG_MODE を 0 に設定してご利用ください。
// 本番運用時にDEBUG_MODEを 0 に設定して下さい
define('DEBUG_MODE', 1);
define('BENCHMARK_MODE', 0);
タイトルタグを動的に変更する
entry.html のタイトルタグは以下のように書かれています。
<title>詳細ページ:sample static site</title>
そのままでは、固定のタイトルになってしまいます。タイトルタグは、詳細ページであれば「エントリー名|カテゴリー名 | ブログ名」のような感じで表示されるようにしたいところです。
トップ・一覧・詳細と、どのテンプレートファイルも以下のタグにすることで上記のようなルールで最低限のタイトルの編集が可能になります。
<title><!--#include file="/include/head/title.txt" --></title>
この title.txt は、/themes/system の中に用意されています。 .html でない理由としては、DEBUG_MODE で 1 のときにインクルードする際にコメントが追加されますが、これが .html のときに表示されるようになっております。タイトルタグの中の HTML コメントは、そのまま表示されてしまい都合が悪いので .txt にしておく事でコメント表示をしないようにしています。