register_block() (Smarty クラスメソッド) - PHPプロ!マニュアル

Smartyマニュアル

Smarty クラスメソッド - register_block()

register_block()

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 はクラスのメソッド)

cacheablecache_attrs はほとんどの場合に省略可能です。これらの正しい使用法についての詳細は、 キャッシュ可能なプラグインの出力の制御 を参照して下さい。

例 13-1. 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() および ブロック関数プラグイン のページも参照してください。



Pick Up Q&A

Q
マジッククォートとmysql_real_escape_string
 このエントリーをはてなブックマークに追加 
A
magic_quotes_gpcでは、SQLインジェクション対処は十分できません。主な理由として、以下が上げられます。 ・magic_quotes_gpcは文字コードを考慮しないで処理するので、Shift_JISを使っている場合、SQLインジェ...

>>続きを読む

SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)