自分の過去のブログで実は実現していたことがすっかり忘れていたので、再投稿。
JQuert(Javascript)でのデータ形式であるJSON形式。これは、”{“や”}”が使われるため、SmartyのTemplateタグと同じです。これがあると、Smartyとして解釈されてしまうため、例外が発生してしまいます。これをパスするために、Smartyのデリミタである”{“を変更します。
あまりにも違うものだと他の人が見たときに分かりづらくなるので、”{!”こんな感じか、”<!{” “}>”こんな感じにすることで、回避させます。
http://gcblog.net/tips/archives/2008/1126_083630.html
Smartyクラスを継承しxxxSmaryという独自のクラスを定義。独自クラスを定義せずとも、
new Smarty();で作成したインスタンスで、直接->left_delimiter、right_delimiterを設定することで対応も可能だけど、多用する場合は、クラスで定義しておくと便利。
ついでに、template_dirとかも。
[php]
class xxxxSmarty extends Smarty{ // Smartyクラスを継承したxxxxSmaryクラスを定義します。
public function __construct(){ // __construct()はPH5以上です。
$this->Smarty();
$this->left_delimiter = "{!";
$this->right_delimiter = "}";
$this->template_dir = "xxxxxxxx/templates";
$this->compile_dir = "xxxxxxxx/templates_c";
}
}
[/php]