フナエさんから「最近更新してないねー。忙しい?」といわれたので更新します。
たぶん、国内でも2人くらいしか欲してなさそうなSmarty Tips。
フナエさんから「最近更新してないねー。忙しい?」といわれたので更新します。
たぶん、国内でも2人くらいしか欲してなさそうなSmarty Tips。
smartyカスタム関数のhtml_optionsを使うと、htmlのドロップダウンリスト(プルダウンメニュー)を作成することができる。じゃあこれを拡張して、リストボックス表示や複数選択を可能にするにはどうするか。
先週土曜日、PHPのテンプレートシステムSmartyの勉強会で講師をしてきました。どうもお疲れ様でした。
皆様、ピザ3枚とも美味しゅうございました。発泡酒、ビールもおいしゅうございました。
資料4枚目くらいで笑いがとれたのは美味しゅうございました。PCが遅くてキャッシュのベンチマーク結果がすごいことになったのも美味しゅうございました。
でも30分以上迷って遅れたのは美味しゅうございませんでした。ボウズが被りまくってたのも美味しゅうございませんでした。男性率100%だったのはとても美味しゅうございませんでした。長尾様、何度もナビ代わりになって戴き有難うございました。
ということで、当日の発表資料とかを放流します。家庭円満によく効きます。
(08/23 修正)
全部zipで固めないでpdfだけは別に分けました。単なる検索エンジン対策です。
SmartyテンプレートがDBに保存されてるとして、それをPHP変数に取り込んだ後、どうやって表示しようかと思ったんです。
例えば、
$tmpl =<<<EOF
<html>
<body>
ここはテンプレの中身です。渡されたテンプレート変数$dataの値は{$data}です。
</body>
</html>
EOF;
みたいな感じでSmartyのテンプレートデータが$tmplの中にあるとする。で、ロジックの中にはすでに$tmpl(テンプレート)も$data(テンプレート変数)も存在しているとする。
さて、ここからが問題。このテンプレートおよびテンプレート変数は、どうやったら表示できるんだ?display()やfetch()は、引数にテンプレートファイル名を指定できるけど変数名は指定できないし。
ひょっとしたらdisplay()やfetch()で読み込むためのテンプレートリソースプラグインを作る必要があるのかも?とマニュアルを読んでみたものの、なんだか意味がわからず。で、暫し考えた後に力技で解決できた。
最近、気になってること。
Smartyを使う一番大きな利点って「デザイン(HTML)とロジック(PHP)の分離」だと思う(キャッシュ機能もあるけどここでは割愛)。けれどもここでいう「デザイン」とは、おそらく<table>でゴリゴリ組まれたグリッドデザインの話。
一方で、最近流行の「適切にマークアップされたHTML+CSSでデザインされたサイト」を構築するとなると、ゆくゆくは「デザイン(CSS)とHTMLとロジック(PHP)の分離」になる。このとき、HTMLはプログラマとデザイナのどっちが書くことになるんだろう?
HTMLには意味情報を書くのだから、ひょっとしてプログラマ側のさらなる負担に?それともCSSとHTMLをデザイナ側に丸投げ?それとも「タグ打ち職人」とのトライアングル開発なのか?
「適切にマークアップしてくれ」っていう依頼は今後緩やかに増えていくとは思うんだけど、謎は深まるばかり。