What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
時々、Smarty の構文解析の対象にしたくないと望む、 もしくはそうする必要がある部分があります。 典型的な例としては、 テンプレートに Javascript や CSS コードが含まれるときです。 それらの言語が Smarty のデフォルトの デリミタ である { と } を使用するときに問題が発生します。
もっとも単純な解決方法は、Javascript と CSS コードをそれぞれファイルに切り分け、 それらにアクセスするために標準的な HTML の機能を使用する事で状況を回避する事です。
リテラルコンテンツを含めるには
{literal}..{/literal}
ブロックを使用します。
HTML エンティティの使用法と同様に、 {ldelim}
、{rdelim}
あるいは
{$smarty.ldelim}
を使用して現在のデリミタを表示することができます。
単純に Smarty の
$left_delimiter
および
$right_delimiter
を変更するだけでも便利になることが多々あります。
Example 3.8. デリミタを変更する例
<?php $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl'); ?>
テンプレートはこのようになります。
Welcome <!--{$name}--> to Smarty <script language="javascript"> var foo = <!--{$foo}-->; function dosomething() { alert("foo is " + foo); } dosomething(); </script>