Использование сниппетов

Сниппеты являются одной из самых полезных функций системы 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 количество и разнообразие сниппетов будут расти и дальше.

Mem: 3.5 mb, MySQL: 0.0028 s, 2 req., PHP: 0.0437 s, all: 0.0465 s, cache.