Comunitatea PHP Romania
 

 
Template Functions

Template Functions

void smarty_function_name (array $params, object &$smarty)

All attributes passed to template functions from the template are contained in the $params as an associative array.

The output (return value) of the function will be substituted in place of the function tag in the template, eg the {fetch} function. Alternatively, the function can simply perform some other task without any output, eg the {assign} function.

If the function needs to assign some variables to the template or use some other Smarty-provided functionality, it can use the supplied $smarty object to do so eg $smarty->foo().

Example 16-1. function plugin with output

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.eightball.php
 * Type:     function
 * Name:     eightball
 * Purpose:  outputs a random magic answer
 * -------------------------------------------------------------
 */
function smarty_function_eightball($params, &$smarty)
{
    
$answers = array('Yes',
                     
'No',
                     
'No way',
                     
'Outlook not so good',
                     
'Ask again soon',
                     
'Maybe in your reality');

    
$result array_rand($answers);
    return 
$answers[$result];
}
?>

which can be used in the template as:

Question: Will we ever have time travel?
Answer: {eightball}.

Example 16-2. function plugin without output

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.assign.php
 * Type:     function
 * Name:     assign
 * Purpose:  assign a value to a template variable
 * -------------------------------------------------------------
 */
function smarty_function_assign($params, &$smarty)
{
    if (empty(
$params['var'])) {
        
$smarty->trigger_error("assign: missing 'var' parameter");
        return;
    }

    if (!
in_array('value'array_keys($params))) {
        
$smarty->trigger_error("assign: missing 'value' parameter");
        return;
    }

    
$smarty->assign($params['var'], $params['value']);
}
?>

See also: register_function(), unregister_function().

Ultimele discutii in forum RSS Forum

Ultimele articole Ultimele articole

Top membri

Pirahna Pirahna
la birou
carco carco
Bucuresti
Birkoff Birkoff
Bucuresti
mihaitha mihaitha
Sibiu
Mascka Mascka
Braila
gabysolomon gabysolomon
Bacau
whooper whooper
Toronto ON
raul_ raul_
dechim dechim
Drobeta Turnu Severin
Amenthes Amenthes

Newsletter


Email:
 inscriere
 renuntare
 
 Arhiva newsletter

Parteneriat

Copyright © 2001-2008 PHP Romania Add PHPRomania to Google Add PHPRomania to Del.icio.us Add PHPRomania to Stumbleupon Add PHPRomania to Yahoo! Add PHPRomania to Digg Add PHPRomania to Blink Credit Cards | Verizon Ringtones | Loans | Freeware Download | Loans
Ads: Partener Way2Web Nework: gazduire web | inregistrare domenii | web design | imobiliare | web hosting
Powered by Simplis