Плагин «Администрирование конфигов (Admin config)»

Пролог


Однажды этим летом я думал какой должна быть админка сайта, что в ней нужного? Ведь ещё есть плагины и у них тоже конфиги и каждый разработчик норовит создать свой уникальный интерфейс настроек. Куча лишнего кода…

Админка должна быть универсальной. Сколько я об этом думал — я понимал что нельзя просто взять и приварить переменные в код и их редактирование в интерфейсе. Нужен механизм, такой простой, но просто колоссально мощный.

Представляю вашему вниманию продукт, над которым я работал последнее время — абсолютная админка для LiveStreet CMS.

Описание


Плагин Adminconfig предназначен для редактирования системного конфига LiveStreet CMS, а также всех плагинов, установленных на сайте. Плагин предоставляет для этого удобный веб интерфейс с множеством дополнительных опций и вспомогательных функций. Плагин находит и парсит конфиги (как главный конфиг движка так и конфиги плагинов) и дает все возможности по их редактированию: для каждого плагина доступна страница на которой находится полный список параметров редактируемого плагина вместе с описанием каждого параметра, который был задан в конфигах как комментарий.

Интерфейс


При активировании плагина справа на тулбаре появляется новая кнопка для быстрого доступа к админке. В меню админки доступны следующие пункты:

  • Настройки плагинов
  • Кеш и БД
  • Справка

Первый открывает страницу настроек конфигов, второй — страницу на которой можно очистить разные типы кешей в ЛС, а также произвести оптимизацию таблиц движка, третий пункт показывает данную справку.

Ко всем элементам интерфейса есть всплывающие подсказки, которые можно легко получить наведением курсора мыши на интересующий элемент.

Настройки плагинов: общая информация


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

В списке каждый плагин обозначен цветом: зеленый — означает активный, серый — неактивный. При наведении курсора мыши на имя плагина, появляются дополнительные опции: иконка активации/деактивации плагина (цвет которой символизирует текущий статус плагина), иконка собственных настроек плагина (если страница настроек есть у плагина), а также иконка раскрытия краткой информации о плагине.

Для того чтобы открыть список параметров плагина достаточно кликнуть на имя плагина.

Замечание: редактировать настройки можно лишь активированного плагина. Это системное ограничение.

Настройки плагинов: конфигурация плагина


При выборе плагина в правой части появляется несколько логичных блоков информации: первый блок «Информация о плагине» содержит полную информацию о плагине, которую указал его разработчик; второй блок «Показать параметры по фильтру» содержит 6 переключателей, которые осуществляют быстрый отбор нужного типа параметров (более подробно об этом будет написано ниже). После этого следует список всех доступных параметров, которые были найдены в конфиге выбранного плагина и доступны для редактирования.

Замечание: не все параметры могут быть показаны. Часть параметров может быть пропущена в зависимости от настроек плагина Adminconfig, либо если этого пожелал автор редактируемого плагина.

Каждый параметр визуально выделен в небольшой логичный блок, который, в свою очередь, имеют следующую структуру:

  • порядковый номер параметра, каким он был найден в конфиге (не обязательно может начинаться с 1, в зависимости от настроек Adminconfig, см. далее)
  • список цветовых индикаторов типа параметра
  • один или более комментариев к параметру которые были найдены наиболее близко к параметру ДО него самого (если существуют)
  • текущее значение параметра. Может быть представлено однострочным полем ввода, многострочным полем ввода или списком значений.
  • если параметр редактировался (вручную, либо был изменен системой или другим плагином), справа от значения есть маленький значок в виде скобок ">>", при нажатии на который открывается ещё одно поле такого же типа с оригинальным значением этого параметра которое было записано в конфигурационном файле, т.е. значением по-умолчанию каким его задал автор плагина. Повторное нажатие на значок прячет это поле оригинального значения. Поле с оригинальным значением доступно только для чтения.
  • ключ параметра, которым он записан в конфиге
  • один или более комментариев к параметру которые были найдены наиболее близко к параметру ПОСЛЕ него самого (если существуют)

После параметров доступна кнопка «Сохранить настройки».

В зависимости от настроек плагина Adminconfig часть параметров может быть скрыта, в этом случае после кнопки «Сохранить настройки» будет выведен небольшой текстовый блок с информацией о заблокированных параметрах со следующей структурой:

  • порядковый номер параметра как если бы он был выведен в списке доступных для редактирования параметров. Вот именно поэтому параметры могут начинаться не с порядкового номера 1 или даже иметь пропуски в нумерации это не ошибка: таким образом показывается что в списке должен был быть параметр, который заблокирован для редактирования.
  • ключ параметра, как он был записан в конфиге
  • значение этого параметра

Типы параметров (цветовые индикаторы) и фильтры отбора


Все параметры отмечаются специальным(и) цветным(и) индикаторами типа, которые указывают на дополнительную информацию об этом параметре. Всего есть 6 доступных индикаторов:

  • Значение данного параметра не менялось — именно таким оно было найдено в конфиге плагина
  • Вы редактировали данный параметр — значение отличается от записаного в файле конфига
  • Данный параметр закомментирован в конфиге или имеет значение NULL что равносильно
  • Данный параметр установлен с помощью другой переменной, именно её значение и показывается
  • Данный параметр связан с другим ключом конфигурации и зависит от его значения. Показано оригинальное значение, а не актуальное, хотя оно могло быть измененным как вручную так и плагинами
  • Данный параметр установлен напрямую через вызов класса конфига (Config)

Это описание можно открыть, нажав на 3 большие точки справа от заголовка «Настройки плагина ИМЯ_ПЛАГИНА». Эти цветовые индикаторы показываются для каждого параметра справа маленькими кружочками. Получить справку по каждому индикатору также можно наведя курсор мыши на индикатор. Для каждого параметра может быть показано несколько индикаторов.

