CakePHP1.2 RC2
PC と携帯が共存しているサイトで、404 エラーが発生すると通常は PC 用の 404 エラーページが表示されます。
そこで、携帯用の 404 エラーページを表示するために、app_controller.php に下記内容を書きます。
function beforeRender()
{
if (isset($this->params['prefix'])) {
if (isset($this->viewVars['code']) && $this->viewVars['code'] == '404') {
$this->viewPath = $this->params['prefix'] . '_' . $this->viewPath;
}
}
}
これで、携帯サイトにて 404 が発生した場合は、"prefix" の設定が "mobile" なら、"mobile_errors" というフォルダ内の error404.ctp ファイルを読みにいきます。
つまり、app/views/mobile_errors/ フォルダを作成し、その中に error404.ctp を作成すれば携帯用の404ページが表示されるという感じです。
関連記事
CakePHP1.2 RC2
携帯版の対応をする時の基本的な内容です。
ここでは、http://example.com/m/ のように /m/ がつくと携帯版になるようにします。
まず、app/config/routes.php に /m/ がついた時の振り分けを記載します。
Router::connect('/m/:controller/:action', array('prefix' => 'mobile'))
続いて、Controller
function mobile_sample()
{
}
通常(PC 用)の Action 名の前に routes.php で設定した prefix + _(アンダーバー)をつけた Action を用意します。
あわせて、View も app/views/samples/mobile_sample.ctp というようなファイル名で設置します。
Layout の変更もします。
AppController
function beforeRender()
{
if (isset($this->params['prefix'])) {
$this->layout = $this->params['prefix'] . '_' . $this->layout;
}
}
app/views/layouts/mobile_default.ctp というファイルを設置すると、そちらを読みにいきます。
これで一通りの準備はできましたが、携帯特有の処理として、app/app_controller.php に下記内容を追記します。
function afterFilter()
{
parent::afterFilter();
if (isset($this->params['prefix'])) {
$this->output = mb_convert_kana($this->output, 'rak');
}
}
これで、カタカナを半角にできます。
また、ここで文字コードの変換(SJIS)も行うことが出来ます。

CakePHPに関する情報をまとめていきます。
開発スピードがアップできればうれしいです。
>>連絡はこちらへどうぞ
CakePHP関連のブックマーク
CakePHP最新版
CakePHP 1.2.3.8166
CakePHPの書籍
CakePHPによる実践Webアプリケーション開発
![]()
CakePHP1.2で作成する人にオススメ。
とても参考になります。
まるごとPHP!(vol.2)
![]()
安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。
CakePHPによるWebアプリケーション開発
![]()
まだ読んだことありません
CakePHPポケットリファレンス![]()
CakePHP1.2 でやるなら、これがあると何かと便利♪
CakePHP徹底入門![]()
CakePHP1.2 を今から始めるならここから
Fast CakePHP![]()
シンプルでわかりやすい CakePHP の入門書
CakePHPガイドブック![]()
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書