Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Name

register_block() — dynamically register block functions plugins

Description

void register_block(string name,
                    mixed impl,
                    bool cacheable,
                    mixed cache_attrs);

Use this to dynamically register block function plugins. Pass in the block function name, followed by the PHP function's name that implements it.

The php-function callback function can be either:

  • A string containing the function name

  • An array of the form array(&$object, $method) with &$object being a reference to an object and $method being a string containing the method-name

  • An array of the form array($class, $method) with $class being the class name and $method being a method of the class.

cacheable and cache_attrs can be omitted in most cases. See controlling cacheability of plugins' output section on how to implement them properly.

Example 13.22. register_block()


<?php
// function declaration
function do_translation ($params, $content, &$smarty, &$repeat)
{
  if (isset($content)) {
    $lang = $params['lang'];
    // do some translation with $content
    return $translation;
  }
}

// register with smarty
$smarty->register_block('translate', 'do_translation');
?>

   

Where the template is:


{translate lang='br'}Hello, world!{/translate}

   

See also unregister_block() and the plugin block functions page.