Skip to content
butschster edited this page Jan 16, 2015 · 2 revisions

Сниппет - это часть шаблона. Они используются для организации блоков кода на сайте. Например, для вставки во все шаблоны шапки сайта и футера, ну или часто повторяющихся кусков кода, например меню.

Раньше в шаблоне или части страницы сниппеты вставлялись конструкцией $page->includeSnippet('name'), где name - это имя файла в папке snippets, сейчас же сниппеты мигрировали в отдельный модуль, что внесло некоторые коррективы в их работу. Например, в них не будет доступна переменная $page, относящаяся к текущей странице, на которой расположен сниппет и ее придется передавать в качестве параметров.

Редактирование сниппетов доступно как в разделе Snippets административного интерфейса, там и напрямую файлы в папке snippets.

Snippet::render

Для вывода сниппета в шаблон или в часть страницы используется конструкция <?php Snippet::render() ?>, которая производит вывод данных из шаблона сниппета. Для кеширования используется входящий в стандартный состав Kohana - хелпер Fragments, немного переделанный для использования модуля кеширования Cache.

Параметры

   Snippet::render($name, array $vars, $cache_lifetime, $cache_by_uri, array $cache_tags, $i18n);

   $name - имя файла в папке snippets
   $vars -  переменные, которые необходимо передать в шаблон
   $cache_lifetime - время кеширования сниппета
   $cache_by_uri - включить в название кеша текущий URL страницы + $_GET параметры, т.е. по сути для каждой страницы будет уникальный кеш сниппета, может пригодиться, если через сниппет выводится список новостей с постраничной навигацией.
   $cache_tags - привязать к сниппету теги, по которым будет сбрасываться кеш сниппета (Например, при обновлении страниц сайта или создании срабатывает тригер на удаление кеша с тегом pages, и если этот тег добавить к сниппету, то его кеш будет сбрасываться каждый раз при обновлении данных страниц).
   $i18n - включить в название кеша текущую локаль

Snippet::get

Получения объекта View с файлом сниппета для дальнейшего использования.

Параметры

   Snippet::get($name, array $vars);

   $name - имя файла в папке snippets
   $vars -  переменные, которые необходимо передать в шаблон
Clone this wiki locally