基本的な表示のプロセス

テーマとテンプレートによる表示

a-blog cmsはどのようにして各ページを出力しているかを解説しながら、表示のための仕組みや必要なファイル、記述についての基本を理解しましょう。解説内の各項目については、それぞれ別に章を設けて詳しく解説していきます。

テーマによる表示テンプレートの確定

a-blog cmsはテーマ設定に従い表示テーマが決められます。


同梱テーマ「site2016」と「blog2016」

同梱テーマ「site2016」と「blog2016」


このテーマ設定により、トップページ、一覧ページ、エントリー詳細で使用するテンプレートファイルが指定されています。
なお、テーマ内のテンプレートファイルと同名のファイル名が呼び出された場合、エントリー詳細に指定されたファイルではなく、同名のテンプレートファイルが優先して表示されます。

モジュールによるデータの表示

テーマ設定と表示ページによって使用されるテンプレートファイル内では、a-blog cmsの各種データ出力に必要なモジュールが記述されています。
このモジュールは、各ブログのモジュール設定に従い情報を出力しています。
a-blog cmsにはサイト制作に必要な様々なモジュールが用意されており、このモジュールを組み合わせてページ(サイト)を制作することになります。


多彩なモジュールをご用意しています

多彩なモジュールをご用意しています

モジュールIDによるデータの表示

テンプレート内では、モジュールと同様の記述でもモジュールごとに固有の設定が作られる「モジュールID」を記述することもでき、モジュールIDはブログ単位のモジュール設定ではなく個別の設定に従い情報を出力します。


モジュールとモジュールIDの使い分けについて

モジュールとモジュールIDの使い分けについて


インクルードによる外部ファイルの表示

サイト内で同一の内容を記述するのには通常それぞれに記述する必要がありますが、複数回使用するような内容については別ファイルとして、各テンプレートにインクルードで読み込むファイルを指定することで使い回しができます。
このようにインクルードするファイルの中にもモジュール(モジュールID)が設定できるため、1つのファイルで固定の表示とせずに、読み込み先で表示内容を動的に変えることもできます。


ヘッダー(header.html)を複数のページで使い回しています。

ヘッダー(header.html)を複数のページで使い回しています。


以上の表示の流れから、サイト制作者がa-blog cmsに対してカスタマイズを行う場合、大きく2つの方法が必要になります。

1. テンプレートファイルに必要なモジュール(モジュールID)を記述する 2. モジュール(モジュールID)に対してデータの登録、表示条件についてを設定する

1-2. 表示のプロセス:3つの基本ページ

テーマにはトップページ、一覧ページ、エントリー詳細をはじめ、いくつかの状態に応じたテンプレートファイルの設定があります。これらのテンプレートがどのような場合に動作するかについては「テーマ設定」の各項目のツールチップで解説していますが、サイトの基本となるテンプレートは以下のように使われています。

トップページ設置先ディレクトリ(一般的にはWebサーバのドキュメントルート)
一覧ページURLがスラッシュで終わっている場合
詳細ページURLが.htmlで終わっている場合

以上のように表示するページによって使用するテンプレートが選択されます。

このようにa-blog cmsでは、使用するテーマ・テンプレートファイルと、テンプレートファイル内のモジュールの記述によって、登録されたデータが表示されています。

CMSを活用して パーソナライズされた Web サイトを作る

こちらのハンズオンでは、「特定のページを見た」とか「あるページを何回以上アクセスした」という情報を Cookie に保存し、その条件によってコンテンツを切り替える事で、アクセスするユーザーによって違うコンテンツを表示できる事を体験してみます。

テーマ全体を変更したり、テーマは同じでもトップページのテンプレートファイルだけを変更したり、さらに手軽にトップページのスライダーの中身だけを変更する事も可能です。

a-blog cmsでnginx(キャッシュサーバ)を使ってみる

nginxとは

wikipedia参照 > "nginx(発音は「Engine-X」)は、オープンソースのWebサーバであり、HTTP, SMTP, POP3, IMAPのリバースプロキシとしても機能する。高い並行性と処理性能、メモリ使用量の小ささに重点を置いて開発されている。BSD-likeライセンスでリリースされている。"

つまりApacheと同じwebサーバの事ですが、ここで重要なのはリバースプロキシとして高速に動作するという点です。

今回やってみたことは、表側にnginxをキャッシュサーバとして置き、裏側のApacheにa-blog cmsをインストールするという構成になります。(下の図参照)

ブログとカテゴリ

a-blog cmsでは、情報の単位としてブログ、カテゴリーという呼称を使用します。また、最小単位としてエントリーがあります。


ブログ

ブログは、a-blog cmsを設置した場合に最初からあるもので、固有のユーザー、モジュールを含む各種設定を持っています。
a-blog cmsを使ったサイトの運営では、最低1つあれば問題ありませんが、親子関係(上下階層)・兄弟関係(並列階層)のブログを任意で追加できます。
これらブログを複数で使用することで、ブログ(=コンテンツ)に所属するユーザー(=ブログを管理できるユーザー)を切り分けたり、同一サイト内でも別のテーマを使うなど、より詳細な運用ができます。


カテゴリー

カテゴリーは、ブログ内でエントリーの分類として使用します。表示時のurlは 設置ディレクトリ/ブログ/カテゴリー/ の形で表され、この場合にはテーマ設定の「一覧ページ」を使って表示されます。親子関係(上下階層)・兄弟関係(並列階層)のカテゴリーも作成できます。
カテゴリーを設定することで、カテゴリーごとの表示はもちろん、カテゴリーによるモジュールIDなど表示の設定を行うといった運用ができます。

多言語対応サイトを作ってみよう

CMS を活用して多言語サイトを作る際には、いくつかの方法があります。

もっとも簡単なのはドキュメントルートにメインの言語(日本語)のサイトを用意しつつ、a-blog cms 的には子ブログ( bid:2 ) に en というブログコードを指定して、英語サイトを個別に用意する。( 例:http://www.example.com/en/ ) これを実現する方法については、子ブログの追加のみで可能になります。ここでは、もう少し高度な設定が必要な、多言語を同一コンテンツで管理する方法について紹介します。

多言語として活用する以外に、同じ情報をベースにしたPCとスマホのコンテンツを管理するサイトの構築にも役立つはずですので、ぜひチャンレンジしてみてください。