Kohana 3: Как предоставить функции API в шаблоне / представлении, как WordPress?

Я работаю над проектом, который позволяет продвинутым пользователям определять свой собственный способ отображения информации и доступа к некоторым базовым API. Например, я предоставляю функцию show_search_box (), чтобы пользователь мог вызвать эту функцию в файле представления, когда они хотят показать стандартное поле поиска, или они могут вызвать функцию с параметрами для настройки формы поиска.

например, этот код в шаблоне покажет форму поиска с текстом водяного знака «Введите ключевое слово здесь».

То, что я думаю, на самом деле в точности совпадает с тем, что WordPress делает в своих тегах шаблона. ( http: //codex.wordpress. org / Stepping_Into_Template_Tags )

Моя идея состоит в том, чтобы создать класс, который предоставляет все эти функции API и передает экземпляр объекта класса в файл представления, чтобы пользователи могли вызывать функции API в представлении, например:

show_search_box('Enter keyword here'); ?>

Я думаю, что это сработает (но еще не тестировал), но я предпочитаю предоставлять набор функций прямого вызова, как в WordPress. Как лучше всего сделать это с помощью kohana 3?

====== Обновление: я протестировал метод передачи объекта $ API для просмотра, и он работает должным образом.

class API {
     public function show_search_box($watermark){....}
}

В контроллере передайте $ API для представления / шаблона

public function action_index()
{
     $this->template->API = new API();
}

Затем вызовите функцию внутри представления / шаблона, как описано выше. (но еще не тестировал), но я предпочитаю предоставлять набор функций прямого вызова, как в WordPress. Как лучше всего сделать это с помощью kohana 3?

====== Обновление: я протестировал метод передачи объекта $ API для просмотра, и он работает должным образом.

class API {
     public function show_search_box($watermark){....}
}

В контроллере передайте $ API для представления / шаблона

public function action_index()
{
     $this->template->API = new API();
}

Затем вызовите функцию внутри представления / шаблона, как описано выше. (но еще не тестировал), но я предпочитаю предоставлять набор функций прямого вызова, как в WordPress. Как лучше всего сделать это с помощью kohana 3?

====== Обновление: я протестировал метод передачи объекта $ API для просмотра, и он работает должным образом.

class API {
     public function show_search_box($watermark){....}
}

В контроллере передайте $ API для представления / шаблона

public function action_index()
{
     $this->template->API = new API();
}

Затем вызовите функцию внутри представления / шаблона, как описано выше. В отличие от этих методов контроллера, $ API не может получить доступ к переменным контроллера, если они явно не назначены: например, $ API-> setVar ('VarName', $ a_controller_variable), что, на мой взгляд, довольно утомительно.

1
задан LazNiko 13 October 2010 в 07:53
поделиться