2011年2月2日水曜日

PHPでsmartyするとき。

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

0 件のコメント:

コメントを投稿