2010年11月16日

cakephp1.3 flash のレイアウト

お願いします♪いいねとかつぶやいたりして下さい
 
例えばauthコンポーネントで flash のレイアウトを変更したい。
で、その方法。

まずは、注意点。
cakephp1.2 との違い
・ctpファイルを layout フォルダに用意するのではなく、 elements フォルダに用意
・ビューの $this->Session->flash('auth'); ではエレメントを変更できないので、setFlashしたときにレイアウトを用意しておく
・エラー用 ctp ファイルのメッセージ表示場所には $message と書く

○app_controller.php の beforeFilter
$this->Auth->userModel = 'User';//使うモデル
$this->Auth->allow('*');//ログインしなくても良いアクション
//$this->Auth->deny('index');//ログインしないと見れないアクション
$this->Auth->flashElement = 'flash/error';//エラー時のエレメント
$this->Auth->loginError = 'ログインできません';//ログインできない時のメッセージ
$this->Auth->authError = 'ログインしてからご利用頂けます';//ログインしないといけないアクションへ飛んだときのメッセージ
$this->Auth->fields = array('username' => 'email','password' => 'pass');//フィールド


で、 flashElement を指定する。
この場合は、 /views/elements/flash/error.ctp となる。

で、次に error用のレイアウトを用意。

○/views/elements/flash/error.ctp
<? if(!isset($this->params['prefix']))://PC用 PC版は success.ctp を使う ?>
<div class="formError">
        <?php echo nl2br($message); ?>
</div>
<? endif;?>

<? if(isset($this->params['prefix']))://携帯用 ?>
<div style="color:#0099FF;text-align:left;font-size:small;">
        <?php echo nl2br($message); ?>
</div>
<? endif;?>


でもって エラーを表示させたいviewで
<?php echo $this->Session->flash('auth'); ?>


こんな感じ。
これで携帯用のエラーは携帯用のエラーが表示されるので便利。
関連するタグ: PHP cakephp
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