MS2 Плагин доп. полей

MS2 Плагин доп. полей

Возможно кому будет полезно дополнительное описание создание своих полей через плагины MS2

Мой вариант плагина с несколькими полями, необходимо скопировать по нужным папкам, добавить данные в таблицу и словари. 

1. Создаем папку PLAGINNAME:
/assets/components/minishop2/plugins/PLAGINNAME/

Создаем файл msproductdata.js:

miniShop2.plugin.pluginname = {
            getFields: function(config) {
                        return {
                                    FIELDNAME1: {xtype: 'minishop2-combo-autocomplete', description: '<b></b><br />'+_('ms2_product_FIELDNAME1_help')}
                        }
            }
            ,getColumns: function() {
                        return {
                                    FIELDNAME1: {width:50, sortable:false, editor: {xtype:'minishop2-combo-autocomplete', name: 'FIELDNAME1'}}
                        }
            }
};

Заменяем FIELDNAME1 на Ваше поле
Xtype – тип поля ввода в админке:
xtype: 'minishop2-combo-autocomplete' - текстовое с авто завершением.
xtype: 'textfield' – тесктовое поле
xtype: 'numberfield', decimalPrecision: 2, - числовое поле с плавающей запятой
Еще примеры описания полей можно посмотреть в файле: assets/components/minishop2/js/mgr/product/product.common.js

2. Создаем папку PLAGINNAME:
/core/components/minishop2/plugins/PLAGINNAME/

Создаем файл: msproductdata.map.inc.php

<?php
return array(
           'fields' => array(
                        'FIELDNAME1' => NULL
            )            
           ,'fieldMeta' => array(
                        'FIELDNAME1' => array(
                                  'dbtype' => 'varchar'
                                    ,'precision' => '50'
                                    ,'phptype' => 'string'
                                    ,'null' => true
                                    ,'default' => NULL
                        )
            )
            ,'indexes' => array(
                        'FIELDNAME1' => array (
                                    'alias' => 'FIELDNAME1'
                                    ,'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

3.  Добавляем в таблицу ms2_produts дополнительные поля (скриптами или через PHPmyAdmin)

Например:

Имя

Тип

Сравнение

Атрибуты

Null

По умолч.

fieldname1

varchar(255)

utf8_general_ci

 

Да

NULL

 

4. Создаем файл index.php:

ВАЖНО!!!, перед созданием файла необходимо обеспечить доступ к сайту по FTP, так как при ошибках в файлах доступа к админке не будет.  В этом случае надо будет переименовать файл index.php

<?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/PLAGINNAME/msproductdata.js'
            )
);

*Из кода удалил папку model, на Ваше усмотрение как лучше.

 5. Добавляем описание полей в словари.
СИСТЕМА -> УПРАВЛЕНИЕ СЛОВАРЯМИ->Создать запись

ms2_product_FIELDNAME
ms2_product_FIELDNAME_help

Пространство имен: minishop2
Тема: Product
Язык: Ru
Значение Описание поля

6. Добавляем новые поля на форму панели товара в админке.
НАСТРОЙКА СИСТЕМЫ ->МС2->ТОВАР->основные/дополнительные поля

UPDATE 10.2013: ПО МНОГИМ ПРОСЬБАМ ВЫКЛАДЫВАЮ ВАРИАНТ С НЕСКОЛЬКИМИ ПОЛЯМИ, РАБОТАЛ НА СТАРОЙ ВЕРСИИ МИНИШОПА, КТО УСТАНОВИТ, ОТПИШИТЕСЬ РАБОТАЕТ ЛИ СЕЙЧАС.

 

Нравится
blog comments powered by Disqus