フロントエンドコンテンツ - ページ、エリア、ブロック、テーマ、スタック

以下の用語はconcrete5で使われているウェブサイトのフロントエンドコンテンツを説明するものです。ウェブブラウザーでページを閲覧する際に目にするコンテンツのことです。

concrete5では、サイトはページの集まりです。これらのページはツリー構造で整理されます。「ホーム」ページ以外のすべてのページは、親ページを持っています。サイト全体のツリーは管理画面内のサイトマップページで確認できます。管理画面はconcrete5のバックエンド、バックオフィスです。一般的に、コンテンツに関連するウェブサイトの変更はそのページにアクセスして行い、ユーザーの追加やファイルの管理など、サイト全体の管理に関する操作は管理画面から行います。管理画面は、権限設定によって保護されています。

concrete5サイトはすべて有効なテーマを持っています。サーバー上のテーマディレクトリには、テンプレートファイル、CSS、JavaScript、画像、その他のHTMLの表示に必要なファイルが格納されています。テーマディレクトリには、ページテンプレートに対応するPHPファイルも格納されています。特定のテンプレートが指定されたページは、有効なテーマのディレクトリにあるページテンプレートのPHPファイルをもとに出力されます。テーマには、オプションで PageTheme クラスファイルが存在します。このファイルはグリッドフレームワークの指定などの、テーマで使われる様々な要素を記述できます。テーマにはカスタマイズ機能に対応していたり、異なるプリセットを持っているものもあります。

ページテンプレートはページ内のエリアを定義するPHPファイルです。concrete5のエリアとは、ページ内にブロックを配置するためのセクションです。エリアには、通常のエリアとグローバルエリアがあります。グローバルエリアに追加されたブロックは、そのグローバルエリアがあるすべてのページで共通で表示されます。通常のエリアでは、ページに追加されたブロックはそのページでのみ表示されます。エリアにブロックを追加するには、シンプルかつ直感的にドラッグ&ドロップします。すべてのエリアには1つ以上のブロックを格納することができます。

ブロックは、ページに表示される特定の種類のコンテンツのインスタンス(実体)です。編集モードでは、ブロックにマウスを当てるとクリックでき、ページを表示したまま編集できます。すべてのブロックは共通で、追加したユーザーのID、追加または編集された日時などの共通データを持っています。ブロックタイプとはそれらのブロックの違いを定義するものです。ブロックタイプにはHTML、スライドショー、フォーム、ページタイトル、アンケート、ナビゲーションなどがあります。多くのブロックは静的ですが、中には動的なブロック(フォームなど)もあります。ブロックタイプはページ内の他のブロックとは完全に独立しています。すべてのブロックタイプは独自のプレゼンテーションレイヤーを持ち、ページに追加された時や編集した時に表示されるフォームを持っています。それらのフォームは、ページ内でポップアップ表示されますが、ブロックタイプによってはページ内に直接表示されることもあります。また、ブロックタイプは開発者によってかんたんに追加できます。各ブロックはデフォルトのプレゼンテーションレイヤー(ビュー)に加えて、追加のカスタムテンプレートを持つことができます。これらは特定のページ上の特定のブロックインスタンスごとにCMS上で切り替えることができる追加のプレゼンテーションレイヤーです。

ページにブロックを追加することだけが、ページにコンテンツを追加する手段ではありません。追加パネルはユーザーのクリップボードにペーストされたブロックやサイト全体のスタックに追加されたブロックもドラッグ&ドロップで追加することができます。スタックは管理画面から一括で管理できるブロックの集まりです。スタックは全体をページにドラッグすることができ、管理画面からスタックごとにバージョン履歴や権限の設定を行うことができます。

ブロックに加えて、ページにはページ属性を添付することができます。ページ属性は、ページ上に表示される「目に見える」コンテンツではなく、ページに「関する」データです。例えば、「ナビゲーションから除く」「メタページタイトル」メタキーワード」「ブログ投稿トピック」などが属性になります。

ブロックを編集すると、そのページの新しいバージョンが作成され、それらのバージョンはロールバック(巻き戻し)を行うことができます。それらのバージョンは、本質的にはブロックや属性の集まり(コレクション collection)であるため、concrete5の用語ではコレクション(Collections)とコレクションバージョン(CollectionVersions)とも呼ばれます。ページ(Pages)オブジェクトはconcrete5のコレクションオブジェクトを継承していますが、コレクションオブジェクトよりも多くの機能を持っています。

ページテンプレートとは別に、ページはページタイプで分類されます。ページタイプは、ページの分類を定義するもので、基本的に表示に関するものではありません。「フルサイト」を選択すると、「空白のページ」「ブログ記事」「ポートフォリオプロジェクト」などのページタイプがインストールされますが、自分で作成することもできます。特定のページタイプで作られたページで選択できるページテンプレートを制限することもできます。サイト内のページはページタイプとページテンプレートの両方を持っています。ページタイプとページテンプレートの組み合わせごとに、ページタイプのデフォルトがあります。特定のページタイプとページテンプレートの組み合わせの際に、どのエリアにどんなブロックが置かれているかを、管理者がCMS上で編集・設定することができるようになっています。デフォルトで設定されたブロックは、そのページタイプとページテンプレートの組み合わせでページを作成された際に、自動で配置される仕組みになっています。

さらに、ページタイプはコンポーザーフォームインターフェースを持っています。このフォームは管理画面から編集可能で、管理者は複数のコンポーザーフォームレイアウトセットを作成し、その中にレイアウトセットコントロールを追加できます。レイアウトセットコントロールとは、例えばコアページプロパティの「ページ名」「ページテンプレート」「ページURLスラッグ」や、ページ属性、ブロックを指します。コンポーザーは、編集モードとは別に、フォーム形式の入力インターフェースでconcrete5のページを作成することを可能にします。特定のページを作成する際に、このコンポーザーフォームが表示されるか、編集ページの状態で新規ページが作成されるかを選ぶことができます。この時点では、ページは下書きの状態で、公開されていません。下書きページはサイトマップには存在せず、もちろん公開されているサイトにもありません。下書きページの編集が完了し公開可能になったら、下書きページにサイトマップから公開先ページを選択する必要があります。ページタイプごとに、特定の公開先ページをあらかじめ設定しておくことができます。また、特定のタイプのページの中から公開先を選ばせることもできます(例えば、ブログカテゴリーページタイプの中からブログ投稿の公開先を選ばせるというような場合です)。

いくつかのページは複製したり追加したりできないものの、管理者が権限を設定したり、属性を変更したりするために、サイトマップ上に存在する必要があるものがあります。たとえば、ログインページやconcrete5の管理画面内の各ページなどです。これらのページをシングルページと呼びます。シングルページは、ページタイプを持たないページです。その代わりに、シングルページはファイルシステム上のPHPファイルと直接対応しています。シングルページは通常の方法では追加できず、管理画面のシングルページセクションから登録する形になります。シングルページはファイルシステム上に追加されるため、いったんインストールされると、固定のパスに存在することがはっきりしますので、サイト内に1つだけ存在するページを作成する場合にメリットがあります。

原文:Front-End Content – Pages, Areas, Blocks, Themes & Stacks