Сниппеты являются одной из самых полезных функций системы Evolution.
Сниппеты используются для вывода динамически меняющегося содержимого - меню, комментариев, новостных лент, блогов или любого другого функционала, который возможен на языке php в связке с API системы Evolution.
В этом документе обсуждается использование сниппетов. Чтобы узнать больше о том, как создавать сниппеты и как они работают, см. раздел для разработчиков.
Код сниппета, как правило, хранится в базе данных. Иногда у сниппета есть вспомогательные файлы. В таком случае, сниппет действует как интерфейс между Evo и вспомогательными файлами.
Сниппет, у которого таких файлов нет, вообще не загружается в файловую систему сайта.
Во время установки Evolution вы можете увидеть список часто используемых сниппетов, которые будут установлены на сайт. Советуем изучить их внимательнее - это базовые сниппеты, которые покрывают массу возможностей вашего сайта.
Вы можете назвать сниппет так, как вам нравится, просто помните, что имя, которое вы ему даете, - это то, как вам нужно будет называть его позже в вашем шаблоне.
При загрузке любых вспомогательных файлов, которые могут иметь сниппеты, их обычно помещают в папку с исходным именем сниппета в нижнем регистре, например /assets/snippets/DocLister.
Допустим, мы хотим в шаблоне вывести динамически создаваемое меню. Используем для этого сниппет под названием DLMenu.
[!DLMenu?
&parents=`3`
&sortBy=`id`
&outerTpl=`@CODE: <ul class="menu">[+wrap+]</ul>`
&rowTpl=`@CODE: <li [+classes+]><a href="[+url+]" title="[+pagetitle+]">[+title+]</a></li>`
!]
Как вы можете заметить, в сниппет передаются параметры. Как правило, описание этих параметров доступно в документации того сниппета, который вы используете. В данном случае мы указываем DLMenu откуда брать документы для меню (&parents=3
), как их сортировать (&sortBy=id
) и каким образом выводить результат работы - outerTpl и rowTpl.
Вызов сниппета может быть двух видов: [[SnippetName]] или [!SnippetName!].
Первая форма - кэшируемый вызов сниппета. Обычно это не проблема. Иногда важно, чтобы вывод сниппета не был кэширован. Например, сниппет Login должен определить, вошел ли пользователь в систему, а если нет, отобразить форму входа. Если страница кэширована, сниппет не запускается, и внешний вид не будет меняться.
Вторая форма, использующая восклицательные знаки, вызывает запуск сниппета, даже если страница была кеширована.
Есть сотни сниппетов, которые уже созданы и готовы для вас. По мере роста сообщества Evo количество и разнообразие сниппетов будут расти и дальше.