MODX очень гибка система с одной стороны, а с другой стороны все многое нужно делать самому. В wordpresse к примеру есть такой раздел как Виджеты (которые предназначены для вывода различных элементов в боковые колонки, подвал и т.д.). Сегодня мы сделаем подобное на модексе.
Итак сейчас я занимаюсь натяжкой шаблона на сайт, и там практически на каждой странице выводиться вот такое содержимое. Вы можете использовать виджеты к примеру для вывода рекламы в сайтбарах или каких то сквозных блоков.
Сделаем ее виджетами, чтобы можно было без проблем менять ее содержимое, для этого воспользуемся пакетом MIGX, если он у вас не установлен, то сделайте это.
Следующим шагом идем в MIGX и создаем конфигурацию: Migx — Добавить элемент — Name: vidzhety — Замена «Добавить элемент»: Добавить виджеты и затем переходим на вкладку Formtabs.
Нажимаем на Добавить элемент, в поле Caption пишем Добавить виджеты и нажимаем на Добавить элемент и добавляем следующие поля
- Fieldname — title; Caption — Заголовок
- Fieldname — soderzhimoe; Caption — Cодержимое; Input TV type — textarea
В моем случае этого достаточно. вы же можете добавить больше полей, далее переходим на вкладку Columns и создаем разметку колонок (которая будет отображаться при редактировании, после добавления данных), по сути просто переносим созданные выше поля:
- Header — Заголовок; Field — title; Column width — 100
- Header — Cодержимое; Field — soderzhimoe; Column width — 200
Теперь создаем пустой шаблон — Виджеты
Далее создаем новое TV — Имя: vidzhety; Подпись: Виджеты. В параметрах ввода выбираем — Migx и в поле конфигурации пишем: vidzhety. На вкладке доступно для шаблонов, выбираем Шаблон Виджеты.
Выводим ссылку на ресурс в верхнем меню
Открываем →Действия, раскрываем пункт Меню и нажимаем на кнопку «Добавить пункт» и заполняем следующим образом
- Родитель — Приложения
- Ключ словаря — Виджеты
- Действие — resource/update
- Параметры — &id={id вашего ресурса}
Кастомизируем шаблон виджеты
Теперь уберем для этого ресурса все вкладки кроме «Дополнительных полей», для этого идем в системные настройки
Дальше заходим в раздел «Безопасность» -> «Настройка форм» и создаем новый профиль, например, «Контент-менеджер».
Потом нажимаем на нем правой кнопкой мыши и выбираем «Редактировать», переходим на вкладку «Группы пользователей» и добавляем группу, к которой будут применены новые правила (в моем случае стандартная группа администратор. т.к. не будут создаваться новые пользователи).
Далее мы создаем новый набор правил. Их два вида — один для формы создания ресурса, второй — для формы его редактирования (create и update, соответственно). Этих правил может быть несколько — хоть по правилу для каждого ресурса.
После того, как правило будет создано, вы увидите страницу настройки — там три вкладки: Информация о наборе правил, Регионы, Дополнительные поля.
Идем во вкладку Регионы — это вкладки у ресурса и убераем галки со всего кроме modx-panel-resource-tv и сохраняем.
Теперь переходим в Приложения — Виджеты и видим следующее.
В принципе все (если создать нового пользователя с правами менеджера к примеру, то вкладки права доступа не будет.
Да так же можно зайти в phpmyadmin и в таблице modx_site_content поставить нолик в поле show_in_tree на против ресурса
, чтобы его вообще не было в меню (в дереве слева)
Далее наполняем виджеты и выводим их в шаблоне при помощи сниппета getImageList (идет в комплекте с MIGX), следующей конструкцией:
[[getImageList? &docid=`9` &tvname=`vidzhety` &tpl=`tpl.vidzhety` ]]
где docid — id ресурса;
&tvname — это созданное нами TV (MIGX)
&tpl — чанк с оформлением виджетов
Для тех кто пользуется шаблонизатором fenom, вызов будет выглядеть так.
{set $rows = 9 | resource : 'vidzhety' | fromJSON}
{foreach $rows as $row}
<p>{$row.title}"></p><p>{$row.soderzhimoe}</p>
{/foreach}