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