cake1.1系ではwebserviceが使えたが、1.2系では使えなくなっているので、prefixを使用する。
1. URLルーティングでprefixを設定する
[app/config/routes.php]に下記を追加する。
Router::connect('/m/:controller/:action', array('prefix' => 'mobile'))
"/m/xxx/yyy"へアクセスがなされると、prefix=mobileを有効とする。
2. prefix用アクションを作成する
[app/controllers/xxx_controller.php]に下記を追加する。
class XxxController extends AppController {
public function mobile_yyy() {
// 通常のアクションを実装
}
}
xxxコントローラのyyyファンクションが実行されるようになる。
prefixが有効な状態のとき、アクションとして[prefix + _ + action]が呼ばれる。
※bakeしたときに生成される、index,add,edit,delete,viewコントローラそれぞれについて、mobile_index,mobile_addのように、接頭語に"mobile_"をつけたものを複製するとよい。
3.prefix用ビューを作成する
上記2.と同じように、PC用のビューファイルを複製して接頭語に"mobile_"をつけたものを作ればよい。
$html->link()などでURIを指定するときは、アクションにprefixが付いたアクション(mobile_yyy)を指定する。下の例なら「/m/xxx/yyy」がURIとして出力される。
echo $html->link('link', array('controller' => 'xxx', 'action' => 'mobile_yyy'));
4.prefix用レイアウトを作成する
(1)[app/controllers/xxx_controller.php]に下記を追加する。
function beforeRender()
{
if(isset($this->params['prefix'])){
$this->layout = 'mobile_'.$this->layout;
}
モバイル用URIへのアクセスがなされたとき、接頭語に"mobile_"がついたレイアウトが適用される。
(2)[app/views/layouts/mobile_default.ctp]を作成する。
※標準レイアウトが[default.ctp]の場合。
上記1〜3の参考記事:
■CakePHP 1.2で携帯用ビューを表示する
上記4の参考記事:
■モバイル用レイアウト
CakePHP ポケットリファレンス (Pocket Reference)
posted with amazlet at 08.07.10
株式会社ブルーオーシャン 岡田 佳典
技術評論社
売り上げランキング: 34311
技術評論社
売り上げランキング: 34311
おすすめ度の平均: 


タグ:cakephp