Единственное решение, которое я нашел, - написать пользовательскую функцию.Сохраните следующий код в файле function.url.php в каталоге плагинов Smarty:
function smarty_function_url($params, &$smarty)
{
$type = '';
if(isset($params['type'])) $type = $params['type'];
$protocol = 'http';
if(isset($params['protocol'])) $protocol = $params['protocol'];
$url = '';
if(isset($params['url'])) $url = $params['url'];
$text = '';
if(isset($params['text'])) $text = $params['text'];
switch($params['type'])
{
case 'url':
return Kohana_URL::site($url, $protocol);
case 'anchor':
$url = Kohana_URL::site($url, $protocol);
return "<a href='{$url}'>{$text}</a>";
default:
return Kohana_URL::base('http');
}
}
Примеры использования в шаблоне Smarty:
{url}
{url type='url' url='admin/categories' protocol='https'}
{url type='anchor' url='admin/articles' text='List of articles'}
Первый блок, в котором установлены переменные, у меня былчтобы написать иначе, Smarty генерировал уведомление "Неопределенная переменная ...".Я только учусь на PHP, предложения по улучшению кода приветствуются.
Надеюсь, это поможет другим.