PowerCMS でコンテンツを出力する仕組みには、テンプレートが大きく関わっています。テンプレートでは、コンテンツに必要な HTML タグを出力するためにテンプレートタグを使います。ファイルを出力するテンプレートでは、どのようなファイル名で出力するかを設定することができます。
PowerCMS のテンプレートは、大きく 4 つに分類されます。ここでは、各々の役割について解説します。
インデックステンプレート
インデックステンプレートは、ひとつのテンプレートでひとつのファイルを出力します。
主に、ワークスペース/スペース全体の内容に関わるファイルを扱う目的に利用します。メインページやサイトマップをはじめ、スタイルシートファイルや javascript、RSS なども管理することができます。
アーカイブテンプレート
PowerCMS では、特定のルールで記事をまとめたものをアーカイブと呼びます。アーカイブテンプレートを使って様々なアーカイブを出力することができます。インデックステンプレートとの違いは、1 テンプレートで複数のページ、様々な種類のアーカイブを出力するところです。
たとえば、ある記事が公開されたときに、その記事のページを出力するのは記事アーカイブの役割です。他にも、同じカテゴリに属する記事をまとめてカテゴリーアーカイブとして出力したり、一ヶ月間に投稿された記事を月別アーカイブとして出力することができます。
各アーカイブの出力ルールは、各々のテンプレート編集画面に設置されている、アーカイブマッピング機能を利用して設定します。
PowerCMS では、アーカイブテンプレートの特長を理解し、テンプレートを設定することによって、効果的なサイトを作成できます。
アーカイブテンプレートの種類
前述のように、アーカイブテンプレートにはいくつかの種類があり、アーカイブテンプレート作成の際にどれを使用するか選択します。
- ウェブページ
-
個々のウェブページを表示するアーカイブテンプレートです。このテンプレートの中は、MTPages ブロックタグのコンテキストとなります。
- 記事
-
個々のエントリーを表示させるページを設定します。多くのスペースでは、エントリー 1 つ 1 つが記事を保存する最小単位となっており、このページの URL を固定することで外部から参照しやすくなっています。従って、これはトップページとなるインデックステンプレートと並んで重要なテンプレートといえます。このテンプレートの中は MTEntries ブロックタグのコンテキストとなります。
- アーカイブ / 記事リスト
-
様々なルールで作成された記事をリストするアーカイブテンプレートです。標準で選択できるアーカイブの種類は以下になります。
- 記事 (Individual)
- ウェブページ (Page)
- 日別 (Daily)
- 週別 (Weekly)
- 月別 (Monthly)
- 年別 (Yearly)
- ユーザー別 (Author)
- ユーザー - 日別 (Author-Daily)
- ユーザー - 週別 (Author-Weekly)
- ユーザー - 月別 (Author-Monthly)
- ユーザー - 年別 (Author-Yearly)
- カテゴリ (Category)
- カテゴリ - 日別 (Category-Daily)
- カテゴリ - 週別 (Category-Weekly)
- カテゴリ - 月別 (Category-Monthly)
- カテゴリ - 年別 (Category-Yearly)
たとえば月別に記事をまとめ、過去のバックナンバーとして読めるように設定したり、カテゴリや作成ユーザーごとに記事をまとめることができます。各々の出力形式は、記事リストテンプレートの編集画面に設置されている、アーカイブマッピングで追加修正を行えるようになっています。
インデックステンプレートとの使い分け
アーカイブテンプレートは、カテゴリー別、月別など、ある単位で記事を分類して表示するものです。サイトマップのように、すべての記事を一括して扱いたい場合には、インデックステンプレートを利用します。
テンプレートモジュール
様々なテンプレートで共通して使うテンプレートの断片をモジュールとしてまとめておくことができます。カスタマイズしていくうちに長くなってしまったテンプレートの可読性を高めたり、サイトのヘッダやフッタなど、どのページでも同じ状態で利用する部分を共通化するなどの利用法があります。
テンプレートモジュールは MTInclude ファンクションタグを利用して、テンプレートの任意の位置から呼び出すことができます。
また、MTSetVar や MTIf を利用し、同じ役割のモジュールをまとめたものから、テンプレートごとに出し分けたりすることも可能です。
システムテンプレート
システムテンプレートは、検索結果画面や会員サイトでのサインイン画面など、特定の機能で使われることが決まっているテンプレートです。これらの画面のビジュアルを変更したい場合にはシステムテンプレートを編集します。
また、ワークフロー通知などのメールの内容もシステムテンプレートで管理されており、任意の内容に変更することが可能です。