テンプレートの種類には、レイアウトテンプレート、エレメントテンプレート、コンテンツテンプレートの3種類がありますが、ここでは、主にコンテンツの本体を表現するコンテンツテンプレートのカスタマイズについて説明します。
レイアウトテンプレートや、エレメントテンプレートについては、テーマ用語集 や、独自のテーマを作成する を参考にしてください。
固定ページとは、単一で独立したWebページそのものを指し、ツリー形式のフォルダ構造で整理して配置することができます。baserCMS5からは、セキュリティ上の観点より本文欄にPHPコードが埋め込めなくなったため、ショートコード の利用を推奨しています。
固定ページは基本的に、1フィールドのコンテンツを出力するだけの仕組みですが、それを包み込む形でコンテンツテンプレートを配置することができます。
また、固定ページのコンテンツテンプレートは、コンテンツフォルダに指定して、フォルダ内で共通利用したり、各固定ページにて個別に設定することもできます。 例えば、特定のコンテンツフォルダ配下の固定ページについてお問い合わせフォームへのボタンを配置するという事が可能となります。
固定ページのコンテンツテンプレートは次の場所に配置することで管理システムより認識することができます。
/plugins/{YourTheme}/templates/Pages/{YourTemplateName}.php
コンテンツフォルダ編集画面、または、固定ページ編集画面の「詳細設定」より変更します。
※ レイアウトテンプレートは、複数設置することが可能で、初期状態で「default」です。
なおコンテンツテンプレートでは、次のコードを記述することでコンテンツ本体を出力することができます。
<?php echo $page->contents ?>
baserCMSで提供されるブログプラグインは、複数のブログを同時に設置できる機能をもった高性能ブログです。ただし、WordPress のようにブログシステムから派生したCMSではない為、機能面でブログ専門のシステムに及ばない部分がありますが、フレームワークの拡張性の高さにより、実案件では、クリエイターが必要な機能を自作で追加するなどが可能です。
ブログのコンテンツ用のテンプレートは基本的に、4つのテンプレートで構成されています。
また、初期状態では、baserCMSのパッケージが提供する初期テンプレートを利用する設定となっており、変更するには上記ファイル群を、下記の場所に配置します。
/plugins/{YourTheme}/templates/plugin/BcBlog/Blog/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/plugin/BcBlog/Blog/{コンテンツテンプレート名}/archives.php
/plugins/{YourTheme}/templates/plugin/BcBlog/Blog/{コンテンツテンプレート名}/single.php
/plugins/{YourTheme}/templates/plugin/BcBlog/Blog/{コンテンツテンプレート名}/posts.php
# 次のパスでも動作します
/plugins/{YourTheme}/templates/Blog/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/Blog/{コンテンツテンプレート名}/archives.php
/plugins/{YourTheme}/templates/Blog/{コンテンツテンプレート名}/single.php
/plugins/{YourTheme}/templates/Blog/{コンテンツテンプレート名}/posts.php
ブログコンテンツ編集画面の「詳細設定」より変更できます。
※ コンテンツテンプレート名は、初期状態で「default」です。
※ コンテンツテンプレート名は、管理システム上で、各ブログの設定より変更できるようになっており、複数のブログを設置した場合、各ブログごとに変更する事ができます。
次のようなタグが利用できますが、詳細については、テーマ関数リファレンス にまとめられる予定です。
それまでは、「bc-front」テーマ内のテンプレートを参考にしてください。
// 記事のタイトルを出力する
$this->BcBaser->blogPostTitle($post);
// 記事の本文を主力する
$this->BcBaser->blogPostContent($post, true, false, 46);
posts.php は、エレメントとして動作させているという特殊な仕様となっており、element フォルダがないと動作しません。
次のパスに element ディレクトリを配置していください。(空で大丈夫です)
# プラグインフォルダを作成する場合
/plugins/{YourTheme}/templates/plugin/BcBlog/element/
# プラグインフォルダを作成しない場合
/plugins/{YourTheme}/templates/element/
baserCMSで提供されるメールフォームプラグインは、複数のメールフォームを同時に設置できる機能をもった高性能メールフォームです。管理システムより、フォームの入力欄を独自に定義することができ、バリデーションも細かく設定できます。
メールフォームのコンテンツ用のテンプレートは基本的に、4つのテンプレートで構成されています。
また、初期状態では、baserCMSのパッケージが提供する初期テンプレートを利用する設定となっており、変更するには上記ファイル群を、下記の場所に配置します。
/plugins/{YourTheme}/templates/plugin/BcMail/Mail/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/plugin/BcMail/Mail/{コンテンツテンプレート名}/confirm.php
/plugins/{YourTheme}/templates/plugin/BcMail/Mail/{コンテンツテンプレート名}/submit.php
/plugins/{YourTheme}/templates/plugin/BcMail/Mail/{コンテンツテンプレート名}/unpublish.php
# 次のパスでも動作します。
/plugins/{YourTheme}/templates/Mail/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/Mail/{コンテンツテンプレート名}/confirm.php
/plugins/{YourTheme}/templates/Mail/{コンテンツテンプレート名}/submit.php
/plugins/{YourTheme}/templates/Mail/{コンテンツテンプレート名}/unpublish.php
ブログコンテンツ編集画面の「詳細設定」より変更できます。
※ コンテンツテンプレート名は、初期状態で「default」です。
※ コンテンツテンプレート名は、管理システム上で、各メールフォームの設定より変更できるようになっており、複数のメールフォームを設置した場合、各メールフォームごとに変更する事ができます。
次のようなタグが利用できますが、詳細については、テーマ関数リファレンス にまとめられる予定です。
それまでは、「bc-front」テーマ内のテンプレートを参考にしてください。
// メールフォームの説明文を出力する
$this->BcBaser->mailFormDescription();
// メールフォームの開始タグを出力する
$this->BcBaser->createMailForm($mailMessage, ['url' => $this->BcBaser->getContentsUrl(null, false, null, false) . 'confirm', 'type' => 'file', 'valueSources' => ['context']]);
baserCMS5より搭載されたカスタムコンテンツは、オリジナルの表現のコンテンツを独自のフィールドとして定義し、データベースを構築することができる機能です。詳細については、baserCMS5ツアーのカスタムコンテンツ をご覧ください。
カスタムコンテンツのコンテンツ用のテンプレートは基本的に、2つのテンプレートで構成されています。
また、初期状態では、baserCMSのパッケージが提供する初期テンプレートを利用する設定となっており、変更するには上記ファイル群を、下記の場所に配置します。
/plugins/{YourTheme}/templates/plugin/BcCustomContent/CustomContent/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/plugin/BcCustomContent/CustomContent/{コンテンツテンプレート名}/view.php
# 次のパスでも動作します
/plugins/{YourTheme}/templates/CustomContent/{コンテンツテンプレート名}/index.php
/plugins/{YourTheme}/templates/CustomContent/{コンテンツテンプレート名}/view.php
カスタムコンテンツ編集画面の「詳細設定」より変更できます。
※ コンテンツテンプレート名は、初期状態で「default」です。
※ コンテンツテンプレート名は、管理システム上で、各カスタムコンテンツの設定より変更できるようになっており、複数のカスタムコンテンツを設置した場合、各カスタムコンテンツごとに変更する事ができます。
次のようなタグが利用できますが、詳細については、テーマ関数リファレンス にまとめられる予定です。
それまでは、「bc-front」テーマ内のテンプレートを参考にしてください。
// エントリーのタイトルを出力する
$this->BcBaser->customEntryTitle($entry);
// エントリーの公開日を出力する
$this->BcBaser->customEntryPublished($entry);
固定ページ、ブログ、メールフォーム、カスタムコンテンツは、コンテンツ管理機能の管理下となり、コンテンツ管理機能としてレイアウトテンプレートを個別で変更することが可能です。
レイアウトテンプレートは次の場所に配置します。
/plugins/{YourTheme}/templates/layout/{コンテンツテンプレート名}.php
次の各編集画面の「オプション」より変更します。
※ レイアウトテンプレート名は、初期状態で「default」です。
各テンプレートを変更する場合は、不具合をできるだけ避ける為、baserCMSが提供するコアテーマのテンプレートをコピーして修正する事をおすすめします。
コピーの際には、ファイル読み込みの優先順位 を参照してください。
2023/04/17現在のコアテーマは、「bc-front」になります。