-
Notifications
You must be signed in to change notification settings - Fork 35
Snippets
Сниппет - это часть шаблона. Они используются для организации блоков кода на сайте. Например, для вставки во все шаблоны шапки сайта и футера, ну или часто повторяющихся кусков кода, например меню.
Раньше в шаблоне или части страницы сниппеты вставлялись конструкцией $page->includeSnippet('name')
, где name
- это имя файла в папке snippets
, сейчас же сниппеты мигрировали в отдельный модуль, что внесло некоторые коррективы в их работу. Например, в них не будет доступна переменная $page, относящаяся к текущей странице, на которой расположен сниппет и ее придется передавать в качестве параметров.
Редактирование сниппетов доступно как в разделе Snippets
административного интерфейса, там и напрямую файлы в папке snippets
.
Для вывода сниппета в шаблон или в часть страницы используется конструкция <?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 - включить в название кеша текущую локаль
Получения объекта View
с файлом сниппета для дальнейшего использования.
Параметры
Snippet::get($name, array $vars); $name - имя файла в папке snippets $vars - переменные, которые необходимо передать в шаблон