setCallbackFunction()

setCallbackFunction()

setCallbackFunction() -- Sets a callback function.

Synopsis

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setCallbackFunction (string $tplFunction, mixed $callback [, bool $preserveArgs = FALSE])

Description

Sets a callback function. Sigma templates can contain simple function calls. This means that the author of the template can add a special placeholder to it: func_h1("embedded in h1") Sigma will parse the template for these placeholders and will allow you to define a callback function for them. Callback will be called automatically when the block containing such function call is parse()'d.

Please note that arguments to these template functions can contain variable placeholders: func_translate('Hello, {username}'), but not blocks or other function calls.

This should NOT be used to add logic (except some presentation one) to the template. If you use a lot of such callbacks and implement business logic through them, then you're reinventing the wheel. Consider using XML/XSLT, native PHP or some other template engine.

Script:
<?php
function h_one($arg)
{     
    return '<h1>' . $arg . '</h1>';
}  
// ...  
$tpl = new HTML_Template_Sigma(' ... ');
// ...  
$tpl->setCallbackFunction('h1', 'h_one');
// ...
$tpl->show()
?>
template:
...
func_h1('H1 Headline')
...

Parameter

string $tplFunction

Function name in the template

mixed $callback

A callback: anything that can be passed to call_user_func_array()

boolean $preserveArgs

If TRUE, then no variable substitution in arguments will take place before function call

Return value

return SIGMA_OK on success, error object on failure

Throws

Table 41-1. Possible PEAR_Error values

Error codeError messageReasonSolution
SIGMA_INVALID_CALLBACKCallback does not existThe $callback is not an existing function or methodCheck spelling, check whether the object was correctly instantiated if using the method callback

Note

This function can not be called statically.