CSSやJSはダイナミックに作成したい。
Simgではこれらをテンプレートで実現できる。
とは言え、いちいちEvent登録するのは面倒だ。
そこでscript宣言用のSimg組み込みプラグインを用意した。
以下のように使う。
<link rel="stylesheet"
href="<{ss_script directory="<{$smarty.const.APP_NAME}>"
path='styles.css'}>"
type="text/css" />
<script language="javascript"
src="<{ss_script directory="<{$smarty.const.APP_NAME}>"
path='vote.js'}>"></script>
テンプレートはapplication/view/templateに以下のファイル名で作成しておく。
styles.css.tpl vote.js.tpl
拡張子tplを除くファイル名の拡張子(上記ではcss及びjs)でcontent typeが決まる。
| 拡張子 | content type |
|---|---|
| txt | text/plain |
| html | text/html |
| xml | text/xml |
| json | application/json |
| css | text/css |
| js | text/javascript |
CSSやJS用のEventを作成せずにテンプレートを使えるのは便利だ。
ところでもうお気付きと思うが、Smartyのデリミタを変更した。
CSSは「{」や「}」を多用するので、テンプレートが作り辛い。
Simgでは以下に統一した。
| 位置 | 旧デリミタ | 新デリミタ |
|---|---|---|
| 左 | { | <{ |
| 右 | } | }> |