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

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