スマートフォン対応

スマートフォン対応について

SimpleTemplateを使用すると、PC・スマートフォン両対応のWEBシステムを構築することが出来ます。
具体的に、クライアント端末のユーザエージェント情報に従って、PCとスマートフォンで表示するテンプレートを振り分ける処理を考えてみます。

【PHPファイル】
// SimpleTemplateクラスのインクルード
require_once('SimpleTemplate.class.php');

// SimpleTemplateインスタンスの生成
$template = new SimpleTemplate();

// PCとスマートフォン端末との振り分け処理
// スマートフォン端末用フラグの初期化(true='smartphone'/false='PC')
$agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($agent, 'iPhone') !== false && strpos($agent, 'iPad') === false) {
	$isSmartphone = true;
} elseif (strpos($agent, 'iPod') !== false) {
	$isSmartphone = true;
} elseif (strpos($agent, 'Android') !== false) {
	$isSmartphone = true;
} else {
	$isSmartphone = false; // PC
}

// テンプレート格納ディレクトリの設定
if ($isSmartphone) {    // スマートフォン端末の場合のテンプレート格納ディレクトリ
	$template->template_dir('./templates/smartphone');
} else {         // PCの場合のテンプレート格納ディレクトリ
	$template->template_dir('./templates');
}

// テンプレートファイル記述エンコーディングの指定
$template->setTplEncoding('UTF-8');

// 出力エンコーディングの指定
$template->setOutputEncoding('UTF-8'); // PC・スマートフォン共にUTF-8で出力

上記例では、PC・スマートフォン共に①テンプレートファイル記述エンコーディング、及び、②出力エンコーディングをUTF-8に設定して、表示するテンプレートファイルのみをPCとスマートフォンで切り替える処理となります。

スマートフォンでは、スマートフォン画面用に設計したHTMLファイルを使用する必要があるため、例のようにスマートフォン端末からのアクセスの場合に、スマートフォン専用のテンプレートファイルを出力処理を実装するとPC・スマートフォン両対応のWEBシステムを構築することが出来ます。
また、上記例では出力するテンプレートファイルのみを切り替える処理のため、PHP側のロジックをPC・スマートフォンで共用することになります。PCとスマートフォンで画面が1対1に対応する場合などは、コードの効率化・省力化にもなると思われます。
※PCとスマートフォンで画面が1対1に対応しない場合は、スマートフォン専用画面のPHPロジックファイルを用意した上で、displayするテンプレートファイルをスマートフォン専用のファイルに設定する必要があります。