Я создал функцию в классе контроллера, которая должна использоваться внутри шаблона (потому что шаблон, который он отображал много раз (каждый шаблон – это сообщение на веб-сайте, и все они будут отображаться с различными значениями в новостной ленте). способ называть его переменной smarty? Скажем, вы создали функцию в контроллере:
public function foo($bar){ $bar++; return $bar; }
А затем в шаблоне:
{$smarbar|foo}
или что-то похожее
Вы можете зарегистрировать модификатор, который будет вызывать данный метод класса:
class SomeClass { public function someMethod($value) { // return modified value } } $smarty = new Smarty(); $smarty->registerPlugin('modifier', 'myModifier', array('SomeClass', 'someMethod')); // or $instance = new SomeClass(); $smarty->registerPlugin('modifier', 'myModifier', array($instance, 'someMethod'));
и теперь вы можете использовать его внутри своего шаблона:
{$someVar|myModifier}
Вот документация registerPlugin .
Все зависит от ваших потребностей, но если вы просто хотите использовать такой код, вы можете назначить объект Smarty и использовать его методы.
Например, в PHP вы можете:
class Controller { public function foo($bar) { $bar++; return $bar; } } $smarty->assign('a', new Controller);
В Smarty вы можете делать:
{$a->foo(5)} {$a->foo(15)}
И вы получите:
6 16
как выход.
Да, просто подключите функцию к шаблону
{$ MyVar | my_function)