Smarty 图标

你可以根据 商标声明 使用 Smarty 徽标。

Smarty Template Engine Smarty Template Engine

如需赞助、广告、新闻或其他咨询,请联系我们的电子邮件:

使用 Smarty 的网站

广告

模板函数

void smarty_function_name( $params,  
  $template);  
array $params;
object $template;
 

从模板传给模板函数的所有 属性$params 中作为关联数组中。

函数的输出(返回值)将在模板中替换函数标记的位置,例如,{fetch} 函数。或者,函数也可以简单地执行其他任务而没有任何输出,例如 {assign} 函数。

如果函数需要给模板分配一些变量或使用其他 Smarty 提供的功能,它可以使用提供的 $template 对象来这样做,例如 $template->foo()

示例 18.1. 带输出的函数插件

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

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


可以在模板中用作

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

示例 18.2. 没有输出的函数插件

<?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_Internal_Template $template)
{
    if (empty($params['var'])) {
        trigger_error("assign: missing 'var' parameter");
        return;
    }

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

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

      


另请参阅: registerPlugin()unregisterPlugin()