個人用ツール

ver4/コアテンプレートのカスタマイズ

提供: baserCMS公式ガイド

2016年10月28日 (金) 18:54時点におけるKatokaisya (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

[このコンテンツは内容調整中です]

ここでは、テンプレートのカスタマイズ方法として、コアファイルをテーマフォルダにコピーしてカスタマイズする方法をご紹介します。

コアファイルとテーマファイルの関係

baserCMS では、部品化したテンプレートを「エレメント」と呼びます。
例えば、Webサイトにおいて、ヘッダーやフッター、サイドバーなどは、同じ内容を利用する事が多いので、一つのファイルとして部品化し、複数のページより読み込むようにした方がメンテナンス性が格段に上がります。

エレメントは、PHPファイルである必要はなくただのHTMLでも構いません。ただし、拡張子は、「.php」として作成します。

テーマでは、ヘッダー、フッター、サイドバーなどが部品化されていますが、読み込み部分は次のようになっています。

<?php $this->BcBaser->element('{エレメント名}') ?>

この読み込む対象のエレメントファイルはどこに入っているでしょう。

テーマのフォルダを覗くとElements フォルダ内に header.php 、footer.php などが入っており、そちらを読み込むようになっていると思いますが、中には、テーマフォルダ内に存在しないエレメントを読み込んでいる場合もあると思います。

実は、baserCMS では、利用しているテーマフォルダの中にないファイルは、lib/Baser フォルダの中の「コアテンプレート」を探しにいく仕様となっています。

例えば、global_menu.php というテンプレートを読み込むようになっていて、そのファイルがテーマフォルダ内に存在しない場合、次の場所のファイルを読み込みます。

{baserCMSの設置フォルダ}/lib/Baser/View/Elements/global_menu.php

要するに、一つのファイルを読み込むにあたり、配置場所の候補が複数あるという事です。
もちろんこれには、決められた優先順位があり、その優先順位に従ってファイルを探します。
この仕様の対象は、エレメントだけでなく全てのテンプレートに対し適用されます。
{baserCMSの設置フォルダ}/lib/Baser/View/ フォルダから下のファイル構成は、テーマフォルダと同じと考えてください。
テーマフォルダ内の Layouts/default.php を削除すれば、{baserCMSの設置フォルダ}/lib/Baser/View/Layouts/default.php が表示に反映されます。
※ {baserCMSの設置フォルダ}/lib/Baser/View/ 以外にも配置場所の候補があります。そちらについては、「ファイル読み込みの優先順位」を参照してください。

従って、グローバルメニューをカスタマイズするには、その逆となり、テーマフォルダ内の、Elements フォルダ内に、global_menu.php を作成します。

テンプレートの読み込み場所を変更した際、反映させるにはサーバーキャッシュを削除します。

コアテンプレートのコピー

{baserCMSの設置フォルダ}/lib/Baserフォルダ内のテンプレートを直接編集しても表示に反映する事ができますが、baserCMS のアップデートの際、{baserCMSの設置フォルダ}/lib/Baserフォルダ内のファイルは上書きされてしまいますので、おすすめしません。
{baserCMSの設置フォルダ}/lib/Baser/View/ フォルダ内のファイルを、テーマフォルダにコピーして編集される事をおすすめします。

FTPでコピーしたファイルをアップすれば作業は早いですが、管理システムからもコピーを行う事ができます。

  • 管理システムにログインし、テーマ管理を開きます。
  • テーマ管理メニューの「コアテンプレート確認」をクリックします。
  • レイアウトテンプレート一覧が開きますので、サブメニューよりコアテーマ管理メニューの「エレメント一覧」をクリックします。
  • 一覧に global_menu.php が表示されていますので、「表示」ボタンcore custom01.pngをクリックします。
  • テンプレートの内容が表示されますので、画面下の「現在のテーマにコピー」をクリックします。
  • 再度「テーマ管理」をクリックし、テーマ一覧に戻ります。
  • 現在適用されているテーマの「管理」ボタンcore custom02.pngをクリックします。
  • レイアウトテンプレート一覧が開きますので、サブメニューより「エレメント一覧」をクリックします。
  • コピーされた global_menu.php が存在しますので、「編集」ボタンcore custom03.pngをクリックして編集します。

このように、baserCMSでは、テーマ内のファイルが極力少なくてすむように設計されており、テーマ内に存在しないファイルはコアのファイルを参照する仕組みとなっています。また、カスタマイズを行うには、コアのファイルをコピーして簡単にカスタマイズできるようになっています。

コアプラグインのテンプレートのカスタマイズ

lib/Baser/Plugin/ 内に配置されている「コアプラグイン」のテンプレートをカスタマイズする場合もコアテンプレートと同様にテーマフォルダ内にコピーしてからカスタマイズを行います。

例えば、ブログプラグインの場合、{baserCMSの設置フォルダ}/lib/Baser/Plugin/Blog/View/Blog/ というフォルダ内に、フロントのテンプレートセットが保存されています。

上記フォルダ内に保存されている「default」というフォルダをテーマフォルダ内の次の場所に保存すると、そちらのテンプレートが優先される事となります。

{baserCMSの設置フォルダ}/theme/{テーマ名}/Blog/default/

コアプラグインのテンプレートも、コアテンプレート同様、管理システムからもコピー作業を行う事ができます。