PEAR Manual
Prev |  | Next

# 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 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

## Note

This function can not be called statically.

Prev | Home | Next
setCacheRoot() | Up | setCurrentBlock()