ユーザエージェントでviewを切り替える方法

ユーザによってはPCでアクセスするパターン、スマートフォンでアクセスするパターン、モバイルからアクセスするパターンなどいろいろな端末からサイトを訪問してきます。

各端末で表示内容を切り替える方法があります。

今回はPCとSPでアクセスされた場合のviewの切り替え。

各Controllerが継承しているAppControllerクラスに追加します。
/app/controllers/app_controller.php

<?php

class AppController extends Controller{

	function beforeFilter(){

		$useragents = array(
			'iPhone', // Apple iPhone
			'iPod',   // Apple iPod touch
			'Android' // Android
		);
		$pattern = '/'.implode('|', $useragents).'/i';
		if ( $_ua =  preg_match($pattern, $_SERVER['HTTP_USER_AGENT']) ) {
			// スマートフォン用の処理を記述する
			//ここをキャリアごとに変える
			$this->viewPath = $this->viewPath.'/sp';
			//ここをキャリアごとに変える
			$this->layoutPath = $this->layoutPath.'/sp';
		}else{
			// PC用の処理を記述する

		}

	}
}
?>

上記のようにすることによって、
SPの場合、”/app/views/all/sp/index.ctp”を参照し、
PCの場合、”/app/views/all/index.ctp”を参照してくれます。

他にもいろんなやり方があるかと思いますが一例でした。

コメントを残す

*

サブコンテンツ

このページの先頭へ