Описание для системных настроек MODX из словаря
Есть распространённая проблема: компоненты из репозитория обычно идут с системными настройками, которые выглядят примерно так:

А хотелось бы вот так:

Все потому, что у объекта modSystemSetting нет полей для хранения ключа записи в словаре, в отличии от параметров сниппетов или плагинов.
Лично мне было лень разбираться, откуда же берутся нормальные записи для настроек ядра, если в объекте и БД их нет, но сегодня я себя переборол и всё прояснилось.
Для того, чтобы были нормальные записи в системных настройках при установке компонента, нужно делать так:
Создание настройки в _build/data/transport.settings.php
Записи для неё в дефолтном словаре компонента default.inc.php:
И запись для пространства (area), в которой находится настройка, в примере это ms2_category
Перед каждой записью в словаре для настроек должно быть setting_, а расширенное описание еще и должно оканчиваться на _desc. Название группы настроек начинается с area_.
Такое наименование записей для вывода в настройках жестко зашито в класс modContextSetting, и изменить этого никак нельзя.
А хотелось бы вот так:
Все потому, что у объекта modSystemSetting нет полей для хранения ключа записи в словаре, в отличии от параметров сниппетов или плагинов.
Лично мне было лень разбираться, откуда же берутся нормальные записи для настроек ядра, если в объекте и БД их нет, но сегодня я себя переборол и всё прояснилось.
Для того, чтобы были нормальные записи в системных настройках при установке компонента, нужно делать так:
Создание настройки в _build/data/transport.settings.php
$settings['ms2_category_grid_fields']= $modx->newObject('modSystemSetting');
$settings['ms2_category_grid_fields']->fromArray(array(
'key' => 'ms2_category_grid_fields',
'value' => 'id,pagetitle,article,price,weight,image',
'xtype' => 'textarea',
'namespace' => 'minishop2',
'area' => 'ms2_category',
),'',true,true);Записи для неё в дефолтном словаре компонента default.inc.php:
$_lang['setting_ms2_category_grid_fields'] = 'Поля таблицы товаров';
$_lang['setting_ms2_category_grid_fields_desc'] = 'Список видимых полей таблицы с товарами категории, через запятую.';И запись для пространства (area), в которой находится настройка, в примере это ms2_category
$_lang['area_ms2_category'] = 'Категория товаров';Именно так и никак иначе.Перед каждой записью в словаре для настроек должно быть setting_, а расширенное описание еще и должно оканчиваться на _desc. Название группы настроек начинается с area_.
Такое наименование записей для вывода в настройках жестко зашито в класс modContextSetting, и изменить этого никак нельзя.
Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Но чувствуется какая-то недоработка в этом, как костыль выглядит.
а после просто указать требуемые ключи в словаре компонента (core/components/minishop/lexicon/ru/default.inc.php) —
Да и копаться не нужно, нужно доки читать
rtfm.modx.com/display/revolution20/System+Settings
Зато в исходнике процессора есть.
или вот такая настройка, [[++tag_mgr2.propertySetName]]
можно ли ее как нибудь изменить? например, [[++tag_mgr2? &propertySetName=`ololol`]] но так не получается, если это вообще возможно подскажите как, плз.