modx smartConfig, modx cms , MODx модуль smartConfig - лёгкоё управление

Установка модуля

Для установки modx модуля smartConfig, необходимо следовать действиям описанным в инструкции по установке

Философия

В процессе создания сайтов ( не только на MODx), иногда возникает необходимость хранить некоторые конфигурационные параметры которые будут использоватся потом на сайте, примером может служить номер электронного кошелька, тема заголовка письма обратной связи и т.п. Редактирования этих параметров должно быть доступно администратору сайта в удобном виде. В cms modx на вкладке ??нструметы -> Конфигурация представленны настройки сайта, они сохранены в базе данных, и редактировать их весьма удобно. Каждый вызов сниппета необходимо сопровождать строкой параметров, что не совсем хорошо, т.к. надо наизусть помнить назавния параметров, константные значения настроечных параметров, и ещё плюс пользователь может при редактирование что то неумышленно изменить, и потом мучайся ищи где ошибка или опечатка.

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

  • простая строка
  • текстовое поле типа TextArea
  • список типа Select
  • список чанков (для выбора необходимого чанка)
  • поле типа password

Т.к. иногда необходимо использовать один сниппет с разными параметрами, то в smartConfig предусмотренны шаблоны группы параметров для таких сниппетов как eForm, simpleCatalog, MaxiGallery, чтобы не писать для них каждый раз описание параметров в конфигурационных файлах.

API интерфейс для получения параметров реализует статичесткий класс, он предоставляет две статичные функции для получения значений целой группы параметров, и для получения значения одного конкретного параметра. (см. примеры интеграции ниже.)

Скриншоты

Шаблоные конфиги

eForm

$scData[SC_TAB_Groups][] = array(
SC_GROUP_Name => 'feedBack',
SC_GROUP_DisplayName => 'Feed Back',
SC_GROUP_Template => 'eForm'
);

Simple Catalog

$scData[SC_TAB_DisplayName] = '??нфо ленты/каталоги';  
$scData[SC_TAB_Order] = 5;
$scData[SC_TAB_Groups][] = array(
SC_GROUP_Name => 'news',
SC_GROUP_DisplayName => 'Новости',
SC_GROUP_Template => 'simpleCatalog'
);