Описание для системных настроек 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
Про area не знал, остальное подсмотрел в примерах других плагинов и использовал сразу же.
Но чувствуется какая-то недоработка в этом, как костыль выглядит.
Но чувствуется какая-то недоработка в этом, как костыль выглядит.
Я докапался по исходникам, там прям джойнятся записи сэтими префиксами и постфиксами.
А вот я разобрался когда делал — на самом деле всё просто- нужно написать «setting_» + полное название компонента + "..." чтобы нужные записи подгружались из лексикона компонента, для минишопа выглядит вот так —
а после просто указать требуемые ключи в словаре компонента (core/components/minishop/lexicon/ru/default.inc.php) —
а после просто указать требуемые ключи в словаре компонента (core/components/minishop/lexicon/ru/default.inc.php) —
$_lang['setting_minishop.path_store_images'] = 'Путь для загружаемых изображений';
$_lang['setting_minishop.path_store_images_desc'] = 'Путь от корня сайта до папки в которую будут загружаться изображения. По умолчанию - assets/goods_images/';
картинка грузится не ахти, если что вот адрес полной — pix.am/bK0b/
Нда, когдато я тебе Василий о этом уже рассказывал, наверное ты меня не слышал тогда… :(
Да и копаться не нужно, нужно доки читать
rtfm.modx.com/display/revolution20/System+Settings
Да и копаться не нужно, нужно доки читать
rtfm.modx.com/display/revolution20/System+Settings
The values used to describe system settings can be optionally localized (i.e. translated) by referencing a specific localization file. The lexicon keys follow a specific format:
Name: setting_ + Key
Description: setting_ + Key + _desc
За area_ согласен, что там нет. Сам недавно в расширении Ace увидел.
Люди добрые, имеем натройку [[++site_start]], могу ли я ее изменить как нибудь??
или вот такая настройка, [[++tag_mgr2.propertySetName]]
можно ли ее как нибудь изменить? например, [[++tag_mgr2? &propertySetName=`ololol`]] но так не получается, если это вообще возможно подскажите как, плз.
или вот такая настройка, [[++tag_mgr2.propertySetName]]
можно ли ее как нибудь изменить? например, [[++tag_mgr2? &propertySetName=`ololol`]] но так не получается, если это вообще возможно подскажите как, плз.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.