CakePHP 1.2でのモバイル(携帯)対応のためのヘルパー
「CakePHPによる実践Webアプリケーション開発」に少しだけ書かれています。書籍で気になったのは、「UTF-8を利用する」というところ。3G携帯だけ対応するのはいいとしても、UTF-8だけ、というのはなんだか気になるのです。Shift-jisじゃなくていいのかなあ?と疑問が残ります。そこで、ヘルパーを作ってみました
このヘルパーなんですが、viewの出力内容を書き換えるように動きます。
そのため、テンプレートファイルに全角カタカナでなんか書いていても、半角に変換されます。また、テンプレートファイルは、UTF-8じゃないとダメです。
「【Ktai】「Ktai Library」バージョンアップ少し延期のお知らせとviewの話 | ECWorks Blog」「CakePHP 携帯専用サイトを作成する | Sun Limited Mt.」が非常に参考になりました。
app/views/helplers/mobile.php
<?php class MobileHelper extends Helper { function afterLayout() { $view =& ClassRegistry::getObject('view'); mb_internal_encoding('UTF-8'); $view->output = mb_convert_kana($view->output, 'k'); $view->output = mb_convert_encoding($view->output, 'SJIS','UTF-8'); } } ?>
テスト用データ(SQL)
/* まず、postsテーブルを作成します。 */ CREATE TABLE posts ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, title VARCHAR(50), body TEXT, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL ); /* それから、テスト用に記事をいくつか入れておきます。 */ INSERT INTO posts (title,body,created) VALUES ('タイトル', 'これは、記事の本文です。', NOW()); INSERT INTO posts (title,body,created) VALUES ('またタイトル', 'そこに本文が続きます。', NOW()); INSERT INTO posts (title,body,created) VALUES ('タイトルの逆襲', 'こりゃ本当に面白そう!うそ。', NOW());
書籍
- 作者: 安藤祐介,岸田健一郎,新原雅司
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2009/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 125回
- この商品を含むブログ (20件) を見る