くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

CakePHP: エラー出力のカスタマイズ

2010-01-05 11:36:03 | SEまわり
2度同じ部分を探す羽目になったので、メモを残す。


CakePHP にて、警告メッセージを表示する際、

  Controller::Session::setFlash()

を使って、メッセージをセットしてからビューを呼び出すと期待通りの動きをしてくれる。

例えば、ac1 というアクションで、数値エラーを見つけたらその旨の警告を表示したければ、コントローラ中で、次のように書く。

  function ac1() {
   ......
   if ( $data > 100 ) {
    $this->Session->setFlash('数値が大きすぎます');
    $this->redirect(array('action'=>'err')); // エラー用のアクションへ
   }
  }

で、エラー用のアクションは次のような感じで。

  function err() {
  }

これに対応するテンプレート err.ctp を用意すれば、その表示の中にエラーメッセージが埋め込まれて表示される。


というのが普通の使い方。


 この時のビューの動作は、

  1. ビューがセッションヘルパーをインスタンス化
  2. セッションヘルパーの flash() メソッドをコール(レイアウトファイル中で呼ばれる)
  3. flash() メソッドは、メッセージ(HTML)を出力

となっている。

 だから、この警告メッセージを、alert ダイアログで表示したいと思った場合、セッションヘルパーの flash() メソッドをカスタマイズしなければいけない。

 だからと言って、CakePHP 本体ライブラリのセッションヘルパーを書き換えるのは良くないので、libs/views/helpers/session.php を、各アプリケーションのディレクトリの下にある views/helpers の下にコピーし、これをカスタマイズすればいい。

 フレームワークは、アプリケーションのディレクトリを先に探してくれるので、そちらが優先される。


Flash も時にうっとうしい

2010-01-04 15:03:27 | 雑記
 Wii のブラウザが無料だというので去年のうちにダウンロードしておいた。

 先日、夜中に Wii 本体のスロットの周りが光っているのに気づき、それが天気予報やニュースを引っ張りに行っている時に光るものだとわかり、設定を解除するなどした。

 ついでに、何とはなしにブラウザでニュースサイトなどを少しうろうろした。

 アバターという映画が目に入ったので、どんなのだろうと思ってアクセスしたところ、Flash のページだったようで、ブラウザの問題なのか、Wii に入っている Flash のプラグインの問題なのかわからないが、表示できなかった。

 それほど興味があった訳じゃないし、パソコンを立ち上げれば見られるのだからと思い、ブラウザは閉じたのだが、今思い出してみると、映画サイトのトップページはたいていのものが全面 Flash になってるんじゃないだろうか。

 眺めている分には悪くないが、ストーリーやキャストを見たい場合(これがほとんど)には、大変邪魔だと思う。
 良心的なページだと、最初のところに "Skip" リンクがあって、さっさとみたいコンテンツに進めるけど、そうでないところも半分くらいあると思う。


 なんか、登場初期の頃の JavaScript とか、特殊タグ乱用ページが思い起こされた。

トイカメラつきストラップ

2010-01-04 12:54:28 | モノ
 以前からトイカメラは欲しいと思っていたけど、トイというにはそれなりに高いものも多くて、結局買ってなかった。

 で、こんなのを見つけた。 1,380円。



 VGA で 25枚ということは、内蔵メモリは1MBですか。

 microSD を挿せるようにしてくれるといいのにな。




【紹介記事】
○PC用ソフトも同梱、トイカメラ付きストラップ - ケータイ Watch
http://k-tai.impress.co.jp/docs/news/20091225_339651.html