Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Функции шаблона

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

Все атрибуты, передаваемые в функции шаблона из самого шаблона, хранятся в $params в виде ассоциативного массива. Получить доступ к его значениям можно напрямую: $params['start'] или используя extract($params) для импорта в таблицу.

Вывод (возвращаемое значение) функции будет подставлен в место расположения тэга функции в шаблоне (функция fetch например). В качестве альтернативы, функция может выполнять какие либо действия без какого-либо вывода (assign функция).

Если функция должна присвоить(assign) значения некоторым переменным в шаблоне или использовать иные возможности Smarty, то можно работать с объектом $smarty как обычно.

См. также: register_function(), unregister_function().

Example 16.1. Функция-плагин с выводом


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.eightball.php
 * Type:     function
 * Name:     eightball
 * Purpose:  outputs a random magic answer
 * -------------------------------------------------------------
 */
function smarty_function_eightball($params, &amp;$smarty)
{
    $answers = array('Да',
                     'Нет',
                     'Никоим образом',
                     'Перспектива так себе...',
                     'Спросите позже',
                     'Все может быть');

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

   


которая может быть использована в шаблоне следующим образом:


Вопрос: Мы когда-нибудь найдем время для отпуска?
Ответ: {eightball}.

  

Example 16.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, &amp;$smarty)
{
    extract($params);

    if (empty($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($var, $value);
}
?>

   


Comments
by Konstantin on Apr 5, 2012 at 11:16
In examples in param's section are string: "&amp;$smarty" change on "&$smarty".

Advertisement

Sponsors [info]

Sponsors