Документация Smarty


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

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

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

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

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

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

Пример 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}.

Пример 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);
}
?>

SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…