Дополнительные поля в miniShop2
Для того что бы добавить еще основных полей в miniShop2 и они не пропадали после обновления, необходимо создать плагин для miniShop2.
1. Необходимо создать папку MyPlagin с расположением - assets/components/minishop2/plugins/MyPlagin/
2. Создать файл msproductdata.js с содержимым
miniShop2.plugin.pluginname = { getFields: function(config) { return { MYFIELD: {xtype: 'minishop2-combo-autocomplete', description: ' '+_('ms2_product_MYFIELD_help')} } } ,getColumns: function() { return { MYFIELD: {width:50, sortable:false, editor: {xtype:'minishop2-combo-autocomplete', name: 'MYFIELD'}} } } };
Основные типы полей xtype:
xtype: 'minishop2-combo-autocomplete' - текстовое с авто завершением. xtype: 'textfield' – тесктовое поле xtype: 'numberfield', decimalPrecision: 2, - числовое поле с плавающей запятой xtype: 'xcheckbox', inputValue: 1, - галочка установленная по умолчанию
другие варианты типов полей смотрим assets/components/minishop2/js/mgr/product/product.common.js
3. Создаем папку MyPlagin с расположением - core/components/minishop2/plugins/MyPlagin/
4. Создаем файл msproductdata.map.inc.php с содержимым
<?php return array( 'fields' => array( 'MYFIELD' => NULL ) ,'fieldMeta' => array( 'MYFIELD' => array( 'dbtype' => 'varchar' ,'precision' => '50' ,'phptype' => 'string' ,'null' => true ,'default' => NULL ) ) ,'indexes' => array( 'MYFIELD' => array ( 'alias' => 'MYFIELD' ,'primary' => false ,'unique' => false ,'type' => 'BTREE' ,'columns' => array ( 'action' => array ( 'length' => '' ,'collation' => 'A' ,'null' => false ) ) ) ) );
Варианты типов полей и их описания смотрим core/components/minishop2/model/minishop2/mysql/msproductdata.map.inc.php
5. Создаем поля в таблице ms2_produts через управление базы, например phpMyAdmin
6. Теперь необходимо создать файл index.php с расположением - core/components/minishop2/plugins/MyPlagin/
и содержимым
<?php /* Index file for miniShop2 plugin */ return array( 'xpdo_meta_map' => array( 'msProductData' => require_once dirname(__FILE__) .'/msproductdata.map.inc.php' ) ,'manager' => array( 'msProductData' => MODX_ASSETS_URL . 'components/minishop2/plugins/MyPlagin/msproductdata.js' ) );
7. Остаеся прописать в словари ms2_product_MYFIELD и ms2_product_MYFIELD_help
8. Не забыть в настройках miniShop2 добавить новое поле MYFIELD для отображения на странице и в таблице Категории. Настройки -> minisop2 -> Товар -> Дополнительные поля товара (ms2_product_extra_fields)
Источник: http://winrecovery.ru/ms2plugin.html
'xpdo_meta_map' => array( 'msProductData' => require_once dirname(__FILE__) .'/msproductdata.map.inc.php' )
Не подгружает файл msproductdata.map.inc.phpВозможно конкретно у меня так, т.к. присутствует модуль msTools, но в итоге решение было через подгрузку данных этого файла через создание плагина и его инициализации по событию «msOnGetProductFields».