2009-05-16
■[symfony] include_partialで全てのアクション内変数を使いたい
include_partialなんかやめて単にincludeしてしまえ。
<? include(dirname(__FILE__). "_partial1.php") ?>
■[symfony] layoutでactionで設定した変数が使えない
slotを使ってしのぐくらししかないっぽい・・・
アクション内
$this->response->setSlot("var1", "value1");
layoutテンプレート
<?=getSlot("var1")?>
layoutでactionの変数が使えない理由をコード追って調べた
sfPHPViewの$this->attributeHolderに、
アクションで設定した変数が入ってテンプレート内で使える仕組みになっている。
sfPHPViewのdecolate()メソッドあたりを見ると、
レイアウトのテンプレートからHTMLを作るときに
$this->attributeHolderを初期化してます・・・
これは参照のしようがなさそうだ。
■[symfony] viewで使える変数あれこれ
$sf_request : sfWebRequest
$sf_response: sfWebResponse
$sf_params: $sf_params->get("hoge")は、$sf_request->getParameter("hoge")と同じ
■[symfony] link_to
リンク作成するヘルパ、link_toの覚え書き
基本
link_to("myaction", "mymodule/myaction")
link_to("yahoo", "http://yahoo.co.jp/")
クエリーパラメータ
restful
link_to("myaction", "mymodule/myaction?a=1&b=2") -> mymodule/myaction/a/1/b/2
GETパラメータ式
link_to("myaction", "mymodule/myaction", array("query_string"=>"a=1&b=2")) -> mymodule/myaction?a=1&b=2
HTML属性、スタイルシート
link_to("mylink", "http://example.jp/", array("target"=>"_blank", "css"=>"color:#00FF00;"))
■[jQuery] IEがajaxキャッシュするのを抑制
IEはXmlHttpRequestでキャッシュする問題がありますが、
jQueryのajaxメソッドも同じ問題が起きます。
でもさすがjQuery。対処法は用意されている。
JavaScriptの最初の方で以下のメソッドを1回呼ぶだけ。
$.ajaxSetup({ cache: false });