Hatena::ブログ(Diary)

はらぐろブログラマン このページをアンテナに追加 RSSフィード

脱オタクファッションガイド

2009-05-16

[] include_partialで全てのアクション内変数を使いたい

include_partialなんかやめて単にincludeしてしまえ。

<? include(dirname(__FILE__). "_partial1.php") ?>

[] layoutでactionで設定した変数が使えない

slotを使ってしのぐくらししかないっぽい・・・

アクション内

$this->response->setSlot("var1", "value1");

layoutテンプレート

<?=getSlot("var1")?>

layoutでactionの変数が使えない理由をコード追って調べた

sfPHPViewの$this->attributeHolderに、

アクションで設定した変数が入ってテンプレート内で使える仕組みになっている。

sfPHPViewのdecolate()メソッドあたりを見ると、

レイアウトのテンプレートからHTMLを作るときに

$this->attributeHolderを初期化してます・・・

これは参照のしようがなさそうだ。

[] viewで使える変数あれこれ

$sf_request : sfWebRequest

$sf_response: sfWebResponse

$sf_params: $sf_params->get("hoge")は、$sf_request->getParameter("hoge")と同じ

[] 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;"))

[] IEがajaxキャッシュするのを抑制

IEはXmlHttpRequestでキャッシュする問題がありますが、

jQueryのajaxメソッドも同じ問題が起きます。

でもさすがjQuery。対処法は用意されている。

JavaScriptの最初の方で以下のメソッドを1回呼ぶだけ。

$.ajaxSetup({ cache: false });