Новое поле товара
Не могу создать у товара MiniShop2 поле типа селект.
Нужно чтобы было вот так:
Пробовал уже разные способы, один из них:
Пробовал кучу xtype:
Помогите! :)
Нужно чтобы было вот так:
<select>
<option value="1">Да</option>
<option value="0">Нет</option>
</select>
Пробовал уже разные способы, один из них:
miniShop2.plugin.ms2NewFields = {
getFields: function(config) {
return {
available: {
xtype: 'minishop2-combo-autocomplete'
,minChars: 1
,description: '<b>[[+available]]</b>
' + _('ms2_product_dimension')
,mode: 'local'
,editable: false
,store: new Ext.data.SimpleStore({
fields: ['available']
,data: [[0, 'Да'], [1, 'Нет']]
})
}
}
}
};
Либо не записывается в базу, либо не выводится в списке варианты (пустые строки)Пробовал кучу xtype:
- combo,
- combo-boolean,
- modx-combo,
- modx-compo-property-set
Помогите! :)
Комментарии: 15
Раз уж начали переопределять Store, то делайте это до конца. Где displayField, valueField?
В fields одно значение, а в data — два. Исправляйте.
В fields одно значение, а в data — два. Исправляйте.
а что писать в эти поля?
что это значит?
Спасибо конечно за ответ, но как-то не очень понятно…
displayField: ?
,valueField: ?
В fields одно значение, а в data — два. Исправляйте.
что это значит?
Спасибо конечно за ответ, но как-то не очень понятно…
displayField — то что будет отображаться в списке
valueField — значение выбранного.
Вы пишите в data 2 значения, т.е. 2 поля
Можно сделать например так
valueField — значение выбранного.
Вы пишите в data 2 значения, т.е. 2 поля
[0, 'Да']
А в fields указываете название только одного поля.Можно сделать например так
...
,store: new Ext.data.ArrayStore({
fields: ['available','displayField']
,data: [[0, 'Да'], [1, 'Нет']]
})
,displayField: 'displayField'
,valueField: 'available'
...
О… вот оно как )) спасибо, сейчас попробую ))
Заработало) Спасибо еще раз, помог)
Подскажи еще, почему-то работает только с:
Просто с minishop2-combo-autocomplete поле справа обрывается, придираюсь конечно, но не красиво как-то )
Подскажи еще, почему-то работает только с:
xtype: 'minishop2-combo-autocomplete'
Если поменять на combo или modx-combo, то не работает (в базу не записывается).Просто с minishop2-combo-autocomplete поле справа обрывается, придираюсь конечно, но не красиво как-то )
Потому что в minishop2-combo-autocomplete определены свойства name и hiddenName формы. Именно они отправляют значение в базу.
т.е с
и получается никак не сделать справа стрелочки у поля?
просто рылся в файлах modx, нашел вот такую штуку (не знаю что это, но вроде xtype:combo, и значения 2 в data, как у меня...):
xtype:combo,
xtype:modx-combo
работать не будет?и получается никак не сделать справа стрелочки у поля?
просто рылся в файлах modx, нашел вот такую штуку (не знаю что это, но вроде xtype:combo, и значения 2 в data, как у меня...):
{
id: this.ident+'sortSelect'
,xtype: 'combo'
,typeAhead: true
,triggerAction: 'all'
,width: 100
,editable: false
,mode: 'local'
,displayField: 'desc'
,valueField: 'name'
,lazyInit: false
,value: MODx.config.modx_browser_default_sort || 'name'
,store: new Ext.data.SimpleStore({
fields: ['name', 'desc'],
data : [
['name', _('name')]
,['size', _('file_size')]
,['lastmod', _('last_modified')]
]
})
,listeners: {
select: {
fn: this.sortStore
,scope: this
}
}
Почему нельзя, можно. Надо просто определить эти свойства
...
,name: 'available'
,hiddenValue: 'available'
...
А стрелочка должна быть. Глюк какой-то. А triggerAction: 'all' стоит? а куда это нужно вставлять? туда нужно название моего поля прописывать (available)?... ,name: 'available' ,hiddenValue: 'available' ...
просто я вставил на одном уровне с xtype, но ничего не поменялось… или в store нужно?
А стрелочка должна быть.когда combo или modx-combo, они есть, а minishop2-combo-autocomplete — их нет…
Глюк какой-то. А triggerAction: 'all' стоит?
не стоит, но и с ним глюк со стрелочками не исчезает…
У minishop2-combo-autocomplete она скрыта принудительно (эмулируется поле редактирования).
hideTrigger: true
Нужно выставить в false. Но тогда это не будет похоже на поле автодополнения, а будет select.,name: 'available'
,hiddenValue: 'available'
нужно выставлять на уровне xtype. Это нужно для того, чтобы данные сохранялись (для modx-combo и combo).
Все, появились стрелочки ) Спасибо в 101-й раз )
Но modx-combo и combo все равно не работают:
Но modx-combo и combo все равно не работают:
available: {
// xtype : 'minishop2-combo-autocomplete'
xtype : 'modx-combo'
,description : '<b>[[+available]]</b>
' + _('ms2_product_available_help')
,mode : 'local'
,editable : false
,displayField : 'name'
,valueField : 'value'
,hideTrigger : false
,triggerAction : 'all'
,name : 'available'
,hiddenValue : 'available'
,store : new Ext.data.ArrayStore({
fields : ['value', 'name']
,data : [
[0, 'На заказ']
,[1, 'В наличии']
]
})
}
П.С.: а ты откуда это все знаешь? где-то инструкция по этому всему есть? Но modx-combo и combo все равно не работают:Гадать сложно. Проще на натуре выяснять.
П.С.: а ты откуда это все знаешь? где-то инструкция по этому всему есть?Есть. Официальная документация и гугл/яндекс.
Да прибудет с тобой сила терпения! :)
Привет! Подскажи, пожалуйста, по этой теме modx.pro/help/14426/
Если я вас правильно понял, то это вам должно помочь
Насколько я понял, в том примере в базу так и записывается то что выбирается из списке "[['Мужской'],['Женский'],['Унисекс']]".
Мне нужно по чтоб выбрав 'Мужской' в базу добавлялось значение 1, 'женский' — 2 и так далее.
Как в нормальном html select.
Мне нужно по чтоб выбрав 'Мужской' в базу добавлялось значение 1, 'женский' — 2 и так далее.
Как в нормальном html select.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.