Добавить свойство товара Список (одиночный выбор)

Приветствую!

Есть задача:
В админке добавить в Категории товаров дополнительное свойство Оттенок.
Это должен быть список с одиночным выбором.
Должно быть все как у производителя.



И тут незадача — у производителя данные добавляются в настройках.
Как сделать такое поле с помощью плагина, и добавить в список нужные значения?
Rootiys
20 ноября 2014, 16:07
modx.pro
8
4 152
0

Комментарии: 7

Алексей Ерохин
20 ноября 2014, 20:25
4
+2
Я так делал.
Перед собственно определением плагина в 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: 'Пол'}
    Rootiys
    20 ноября 2014, 21:01
    0
    Спасибо! буду пробовать.
      Rootiys
      14 декабря 2014, 20:07
      0
      Подскажите, как сделать значение по умолчанию, например Мужской?
        Romancho
        18 декабря 2014, 17:02
        0
        Огромное спасибо за пример.
        Не вероятно помогли данным кодом. 80% проблем моментально решились. Сижу довольный пложу выпадающие списки в огромном каталоге. Спасибо!
          Romancho
          18 декабря 2014, 23:31
          0
          Доброго дня.

          Еще раз спасибо за код. В админке наведен порядок :) А дальше я затупил. Есть поле свойств товара, в котором предустановлены 2 десятка «технологий» [[+tech]]. На front-end`е необходимо эти два дестка вывести, дабы потом подключить к ним фильтр.
          Пытаюсь вывести так: [[msProducts?&element=`msProducts` &parents=`[[+id]]` &tpl=`techList` ]]

          Конечно он вытаскивает абсолютно все отмеченные, а не просто весь список +tech.
          Голову уже сломал, как это сделать, чтобы в «меню» выводился весь список каждого собственного поля.

            Виталий Греков
            04 декабря 2015, 20:34
            0
            Подскажите пожалуйста, как можно изменить ваше решение, не только выбор из предлагаемых вариантов, но с возможностью вносить данные, так как не всегда заранее можно знать какой выбор должен быть.
              Виталий Греков
              04 декабря 2015, 20:43
              0
              разобрался частично
              editable: false
              поменял на
              true
              но при этом можно все редактировать, а как можно сделать при выборе варианта введите свои данные, чтобы только при этом выборе можно было вводить значение
              data: [['СБС-модифицированный'],['АПП-модифицированный'],['окисленный'],['нет данных']],['введите свои данные']]
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            7