サブタイプテンプレートを使うと、アクセス元のブラウザを判定してスマートフォンなどに最適化したページを表示させることができます。
※サブタイプテンプレートを作成するためには、「システム管理者」か「デザイナー」ロールに設定されたユーザーである必要があります。また、テンプレートを作成するためにはHTMLの知識も必要です。
一つのURLでテンプレートの切り替えをおこないます。
ブラウザ判定には、ユーザーエージェントの値を利用します。
判定ルールは、browser.ini (me/admin/data/config/browser.ini)ファイルに定義されています。判定ルールのカスタマイズも可能です。
MicroEngine CMSは基本的には静的配信タイプのCMSですが、サブテンプレート機能を利用した場合は動的配信をおこないます。
ページ登録時にメインテンプレートとサブテンプレートを元にページを生成してキャッシュする仕組みのため、動的配信でも公開サイト側アクセス時にデータベースアクセスが発生しません。そのため高速に処理できます。
※サブタイプを使用する場合、メインテンプレートは、".php"などのPHPを実行できる拡張子である必要があります。
ここでは、PCサイト用ページとスマートフォン用ページを切り替えるケースについて説明します。
browser.ini (me/admin/data/config/browser.ini)ファイルは、ini形式のフォーマットでユーザーエージェントの判定ルールをカスタマイズできます。
※現バージョンでは、browser.iniファイルは管理画面からは編集できません。FTPソフトなどを使いファイルを更新してください。
[](各カッコ)で囲われたセクション名が、表示条件名としてテンプレート編集画面のプルダウンメニューに表示されます。
browser.ini の記述例:
[SmartPhone]
name[] = iPhone
name[] = iPod
name[] = Android
name[] = blackberry
この場合、[SmartPhone] が設定ファイル上のセクション名で、表示条件に表示される名前となります。
"name[] = iPhone" が条件の指定で、この場合ではユーザーエージェントに"iPhone"という文字が含まれれば一致したと判定されます。
"name[]" を複数記述すればそのいずれかに一致したらという条件になります。
"regex[]" という項目を使えば正規表現を利用できます。この値はPHPのpreg_match関数の引数として扱われます。
browser.iniはファイルの先頭に書かれたセクション順に評価されます。
サブタイプテンプレートは複数登録することができるので、その場合は、browser.iniに記述された順に評価されます。
ブラウザでページを閲覧した際にユーザーエージェントを元に自動的に振り分けられます。
しかし、閲覧者がスマートフォンだけどPC用画面を見たい場合などにボタンをクリックしてもらうことでPC用画面を表示させることができます。
ここでは、PC用画面をメインテンプレートで作成していて、サブテンプレートの表示条件を"SmartPhone"にしている場合を例に説明します。
<form action="" method="POST">
<input type="hidden" name="me_display_mode" value="_DEFAULT">
<input type="submit" value="PCサイトを表示する">
</form>
<form action="" method="POST">
<input type="hidden" name="me_display_mode" value="SmartPhone">
<input type="submit" value="スマートフォンサイトを表示する">
</form>