bet亚洲官方网站-bet3365娱乐场手机版

模板函数

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

模板传递到函数的参数变量, 都包含在$params数组内。

函数输出(返回值)的内容将替代函数标签调用的位置, 如{fetch}函数。 同时,函数也可以仅实行一些任务而没有输出,如 {assign}函数。

如果函数中对模板赋值,或使用其他Smarty提供的功能, 可以通过 $template对象来进行, 例如$template->foo()

Example 18.1. 带输出的函数插件


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.eightball.php
 * Type:     function
 * Name:     eightball
 * Purpose:  输出一个随机的答案
 * -------------------------------------------------------------
 */
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}.
    

Example 18.2. 不带输出的函数插件


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.assign.php
 * Type:     function
 * Name:     assign
 * Purpose:  赋值一个变量到模板
 * -------------------------------------------------------------
 */
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().

bet亚洲官方网站|bet3365娱乐场手机版

XML 地图 | Sitemap 地图