Раздел управления виджетами

Раздел управления виджетами в MODX Revolution MODX Revo

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}

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru
Добавить комментарий