Добавить поля в Опции miniShop2
MiniShop2 позволяет создавать неограниченное количество Описаний для товаров. Возникла необходимость добавить к параметрам Описаний еще полей с параметрами. Воспользовавшись инструцией Дополнительные поля в miniShop2 были создано дополнителное поле у Опции
Новое поле к уже имеющимся было необходимо для управления выводом набора фильтров в mFilter2.
1. Согласно инструкции создал папку fieldtv с расположением - assets/components/minishop2/plugins/fieldtv/
2. Файл msoptionsdata.js(поскольку поле необходимо для Опций то в названии присутствует options) с содержимым
miniShop2.plugin.pluginname = {
getFields: function(config) {
return {
filtr: {xtype: 'xcheckbox', inputValue: 1, description: '
'+_('ms2_options_filtr_help')}
}
}
,getColumns: function() {
return {
filtr: {width:20, sortable:false, editor: {xtype:'xcheckbox', name: 'filtr'}}
}
}
};
filtr - такое название дал новому полю
3. Создаем папку fieldtv с расположением - core/components/minishop2/plugins/fieldtv/
4. Создаем файл msoptionsdata.map.inc.php с содержимым
<?php
return array(
'fields' => array(
'filtr' => 1
)
,'fieldMeta' => array(
'filtr' => array(
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => true,
'default' => 1,
)
)
);
В индексирование по этому полю нет необходимости, поэтому данные индекса не указывал.
5. Создаем поле filtr в таблице ms2_options через управление базы, например phpMyAdmin
6. Теперь необходимо создать файл index.php с расположением - core/components/minishop2/plugins/MyPlagin/ и содержимым
<?php /* Index file for miniShop2 plugin */ return array( 'xpdo_meta_map' => array( 'msOption' => require_once dirname(__FILE__) .'/msoptionsdata.map.inc.php' ) ,'manager' => array( 'msOption' => mdch_ASSETS_URL . 'components/minishop2/plugins/fieldtv/msoptionsdata.js' )
Тут важно учитывать, что мы добавляем поле другой таблице, то и внимательно надо смотреть и указывать класс- msOption
7. Остаеся прописать в словари ms2_options_filtrи ms2_options_filtr_help
8. Дальше знаний не хватило и пришлось править сам файл window.js для того, что бы поле появилось в админке
Путь к нему assets/components/minishop2/js/mgr/settings/option/window.js добавив в строку 128 вместо строк
, {
xtype: 'textarea',
fieldLabel: _('ms2_ft_description'),
name: 'description',
anchor: '99%',
id: config.id + '-description'
}
такие строки
, {
xtype: 'textarea',
fieldLabel: _('ms2_ft_description'),
name: 'description',
anchor: '99%',
id: config.id + '-description'
},{
xtype: 'xcheckbox',
fieldLabel: _('ms2_ft_filtr'),
name: 'filtr',
anchor: '99%',
id: config.id + '-filtr'
}
9. Прописываем в словари ms2_ft_filtr
B итоге получаем работающее новое поле

Комментарии ()