Переход с MODX на October CMS. Часть 3-я

Сегодня мы поговорим о том как сделать аналог дополнительных полей (TV-параметров) в October CMS. Это неотъемлемая часть любого проекта, начиная с лендинг-пейджей, заканчивая сложными проектами, которые будут наполняться контент-менеджерами.

Для этого устанавливаем плагин Static Pages:

Settings - Updates & Plugins - Install Plugins.

Также плагин можно установить прямо с его страницы на официальном сайте, перед этим прикрепив проект, либо через Artisan.

Добавляем вызов Static Pages на необходимом Layout’е (шаблон, находящийся в CMS - Layouts)

Components — PAGES — Static page

В этом же шаблоне добавляем в начало документа следующий код:

{variable name="field_name" label="Field Label" tab="Tab Name" type="text"}{/variable}

В нужном месте страницы выводим значение нашего поля:

{{ field_name }}

Разберём подробнее: name — это имя нашего поля, label — его подпись в админ панели, tab — название вкладки, с помощью которых удобно группировать схожие поля (как в MODX при указании категории доп. поля).

type — тип поля для отображения в админке («Тип ввода» в настройке доп. полей в MODX). Здесь также как и в MODX есть текст, текстовый редактор, изображение, чекбоксы, textarea. С полным списком типов вы можете ознакомиться здесь. Ниже мы разберём самые основные типы полей October CMS.

В админке в плагине Static Pages, в который мы попадаем через Pages - Pages, появятся наши поля для заданного шаблона:

Переменные October CMS Static Pages

Text

Самый базовый тип поля, который используется чаще всего. Пример разобран выше.

Textarea

Это поле также без форматирования, как и текст, для ввода более объемного текста.
{variable type="textarea" name="description" label="Description"}Content{/variable}

Rich editor

Выводит поле с визуальным редактором (WYSIWYG).
{variable type="richeditor" name="content" label="Description"}Content{/variable}

Чтобы при выводе html-теги не фильтровались, добавляем следующий фильтр:

{{ content|raw }}

Media finder

Выбор и загрузка изображений из папки storage/app/media/ . Аналогично TV с типом ввода image в MODX.

{variable name="main_image" label="Изображение" tab="Images" type="mediafinder" mode="image"}{/variable}

Checkbox

Самые обычные чекбоксы, которые зачастую очень удобны для использования в админке.

{variable name="comments" label="Включить комментарии" tab="Main" type="checkbox" options="1:Да|0:Нет"}{/variable}

Repeater

Repeater — это аналог MIGX в MODX. С помощью него можно сгруппировать повторяющиеся поля и сохранить их в формате JSON.

{repeater name="members" prompt="Add Team Member" tab="Team"}
{variable type="mediafinder" name="team_member_photo" label="Photo" type="mediafinder" mode="image"}{/variable}
{variable type="text" name="team_member_name" label="Name"}Name{/variable}
{variable type="text" name="team_member_job_title" label="Job Title"}Job Title{/variable}
{variable type="textarea" name="team_member_desc" label="Description"}Content{/variable}
{/repeater}

Выводим наш объект через цикл:

{% for member in members %}
{{ member.team_member_name }}
{% if member.team_member_photo %}
<img src="{{ member.team_member_photo|media }}" alt="{{ member.team_member_name }}">
{% endif %}
...
{% endfor %}

Итог

Сегодня мы научились создавать дополнительные поля в October CMS. Это покрывает львиную долю задач. Когда-то это было главной фишкой MODX, еще до появления Advanced Custom Fields (ACF) в WordPress. Однако в MODX и WordPress это приводит к значительному увеличению числа запросов к базе данных. Здесь же данная проблема отсутствует, т.к. файлы хранятся непосредственно на жестком диске. А при написании собственных плагинов вы вольны создавать собственную архитектуру базы даннных.

Комментарии читателей

  1. Евгений 19.02.2018
    • Евгений 19.02.2018
      • zooks 20.02.2018
    • Stan 26.03.2018
      • zooks 27.03.2018
      • Павел 28.03.2018
      • Евгений 30.03.2018
    • Павел 28.03.2018
  2. Artem 15.03.2018
  3. Artem 15.03.2018
    • zooks 16.03.2018
    • zooks 16.03.2018
  4. Дмитрий 09.04.2018

Добавить комментарий