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_function() — dynamically register template function plugins

Description

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

Pass in the template function name, followed by the PHP function 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 on how to use them properly.

Example 13.23. register_function()


<?php
$smarty->register_function('date_now', 'print_current_date');

function print_current_date($params, &$smarty)
{
  if(empty($params['format'])) {
    $format = "%b %e, %Y";
  } else {
    $format = $params['format'];
  }
  return strftime($format,time());
}
?>

   

And in the template


{date_now}

{* or to format differently *}
{date_now format="%Y/%m/%d"}


See also unregister_function() and the plugin functions section.