Над параметрами находится фильтр, который позволяет сделать отбор только нужных параметров по индикаторам. Например, можно показать только те параметры, значение которых редактировалось (отличное от значения по-умолчанию).

Типы значений параметров


Для каждого скалярного значения параметра есть определенное визуальное представление, удобное для редактирования:

  • для чисел и строковых величин, которые не содержат перевод строки редактирование представлено простым полем ввода.
  • для строковых величин с переводом каретки и массивов появляется многострочное поле ввода
  • для логических значений (булев тип) выводится выпадающий список значений с пунктами «включено (true)» и «выключено (false)»

Примеры параметров


В плагине есть тестовый конфиг со списком параметров которые занесены для тестов. К описанию таких параметров добавлено слово «песочница». Редактирование этих параметров ни на что не влияет.

Парсинг конфигов


  • Плагин парсит и понимает все типы скалярных значений параметров в конфигах движка ЛС
  • Закомментированные параметры также парсятся, чтобы иметь возможность включать закомментированные настройки (если такие заявлены автором плагина). Эта возможность включается в настройках плагина Adminconfig.
  • Плагин Adminconfig распознает все типы комментариев в php (одно и многострочные) в любых количествах. Плагин распознает близлежащие к параметрам комментарии до и после параметра, составляя таким образом наиболее полное единое описание для параметра.
  • Парсит параметры указанные посредством массива (стандартный метод) так и установленные напрямую через вызов класса конфига (Config).
  • Плагин находит строковые и числовые типы ключей
  • В интерфейсе, в зависимости от типа значения параметра, он будет представлен либо полем ввода (для чисел и строк, в т.ч. многострочным полем ввода если в параметре найдены переводы строк) либо многострочным полем ввода (для массивов) либо выпадающим списком со значениями «вкл/выкл» (для булевого типа)
  • Если параметр устанавливается с помощью переменной (не скалярным типом), она будет загружена для получения значения.
  • Комментарии аккуратно разбираются и чистятся от разного рода символов, которые являются визуальным украшением (например, звездочки в phpDoc комментариях)
  • Автоопределение кодировки utf-8 BOM и уведомление пользователя если такая найдена в главном конфиге сайта или плагинов (такая кодировка вызывает разного рода ошибки в движке и её использование не рекомендовано)

Исключения и технические детали


Нельзя редактировать следующие 4 параметра:

  • path.root.server
  • path.root.engine
  • sys.plugins.activation_file
  • db.params
  • + частично настройки плагина configengine
  • + частично настройки плагина adminconfig

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

Замечание: Ограничение движка делает невозможным редактирование конфигов, которые размещены в папке шаблона (/templates/skin/ИМЯ_ШАБЛОНА/settings/config/config.php). Параметры из этого конфига перекрывают другие параметры. К счастью, обычно эти конфиги пустые.

Также в конфиге плагина может присутствовать специальный массив с ключом «AC_Exclude_Config_Keys». В этом массиве можно указать строковые названия ключей данного конфига которые нужно исключить из интерфейса и сделать невозможным их редактирование. Сам массив «AC_Exclude_Config_Keys» при этом тоже показан не будет.

Кеш и БД


На этой странице есть две возможности: очистка кеша и оптимизация БД. Первый пункт «Очистка кеша» позволяет очистить нужный тип кеша (5 вариантов) в ЛС или произвести очистку всех кешей одной кнопкой. Если не уверены какой именно кеш нужно очистить — нажимайте «Выполнить полную очистку всего кеша».

Второй пункт «Оптимизация и сжатие БД» позволяет незначительно ускорить работу вашей БД за счет выполнения двух команд MySQL: «ANALYZE TABLE» и «OPTIMIZE TABLE». При открытии страницы в поле ввода перечисляются через запятую все найденные таблицы БД вашего сайта. Внимательно читайте справку на странице, отредактируйте список таблиц, с которыми нужно произвести операции (или оставьте как есть чтобы оптимизировать все таблицы).

Лицензия


Плагин распространяется на платной основе. Совершая покупку вы покупаете право (лицензию) на использование плагина на одном домене. Плагин привязывается к домену, после покупки вам на почту придет письмо с файлом лицензии на домен, который вы указали при покупке, который нужно скопировать в папку плагина. Код плагина открыт, закрыто менее 1% кода, который не мешает дорабатывать плагин. При покупке больше одной лицензии можно получить скидки. Все вопросы по этом поводу писать в личку. Распространение плагина и/или файла лицензии запрещено.

Требования


Плагин использует хранилище ConfigEngine от PSNet. Минимальная необходимая версия плагина ConfigEngine 1.2.4.

Скорость работы


Плагин не делегирует и не наследует никаких системных модулей и использует легитимные функции движка, что делает работу этой админки очень быстрой. Если сказать более точно — то эта админка при работе не создает никакой нагрузки и не добавляет ни одного нового запроса к БД. Она модифицирует работу плагина ConfigEngine таким образом чтобы выполнять один простой и быстрый запрос к БД для своих и плагина ConfigEngine нужд.

Демо-видео по работе с админкой


При просмотре выберите наилучшее качество чтобы увидеть все детали (Ссылка).



Плагин доступен в каталоге.
1 комментарий
Serge Pustovit
Зачем это нужно?

Вам больше не нужно будет заходить по фтп на сайт, редактировать вручную код конфига чтобы изменить рейтинг топика для попадания на главную, поменять настройки ACL или отредактировать любые другие параметры плагинов — все это можно сделать мышкой прямо в браузере. Причем благодаря фильтрам вам не придется вспоминать именно что вы редактировали, а что нет — вы можете включить просмотр только тех параметров, которые менялись.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.