register_block

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}