- 2006-04-14 (金)
PHP で .php ファイルと Smarty のファイルを1つにまとめる方法の紹介です。
PHP でテンプレートとして Smarty を使用すると、PHPファイルの他にSmartyのテンプレートファイルが必要となる。通常はそれでかまわないのであるが、何らかの事情により、「Smarty は使いたい、でもファイルは1つにまとめたい」というような場合に、1つにする方法があります。
function var_template($name, &$source, &$smarty)注意点としては、上記のソースコードの $tpl をシングルクォートでくくることです。でないと、{$title} がPHPのレベルで変換されることになり、Smarty上の変数とみなされないからです。ただし、$tpl の中身でシングルクォートを使用することができなくなります。$tpl の中で例えば、onclick ハンドラ内で文字列を扱うようなJavaScriptを記述したい場合、不便となります。onclick="alert('OK')" とかかが記述できなくなります。
{$source = $name; return TRUE;}function var_timestamp($name, &$timestamp, &$smarty)
{return filemtime(__FILE__);}function var_secure($name, &$smarty)
{return TRUE;}function var_trusted($name, &$smarty)
{}$t = new Smarty;
$t->register_resource('var', array('var_template', 'var_timestamp', 'var_secure', 'var_trusted'));$tpl = '<html><head><title>Title</title></head><body>
<h1>{$title|escape}</h1>
</body></html>';$t->assign('title', 'hoge');
$t->display('tpl:'.$tpl);
- Newer: 図書管理システム
- Older: CBL ActiveRecord (20060323) リリース