コアテンプレートのカスタマイズ
ここでは、テンプレートのカスタマイズ方法として、コアファイルをテーマフォルダにコピーしてカスタマイズする方法をご紹介します。
コアファイルとテーマファイルの関係
baserCMS では、部品化したテンプレートをエレメントと呼びます。
例えば、WEBサイトにおいて、ヘッダーやフッター、サイドバーなどは、同じ内容を利用する事が多いので、一つのファイルとして部品化して複数のページより読み込むようにした方がメンテナンス性が格段に上がります。
エレメントは、PHP ファイルである必要はなくただの HTML でも構いません。ただし、拡張子は、「.ctp」として作成します。
例えば、「Demo」テンプレートでは、ヘッダー、フッター、サイドバーなどが部品化されていますが、読み込み部分は次のようになっています。
<?php $baser->element('{エレメント名}') ?>
この読み込む対象のエレメントファイルはどこに入っているでしょう。
「Demo」テンプレートの場合、elements フォルダ内に header.ctp 、footer.ctp 、sidebar.ctp が入っており、そちらを読み込むようになっていますが、header.ctp に記述されている、グローバルメニュー用の global_menu.ctp は入っていません。
実は、baserCMS では、利用しているテーマフォルダの中にないファイルは、baser フォルダの中のコアテンプレートを探しにいく仕様となっています。
この場合、次の場所のファイルを読み込みます。
/baser/views/elements/global_menu.ctp
要するに、一つのファイルを読み込むにあたり、配置場所の候補が複数あるという事です。
もちろんこれには、決められた優先順位があり、その優先順位に従ってファイルを探します。
この仕様の対象は、エレメントだけでなく全てのテンプレートに対し適用されます。
/baser/views フォルダから下のファイル構成は、テーマフォルダと同じと考えてください。
テーマフォルダ内の layouts/default.ctp を削除すれば、/baser/views/layouts/default.ctp が表示に反映されます。
※ /baser/views 以外にも配置場所の候補があります。そちらについては、「ファイル読み込みの優先順位」を参照してください。
従って、グロバーバルメニューをカスタマイズするには、その逆となり、テーマフォルダ内の、elements フォルダ内に、global_menu.ctp を作成します。
コアテンプレートのコピー
baserフォルダ内のテンプレートを直接編集しても表示に反映する事ができますが、baserCMS のアップデートの際、baserフォルダ内のファイルは上書きされてしまいますので、おすすめしません。
/baser/views/ フォルダ内のファイルをコピーして編集される事をおすすめします。
baserCMS 1.6.0 からは、管理画面上で、コアファイルのコピーが行えるようになりました。ここでは、global_menu.ctp をコピーする手順について説明します。
- まず、管理画面にログインし、システム設定を開きます。
- サイドメニューのテーマ管理を開きます。
- baserCMSコアというタイトルの「管理」ボタンをクリックします。
- レイアウトテンプレート一覧が開きますので、サイドメニューよりコアテーマ管理メニューの「エレメント一覧」をクリックします。
- 一覧に global_menu.ctp が表示されていますので、「表示」ボタンをクリックします。
- テンプレートの内容が表示されますので、画面下の「現在のテーマにコピー」をクリックします。
- パンくずリストの「テーマ管理」をクリックし、テーマ一覧に戻ります。
- 現在のテーマの「管理」ボタンをクリックします。
- レイアウトテンプレート一覧が開きますので、サイドメニューより「エレメント一覧」をクリックします。
- コピーされた global_menu.ctp が存在しますので、「編集」ボタンをクリックして編集します。
このように、baserCMSでは、テーマ内のファイルが極力少なくてすむように設計されており、テーマ内に存在しないファイルはコアのファイルを参照する仕組みとなっています。また、カスタマイズを行うには、コアのファイルをコピーして簡単にカスタマイズできるようになっています。


















