ページ: << 1 ... 2 3 4 5 6 7 8 9 10 11 12 ... 19 >>
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)も行うことが出来ます。
CakePHP1.2 RC2
Webservice Behavior を利用して Socket 通信を行うことが出来ます。
まず、app/models/behaviors/ にこちらのファイルを設置します。
次に、Model で Webservice Behavior を呼び出すようにします。
var $actsAs = array('Webservice');
最後に Controller の Action 内に処理内容を書きます。
$options = array(); $options['port'] = '443'; $options['request']['uri']['scheme'] = 'https'; $result = $this->Test->request('post', array('data' => $data, 'url' => $url, 'options' => $options));
$url : 通信先のURL
$data : 通信先に渡したいデータの配列
これで SSL の Socket 通信を行うことができます。
CakePHP1.2 RC2
テーブルのカラム名を全て取得するには、Model 内で下記のように書くことで取得できます。
$columns = array_keys($this->getColumnTypes());
CakePHP1.2
HtmlHelper::link()を使えば、リンクタグを生成してくれます。
その時の表示文字に対して、htmlspecialchars をデフォルトでつけてくれます。
該当箇所
[cake/libs/view/helpers/html.php] if ($escapeTitle === true) { $title = htmlspecialchars($title, ENT_QUOTES); } elseif (is_string($escapeTitle)) { $title = htmlentities($title, ENT_QUOTES, $escapeTitle); }
$title以外にも、第3パラメータの$htmlAttributes内部の文字もエスケープしてくれます。
CakePHP1.2 RC2
可逆暗号を行うには、PEAR の Crypt_Blowfish を利用します。
app/vendors/ 配下に PEAR で取得した Crypt フォルダを設置。
Controller
App::import('Vendor', 'Crypt_Blowfish', array('file' => 'Crypt' . DS . 'Blowfish.php')); $key = 'secret keyword'; $blowfish =& new Crypt_Blowfish($key); $password = 'あかさたた'; // 暗号化 $encrypt= base64_encode($blowfish->encrypt($password)); // 復号化 $decrypt = $blowfish->decrypt(base64_decode($encrypt));