ユーザエージェントで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”を参照してくれます。
他にもいろんなやり方があるかと思いますが一例でした。