Элементы

    Любой, кто начнет разбираться в Evolution, столкнется с новыми терминами.

    Здесь мы отметим небольшие моменты, которые периодически можно подсматривать.

    Терминология

    Шаблон - содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.

    Параметры (TV) - дополнительные параметры, которые подключаются к шаблону. Параметры могут быть разных типов (текст, ссылка, файл, дата, число и т.д.). Более подробно о типах ждите в следующих статьях.

    Чанк - маленький шаблон, который может использоваться как просто для вывода какого-то содержимого (телефона на всех страницах), так и для обработки (шаблон отправляемого письма eForm, шаблон каталога выводимого Ditto и т.д.). Таким образом, вид (представление) информации отделяется от места обработки и легко управляется.

    Сниппет - код для обработки информации. Анализируют полученную информацию (например, сообщение пользователя) и предоставляют результат (например, отправляют сообщение по почте, а пользователю показывают сообщение о результате). Сниппеты формируют меню (Wayfinder), выводят списки статей с разбиением на страницы (Ditto), строят формы (eForm). Для вывода используют Чанки.

    Плагин - код, который запускается при наступлении какого-то события. Например, подсвечивает искомые слова (Search Highlighting) при переходе со страницы поиска. Событий много и их рассмотрение стоит отдельной статьи.

    Специальные теги

    Для вывода динамических данных используются специальные теги.

    Системные

    • EvoDOC - название сайта
    • / или https://docs.evo.im/ - адрес сайта (https://www.evolutioncms.org)
    • UTF-8 - используемая кодировка
    • ru - код языка, используемого на сайте
    • [^m^] - количество использованной памяти
    • [^qt^] - время на запросы к базе данных
    • [^q^] - количество запросов к базе данных
    • [^p^] - время на работу PHP скриптов
    • [^t^] - общее время на генерацию страницы
    • [^s^] - источник содержимого (база или кэш)

    Стандартные

    • 02_Elements - заголовок документа
    • - расширенный заголовок документа
    • - описание документа
    • - аннотация документа
    • - содержимое документа
    • 02_elements - псевдоним документа
    • 2714 - идентификатор (номер) документа
    • 0 - дата публикации дкоумента
    • 0 - дата завершения публикации
    • 0 - Идентификатор пользователя создавшего документ
    • 1609898996 - Дата создания документа
    • 0 - Идентификатор пользователя редактировавшего документ
    • 1651968104 - Дата редактирования документа
    • [~идентификатор~] - URL указанного документа

    Дополнительные

    • document - вариант (документ, папка или ссылка)
    • text/html - тип содержимого (например, text/html)
    • 1 - опубликован ли документ (1|0)
    • 2712 - номер (ID) родительского документа
    • 1 - является ли документа папкой (1|0)
    • 1 - используется ли при редактировании документа визуальный редактор
    • 1 - номер (ID) используемого шаблона для документа
    • 5 - порядковый номер отображения в меню
    • 1 - доступен ли документ для поиска (1|0)
    • 0 - Кэшируется ли документ (1|0)
    • 0 - Документ удален (1|0)
    • 0 - Идентификатор пользователя удалившего документ
    • - Заголовок меню. Если не используется, то заголовок документа
    • - Слежение за количеством посещений отключено (1|0)
    • - Документ содержит ключевые слова (1|0)
    • - Документ имеет метатеги (1|0)
    • - Документ входит в частную группу пользовательских документов (1|0)
    • - Документ входит в частную группу менеджерских документов (1|0)
    • - Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
    • - Документ не отображается в меню (1|0)

    Параметры TV, сниппеты и чанки

    [\*НазваниеПараметраTV\*] - выводит значение параметра в документе.
     - возвращает содержимое чанка.
     - возвращает результат работы сниппета. 

    Можно передавать сниппету дополнительные параметры, перечисляя их при вызове. Допустим, если мы хотим получить id текущего документа и обработать его в сниппете, то вызов может быть похож на этот:

    - плейсхолдер - встречается в чанках, которые используются для обработки результатов работы сниппетов. После обработки вместо них вставляются значения. В примере выше вы видите, как в параметр docId для сниппета мы подставили системный плейсхолдер , в котором будет id текущего документа. Плейсхолдеры можно создавать самому.

    Нюансы

    На самом деле есть два варианта вызова сниппета:

    1. - кэшируемый вызов сниппета
    2. [!НазваниеСниппета!] - некэшируемый вызов сниппета

    Где использовать

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

    Пример шаблона

    <!DOCTYPE html>
    <html lang="ru">
    
    <body>
        
    </body>
    </html>

    где head_tags это чанк со следующим содержимым:

    <head>  
        <base href="https://docs.evo.im/" />
        <meta charset="UTF-8" />
        <title>02_Elements / EvoDOC</title>
    </head>

    А в поле будет выведено содержимое страницы, заданное из админки.