mixed HTML_Template_Sigma::setCallbackFunction (
string $tplFunction
, mixed $callback
, bool $preserveArgs
= false
)
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') ...
$tplFunction
Function name in the template
$callback
A callback: anything that can be passed to call_user_func_array()
$preserveArgs
If TRUE, then no variable substitution in arguments will take place before function call
return SIGMA_OK on success, error object on failure
Error code | Error message | Reason | Solution |
---|---|---|---|
SIGMA_INVALID_CALLBACK | Callback does not exist | The $callback is not an existing function or method |
Check spelling, check whether the object was correctly instantiated if using the method callback |
This function can not be called statically.