Чанки

    Чанк в Evolution - это небольшой кусок HTML-кода или другой информации, который можно многократно использовать в шаблоне, другом чанке или сниппете.

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

    Вариант 1

    Чанк создаётся для любого куска кода, который будет использоваться несколько раз. Например, можно вынести шапку, подвал, основное меню, крошки. Благодаря этому изменения можно вносить в одном чанке, а не нескольких шаблонах. Это проще и нет риска оставить какой-то шаблон без важного изменения.

    Вариант 2

    Второе наиболее частое использование чанка - шаблоны для сниппетов. Благодаря этому происходит разделение управляющего кода и оформления. В зависимости от сложности сниппета количество чанков-шаблонов может отличаться. Например для создания формы обратной связи может потребоваться 3 основных шаблона - форма, текст об успешном приеме формы, текст письма администратору с полученной информацией. Для того, чтобы чанк был не просто куском HTML-кода, а работал как шаблон, необходимо отметить в нем соответствующие места, куда сниппет запишет свою информацию. Роль таких мест выполняют плейсхолдеры.

    Пример содержимого чанка с плейсхолдерами:

    <li [+wf.classes+]>[+wf.linktext+]</li>

    Это шаблон, который используется для пунктов меню. Соответственно [+wf.classes+] и [+wf.linktext+] - плейсхолдеры, которые будут заменены сниппетом Wayfinder на используемый CSS-класс и название пункта меню.

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

    Создание и редактирование чанка

    Все чанки находятся в следующем месте:

    Элементы → Чанки

    Для создания необходимо нажать "Новый чанк", а для редактирования существующего чанка достаточно нажать на ссылку с его названием.

    Назначение полей:

    Название чанка - используется для вызова чанка. Можно использовать как английский и русский язык, а также дефис и знак подчеркивания. Пробел использовать нельзя!

    Описание - выводится рядом с названием чанка в общем списке. Используется только для описания назначения чанка и для заполнения не обязательно.

    Создать категорию - позволяет выбрать существующую категорию, в которую будет помещен чанк. Категория позволяет отделить чанк от остальных в общем списке. Если ни одна категория не выбрана, то чанк попадет в общую категория "Без категории".

    Новая категория - если в списке существующих категорий нет подходящей, то можно создать ее, просто написав название в этом поле.

    Ограничить доступ к редактированию чанка - если включить флажок, то никто, кроме администраторов, не сможет редактировать этот чанк.

    Код чанка (html) - сюда размещается само содержимое чанка.

    Редактор - позволяет выбрать визуальный редактор. По умолчанию он отключен, но при необходимости можно включить. Есть также редакторы, которые позволяют подсветить синтаксис.

    Сохранение

    С основными кнопками все понятно:

    Сохранить - создаст новый чанк

    Отмена - вернет нас в список чанков без сохранения результата.

    Сделать копию - появляется только в режиме редактирования.

    Удалить - появляется только в режиме редактирования.

    Evolution позволяет определить еще действия после сохранения чанка:

    Создать новый - сразу после сохранения чанка откроется форма для создания нового. Таким образом можно быстро создать серию чанков.

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

    Закрыть - после сохранения мы вернемся в общий список чанков.

    Создание копии чанка

    Иногда бывает необходимо создать копию существующего чанка. Сделать это очень просто. Для этого необходимо зайти в редактирование нужного чанка и нажать на кнопку "Сделать копию".

    После этого откроется для редактирования копия чанка. Копия отличается тем, что к ее названию добавляется строка "Duplicate of ...". Вам остается только исправить название на более подходящее и внести другие необходимые правки.

    Копия создается сразу после подтверждения, поэтому если вы нажмете отмену, то в списке чанков копия все равно останется.

    Удаление чанка

    Для удаления необходимо зайти в режим редактирования соответствующего чанка и нажать кнопку Удалить. Внимание! Чанки удаляются полностью и возможности их восстановить нет.

    Вызов чанка

    Существующий чанк в шаблоне (или другом чанке) вызывается очень просто. Для этого используется конструкция в виде названия чанка окруженного фигурными скобками:

    {{НазваниеЧанка}}

    Вызов чанка с параметрами

    Начиная с Evolution 1.4.0 в чанки можно передавать параметры.

    {{mychank? &firstparam=`value` &secondparam=`value2`}}

    Внутри чанка переданные параметры можно получить вызовом одноимённого плейсхолдера.

    [+firstparam+] и [+secondparam+]

    Стоит помнить, что название чувствительно к регистру (Mychank и myChank - разные чанки с точки зрения системы).

    Пример шаблона с вызовом чанка:

    <html>
        <head>
            {{Head}}
        </head>
        <body>
            {{menu}}
            <div class="outer">
                <div class="main">
                    {{content}}
                </div>
            </div>
        {{footer}}
        </body>
    </html>

    Этот пример шаблона содержит только чанки, но на практике в нем также встречаются TV-параметры и сниппеты. Поэтому не стоит предполагать, что чанки использовать необходимо обязательно и в большом количестве.

    API

    Для получения содержимого чанка через API используется метод getChunk.

    Пример вызова:

    $chunk = $modx->getChunk('НазваниеЧанка');

    FAQ

    Я сделал чанк, но он не работает. Из-за чего это может быть?

    Проверьте название чанка. Оно не должно содержать пробела, а регистр букв при вызове точности должен совпадать с названием чанка.

    Можно ли вызывать чанк в чанке?

    Да.