register_block
void
register_block ( string name, mixed impl, bool cacheable, mixed cache_attrs)
ブロック関数プラグインを動的に登録します。パラメータには、ブロック関数名とそれを実装するphpのユーザー定義関数名を渡します。
php関数をコールバックするための impl は、次の3つのどれかでありえます。
(a) 関数名を含んだ文字列 (b) array(&$object, $method) という形式の配列
(&$object はオブジェクトの参照であり、$method はメソッド名を含む文字列
(c) array(&$class, $method) という形式の配列($class はクラス名であり、
$method はクラスのメソッド)
$cacheable と $cache_attrs はほとんどの場合は省略する事が出来ます。
これらの正しい使用法についての詳細は、キャッシュ可能なプラグインの出力の制御 を参照して下さい。
例 1. register_block
<?php $smarty->register_block("translate", "do_translation");
function do_translation ($params, $content, &$smarty, &$repeat) { if (isset($content)) { $lang = $params['lang']; // $contentにおいていくつかの翻訳を行う return $translation; } } ?>
|
テンプレート:
{* template *}
{translate lang="br"}
Hello, world!
{/translate} |
|