Алексей Ерохин

Алексей Ерохин

Был в сети 15 апреля 2025, 15:28
Заказы не принимаю
Преимущество minishop2-combo-options над обычным комбобоксом в том, что минишоповский берет существующие значения из modx_ms2_product_options и можно без проблем новые добавлять, а Вы ему store переопределяете.
То есть, если у Вас уже есть товар с такой маркой, то он будет в выпадающем списке, если же нет, Вы можете его просто написать туда ручками и эту марку можно будет выбирать в будущем.
Потому что у Вас на странице огромное количество одинаковых id у элементов.
Чтобы заработали 2 фильтра на одной странице Вам нужен второй экземпляр default.js с другими селекторами и соответ ственно другие id у элементов на странице. Теоретически.
Я так делал.
Перед собственно определением плагина в js-файле добавлял это:
var storesex = new Ext.data.ArrayStore({
    id: 'minishop2-product-sex'
    ,fields: [{name: 'name', type: 'string']}
    ,data: [['Мужской'],['Женский'],['Унисекс']]
});
miniShop2.combo.ProductSex = function(config) {
    config = config || {};
    Ext.applyIf(config,{
        store: storesex
        ,emptyText: _('ms2_combo_select')
        ,displayField: 'name'
        ,valueField: 'name'
        ,hiddenName: 'sex'
        ,mode: 'local'
        ,triggerAction: 'all'
        ,editable: false
        ,selectOnFocus: false
        ,preventRender: true
        ,forceSelection: true
        ,enableKeyEvents: true
    });
    miniShop2.combo.ProductSex.superclass.constructor.call(this,config);
};
Ext.extend(miniShop2.combo.ProductSex,MODx.combo.ComboBox);
Ext.reg('minishop2-combo-product-sex',miniShop2.combo.ProductSex);
Теперь в плагине можно использовать xtype только что зарегистрированного комбобокса

sex: {xtype: 'minishop2-combo-product-sex',fieldLabel: 'Пол'}