Как включить помощников в смарты? - PullRequest
0 голосов
/ 01 декабря 2010

Я бы хотел использовать статические функции от помощников в шаблоне smarty. Я использую ko3 и kohana-module-smarty - https://github.com/MrAnchovy/kohana-module-smarty/, поэтому мой вопрос заключается в том, как автоматически загрузить помощник и использовать его в шаблоне, например:

Приложение / класс / url.php


URL класса {
функция test () {
вернуть 'тест';
}
}


вид / index.tpl


{$ url.test}

1 Ответ

0 голосов
/ 02 декабря 2010

Вы должны быть в состоянии передать Url в качестве переменной $url и получить к ней доступ в своем представлении с помощью {$url->test()}.Я не уверен, что вы сможете получить доступ к статическим функциям, таким как Url::test().

Если вы используете помощника в тех же представлениях, вы можете создать новый контроллер, который связывает переменную вview:

<?php
// application/classes/controller/site.php
class Controller_Site extends Controller_Template
{
    public $template = 'smarty:my_template';

    public function before()
    {
        $this->template->set_global('url_helper', new Url);
    }
}
?>

Затем добавьте его в другие контроллеры:

<?php
// application/classes/controller/welcome.php
class Controller_Welcome extends Controller_Site
{
    public function action_index()
    {
        $this->template->content = 'Yada, yada, yada...';
    }
}

и получите к нему доступ в виде:

{* application/views/my_template.tpl *}
<p>This is a {$url_helper->test()}.</p>
<p>{$content}</p>
...