昨日の参考URLの情報を元に、携帯サイトの続きを行った。
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=751&forum=3
とりあえず、記録も登録できるようになったし、$this->Session->setFlash(‘登録しました’);の文字の文字化けもなくなった。ただし、すべてこの参考サイトの通りにやったわけではないので、一応自分なりに注意点を書いておきます。
- app_controller.phpのコンストラクタ
if(ereg(“^/m/”, $_SERVER[‘REQUEST_URI’])){ …だが、
^/m/は、開発中には向かない場合がある。俺のように、phpmyadminを使う人は、おそらくhttp://localhost/cake/m/となっているんじゃないか?と思うが、その場合は、
if(ereg(“^/cake/m/”, $_SERVER[‘REQUEST_URI’])){ …
とする。もちろん、公開するときは修正必要なので注意! - CakePHPガイドブックに従ってmobileヘルパーを作っている場合、afterRenderでmb_convert_encodingしていると、app_controller.phpのafterFilterメソッド内で文字コード変換済みなのでさらに文字化けするので注意。afterRenderをコメントアウトしてしまうとよい。
まあこれくらいかな?あとは、リンクにいちいちセッションをGETで引き渡さなければならないが、毎回のようにCAKE_SESSION_COOKIE . “=” . session_id()と書くのが、非常に面倒なので、mobileヘルパーに以下のようなメソッドを作ってみた。
function cake_session(){ return h(CAKE_SESSION_COOKIE) . "=" . h(session_id()); }
これを作っておくと、VIEWで、
<?php e($html->link('トップページ', '/?'. $mobile->cake_session())) ?>
と書けるので、なんとなく楽。