[ ページコメント(0) ] [ トラックバック(0) ]
Counter: 3696,
today: 1,
yesterday: 8
携帯によって表示を変える
まず、cakeのライブラリの中にある
app_controller.phpを
appフォルダにコピーします。
次にrender関数をオーバーライドするため
以下の内容を書き込みます。
function render( $action = null, $layout = null, $file = null )
{
if( !empty( $_SERVER["HTTP_USER_AGENT"] ) )
{
$ua = $_SERVER["HTTP_USER_AGENT"];
if( strpos( $ua, "DoCoMo" ) !== FALSE ){
$action = "i_" . ( $action ? $action : $this->action );
$layout = "i_" . $this->layout;
}else if( strpos( $ua, "UP.Browser" ) !== FALSE ){
$action = "a_" . ( $action ? $action : $this->action );
$layout = "a_" . $this->layout;
}else if(
strpos( $ua, "SoftBank" ) !== FALSE ||
strpos( $ua, "Vodafone" ) !== FALSE ||
strpos( $ua, "J-PHONE" ) !== FALSE ){
$action = "j_" . ( $action ? $action : $this->action );
$layout = "j_" . $this->layout;
}
}
return parent::render( $action, $layout, $file );
}
このようにして携帯端末チェックを行うと、
個別のコントローラーは全くいじることなく、
携帯用にビューテンプレートを用意しておけば
自動的にそれが表示されます。
たとえば上記の例では、
/test/view
が表示された時、
PCではview.thtmlが使用されますが、
iモードだとi_view.thtml、
auだとa_view.thtml
が自動的に選択されて表示されます。
付箋の編集
添付ファイル: