読者です 読者をやめる 読者になる 読者になる
一人もくもく会 α verでサービス開始しました。

携帯サイトその2

CakePHP

以前、CakePHPでrender関数をオーバーライドして
自動的に携帯テンプレートを振り分ける方法を紹介した。
それにも関連するが、追加のプログラムを紹介。

	function _mb_render() {
		$this->layout = 'mobile';
		$output = $this->render();

		$contents = mb_convert_encoding($this->output, 'SJIS', 'UTF-8');
		echo $contents;
		exit;
	}

例えば上記は明示的に携帯サイトの出力を行ないたい場合などに便利。
最近のrender関数は返り値で出力内容を返してくれるようなので、
上記だけで全部済んでしまう。
mobileのlayoutのメタタグにはshift_jisと書いておく必要はあるが、
基本的に全部プログラムはテンプレートはutf-8で作ることが出来る。
(ただし、別途GETやPOSTの取得は手動でshift_jisからutf-8に変更したりは必要)

他にも、上記の方法を使ったりrender関数をオーバーライドしたりすることで、
携帯サイトだけでなくPC側のopensocial用のプログラムなどにも利用出来る。

{
    'html' : $output,
    'parameters' : $parameters,
}

みたいな感じのjsonを出力すれば
アプリケーション側では受け取ったhtmlをそのままinnerHTMLにいれるだけで
楽にアプリが作成可能。