EasySettings - системные настройки здорового человека

EasySettings

Всем привет! В прошлой заметке я рассказывал, как переродился modSizeControl, а сейчас, как и обещал, покажу новый бесплатный компонент, который заменяет страницу «Системные настройки» удобной формой.

EasySettings в MODX 3

Лет семь назад я писал статью «Разработка компонента без злосчастного ExtJS», где посмеивался над нытьём в телеграм-чате по поводу ExtJS. Прошло время, нытьё никуда не делось, и чего уж там — я и сам к нему присоединился. Потому что каждый раз, когда нужно поменять пару настроек, происходит одно и то же: выбираем пространство имён в фильтре, выбираем раздел во втором фильтре, листаем постраничную навигацию, дважды кликаем по ячейке «Значение», промахиваемся, кликаем ещё раз, вводим значение, жмём Enter и ждём, пока строка сохранится. Потом следующая. А описание настройки прячется за плюсиком, который тоже нужно нажать.

Вот и решил, что хватит ныть, пора сделать.

Что изменилось


  • Никаких двойных кликов. Каждая настройка — строка: слева название, описание и ключ, справа поле. Поле сразу редактируемое и подходит типу: переключатель Да/Нет, число, пароль с кнопкой «Показать», JSON с проверкой, растущее текстовое поле, список вариантов у комбобоксов ядра.
  • Раздел целиком. Никакой пагинации: слева дерево пространств имён и разделов в стиле MODX, у каждого раздела свой адрес (&ns=core&area=site), работают «Назад» и «Вперёд» браузера.
  • Сохранение пачкой. Меняете сколько угодно значений, изменённые строки отмечаются, а внизу появляется панель «Отменить» / «Сохранить». Или Ctrl+S.
  • Нормальный поиск. По названию, ключу, описанию и значению во всех пространствах имён сразу, с подсветкой совпадений. И он находит переводы из файлов лексикона, которые поиск ядра не видит.
  • Сортировка по ключу, названию или дате изменения. Удобно, когда нужно вспомнить, что же вы там меняли на прошлой неделе.
Изменённые строки и панель сохранения

Текстовые настройки ядра, у которых на самом деле фиксированный набор значений — log_level, link_tag_scheme, friendly_alias_translit и другие, — показываются списком. Больше не нужно открывать документацию, чтобы вспомнить, что там было: abs или full.

Поиск по всем пространствам имён

Правый клик никуда не делся


Привычка к правому клику никуда не денется, поэтому он по строке открывает меню, как в гриде MODX: «Редактировать», «Скопировать ключ», «Вернуть сохранённое значение» и «Удалить». Правый клик по полю ввода оставляет меню браузера — вставлять из буфера ведь тоже как-то нужно.

Меню строки

В окне правки меняется всё: тип поля, пространство имён, раздел, название, описание и значение. Название и описание пишутся в лексикон на языке менеджера и только если их действительно поменяли. Кто правил настройку в русском менеджере штатным окном, тот знает, почему я это уточняю.

Окно правки настройки

События


Вкладка «Системные события» тоже на месте: события по группам, подписанные на них плагины, поиск и сортировка по числу плагинов. Пользовательские события можно создавать и удалять, события ядра — как и раньше, нельзя.

Вкладка «Системные события»

А как же ExtJS?


Этот вопрос в комментариях точно прозвучит, так что отвечу заранее. Интерфейс написан на Svelte, ExtJS в нём только там, где без него никак: поля сторонних дополнений со своим xtype рисуются их собственными компонентами, подтверждения и уведомления — штатными окнами MODX. При этом внешне страница от менеджера не отличается: вкладки, кнопки, окна и цвета те же, что в MODX 3 или MODX 2. Адрес страницы, пункт меню и права остаются прежними.

EasySettings в MODX 2

Каждая настройка сохраняется процессором ядра, так что вся логика MODX работает как раньше: перезагрузка конфигурации, пересчёт URI при смене friendly_urls, проверка прав. Если одна настройка не сохранилась, остальные всё равно сохранятся.

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

А если хочется по-старому?


Можно, а зачем?! Кнопка «Классический вид» открывает штатную таблицу, а на ней рядом с Help! появляется кнопка «Удобный вид», чтобы вернуться обратно. Выключить компонент совсем можно настройкой easysettings.enabled.

Штатная таблица с кнопкой «Удобный вид»

Требования


  • MODX Revolution 2.x или 3.x.
  • PHP 7.4+.
  • Право settings, как у штатной страницы, а для вкладки событий — events.
Если найдёте что-то странное — пишите в комментариях.

Пожалуй, на этом всё, остальное про интерфейс — в документации.

Бесплатные компоненты в серии на этом закончились. Следующий — размером 16×16 пикселей.

Спасибо за внимание!

Баха Волков
Баха Волков
2 часа назад
modx.pro
28

Комментарии: 1

Наумов Алексей
27 минут назад
Круто, вот прям клёво)
Что такое Svelte? Почему с ним? Вопрос мой только о том, что если каждое дополнение будет ставить свои либы и фреймворки — будет тот еще зоопарк :)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1