Multiple flashes with different classes
http://www.secondbrain.co.jp/blog/?p=53
前の方でも「使ってる」とは書いたけれど、これがなかなか便利。
具体的にはコントローラで
<?php var $helpers = array("flash"); ... $this->flash("出力したいメッセージ", "success / error / status");
ビューの中で
<?php e($flash->show());
すると、
<div id="success">出力したいメッセージ</div>
という感じに出力してくれます。
まあこれだけだとぴんとこないけれど、cssで
.status, .success, .error { padding: 4px; color: #fff; } .status { background: #778899; } .success { background: green; } .error { background: red; }
なんて設定しておけば綺麗にメッセージを表示することができます。
応用だと、コントローラで
<?php var $helpers = array("flash","Pquery","Javascript");
としておいてから、ビューの中で
<script type="text/javascript"> $(window).load(function () { $(".success").fadeOut(5000); }); </script>
なんて書いておくと、id="success"のときだけメッセージがフェイドアウトしたりして見た目がいいかも。
私はAjax苦手(というか勉強始めたばかりなので応用が利かない)なのでこれ以上うまいこと考えられないけれど、できる人ならもっと拡張できるはず・・・!