2011年2月2日水曜日

PHPでsmartyするとき。

PHPでsmartyするときなんですけどー、、
せっかく、テンプレート化するんだから、うまく分離してつくりたいものです。
ここでいううまく分離というのは、
テンプレートだけをブラウザで表示させても、それらしく見えるように作れれば、
それが一番いいのでは?
という考えです。
まぁちょっと考えればわかることなんですが、とりあえず、あんまり見たことはない。
たぶん、大方の人は、可変部分をテンプレートにいれないからです。
うぅーん、正確な言い方じゃなかった。
テンプレートをhtmlで表示させるときは有効だけど、smartyで使うときは無効になるような
デリミタ設定をしてやればいいのです。
それがこれ。
$sm = new Smarty;
$sm->left_delimiter = "<!--{";
$sm->right_delimiter = "}-->";
そうすると、
<!--{$maintable}-->
<!--{* -->
<table>
<tr><td>1</td><td>2</td></tr>
<tr><td>A</td><td>B</td></tr>
</table>
<!-- *}-->
みたいに書けば、html表示したときはtableが表示され、smarty経由だと、tableが表示されなくなる。
よって、$maintableをおきかえれば、それでOKってことになりますね。
まぁ逆に、htmlができあがった時点で、可変部分については、デリミタで囲んで、置き換える変数を加えてやれば、それでOK。
昔は、DreamWeaverが8の時代には、拡張子がtplなやつを使えるように、
いろいろ設定したりアイコン作ったりしたけど、、最近はテンプレートの拡張子をhtmlしちゃうとといういい加減さです。^^;^^;

0 件のコメント:

コメントを投稿