Страница с настройками для Modx
Раньше я активно использовал компонент ClientConfig. Он удобный, но есть недостаток, который сыграл решающую роль, чтобы от него отказаться — часто в настройках мне нужно использовать Migx. Например, это общий для всех страниц слайдер, или общие рекомендованные товары, или отзывы, под которые не нужно создавать отдельной страницы.
Сейчас я использую для настроек отдельную страницу с отдельным шаблоном. В меню добавляю ссылку на редактирование. Выглядит это так:

На самой странице остаются только TV-параметры, которые и заполняются. Все остальные поля отключаются.

и так

Далее нам нужно отключить все поля документа, а оставить только TV параметры. Для этого переходим в Настройки форм

Создаем новый профиль. Я называю «custom»

Далее КПК (Клик правой кнопкой) на нем. Редактировать.

Добавляем новый набор правил. Выбираем Создание и обновление документа и выбираем шаблон с Настройками.

КПК -> Редактировать. Переходим на вкладку Области и снимает галочки согласно изображению

И сохраняемся. Это мы настроили отображение шаблона.
3. Присваивает шаблон с настройками ресурсу
Выбираем ресурс, в котором будут хранится настройки и присваиваем ему шаблон Настройки.
В данном случае у меня это документ с id 12. После назначения ему данного шаблона, он примет такой вид:

Остается только присвоить ТВ параметры этому шаблону. Каждый TV — это отдельная настройка. Ниже расскажу как получить к ней доступ.

Добавить пункт

И заполняем следующим образом:

Родитель:
Пространство имён:
Сохраняем
4. Для получения данных из полей настроек.
Допустим мы завели TV параметр «phone», а ресурс с настроками имеет id 12, тогда чтобы вывести эти данные в шаблоне достаточно вызвать конструкцию:
Если у вас TV поле типа Migx и поле имеет имя «documents», то вывести можно следующим образом
Можно пойти дальше и написать свой модификатор, который позволит еще проще получать настройки, например, так
Добавляем сниппет с именем «settings» и содержимым
Сейчас я использую для настроек отдельную страницу с отдельным шаблоном. В меню добавляю ссылку на редактирование. Выглядит это так:

На самой странице остаются только TV-параметры, которые и заполняются. Все остальные поля отключаются.

и так

Как это сделать?
1. Создаем и настраиваем отдельный шаблон
Я обычно называю его «99. Настройки» в соответствии с моим наименованием шаблонов для modxДалее нам нужно отключить все поля документа, а оставить только TV параметры. Для этого переходим в Настройки форм

Создаем новый профиль. Я называю «custom»

Далее КПК (Клик правой кнопкой) на нем. Редактировать.

Добавляем новый набор правил. Выбираем Создание и обновление документа и выбираем шаблон с Настройками.

КПК -> Редактировать. Переходим на вкладку Области и снимает галочки согласно изображению

И сохраняемся. Это мы настроили отображение шаблона.
3. Присваивает шаблон с настройками ресурсу
Выбираем ресурс, в котором будут хранится настройки и присваиваем ему шаблон Настройки.
В данном случае у меня это документ с id 12. После назначения ему данного шаблона, он примет такой вид:

Остается только присвоить ТВ параметры этому шаблону. Каждый TV — это отдельная настройка. Ниже расскажу как получить к ней доступ.
2. Выводим в верхнем меню админки
Переходим в раздел Меню
Добавить пункт

И заполняем следующим образом:

Родитель:
Верхнее меню
Ключ словаря: mySett
Действие: resource/update
Параметры: &id=12
— здесь указываем id вашего ресурса с настройкамиПространство имён:
core
Значок: <i class="icon-cogs icon icon-large"></i> Настройки
Сохраняем
4. Для получения данных из полей настроек.
Допустим мы завели TV параметр «phone», а ресурс с настроками имеет id 12, тогда чтобы вывести эти данные в шаблоне достаточно вызвать конструкцию:
{12 | resource : 'phone'}
Если у вас TV поле типа Migx и поле имеет имя «documents», то вывести можно следующим образом
{set $documents = '12' | resource : 'documents'}
{foreach $documents | fromJSON as $item}
{$item.img} ...
{/foreach}
Можно пойти дальше и написать свой модификатор, который позволит еще проще получать настройки, например, так
{'phone' | settings}
{'documents' | settings}
Добавляем сниппет с именем «settings» и содержимым
<?php
$res = $modx->getObject('modResource', 12);
return $res->getTVValue($input);
Или я какой-то кнопки не вижу?