все просто

07 февраля 2022, 11:54

MasterDen

Это было просто скопированная инструкция по созданию…

Добавить поля в Опции 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 итоге получаем работающее новое поле

Дополнительное поле Опций

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