購読者ユーザでもキャッシュを効かせてみる

購読者ユーザでキャッシュ

現在、購読者ユーザでキャッシュを効かせるオプションを開発中です。 a-blog cmsではログインしている状態では、キャッシュが効かない状態になります。 しかし、購読者ユーザは自分のプロフィールぐらいしか編集できないので、基本的にキャッシュが効いている状態が望ましいです。

仕組み

この仕組みはオプションにしてconfig.system.yamlで設定を切り替えれるようにしたいと思ってます。たぶんデフォルトはOFFです。

オプションを有効にすることにより、管理ページ以外にキャッシュが効くようになります。 しかし問題になってくるのが、管理パーツなどのキャッシュしたくない所です。

ここは、post_includeで解決する事を考えています。 また下のコードの様に、新しくキャッシュを効かせないhiddenを用意してあります。 これはpost_includeの時にしか効かないオプションにする予定です。

基本的な表示のプロセス

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

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をインストールするという構成になります。(下の図参照)