register_block()
void register_block ( string name, mixed impl, bool cacheable, mixed cache_attrs)
ブロック関数プラグインを動的に登録します。
パラメータには、ブロック関数名とそれを実装するphpのユーザー定義関数名を渡します。
パラメータには、ブロック関数名とそれを実装するphpのユーザー定義関数名を渡します。
php関数をコールバックするための impl は、次の3つのどれかでありえます。
- (a) 関数名を含んだ文字列
- (b) array(&$object, $method) という形式の配列 (&$object はオブジェクトの参照であり、$method はメソッド名を含む文字列
- (c) array(&$class, $method) という形式の配列($class はクラス名であり、 $method はクラスのメソッド)
例 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}