date. 2013/7/9

category. PHP

CakePHPでユーザーエージェントにより、デザインを変更します。

デザインを変更するには様々な方法がありますが、今回はテーマを使用し、Viewsフォルダにフォルダを追加し対応します。

概要

使用するファイルは『app/app_controller.php』と、viewsに追加するテンプレートになります。

app/app_controller.phpを変更する

『app/app_controller.php』を編集し、ユーザーエージェントによりテンプレートを変更するようにします。

今回はCakePHPのThema機能を使用し、Viewsフォルダの中のフォルダは『sp・default』にします。

class AppController extends Controller {
	public $view = 'Theme';

	public function beforeFilter() {
		if ($this->InsAuth) {
			$this->InstructorAuth();
		}
		if ($this->AdminAuth) {
			$this->AdminAuth();
		}
		if ($this->FreeAuth) {
			$this->FreeAuth();
		}

		$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->theme = "sp";
		}else{
			$this->theme = "default";
		}
	}
}

とbeforeFilterを作成し、記述します。

これで、viewsフォルダに『sp・default』フォルダを作成するとこちらを読みに行くようになります。

参考サイト

関連記事