Hallo liebes Shopware, ich erstelle gerade ein Plugin, welches das Backend im Bereich der Artikel erweitern soll. Es werden neue Spalten in der s_articles_attribute hinzugefügt, klappt soweit. Aber im Backend möchte ich eine Checkbox verwenden, das haut nicht hin. Dort bekomme ich ein Text-Input angezeigt. Das Input links funktioniert, das Checkbox Field rechts leider nicht. Meine betreffende preferences.js ist so aufgebaut: createFormLeft:function () { var me = this; me.aarticleAvailability = Ext.create('Ext.form.field.Number', { name:'attribute[krmeAvailability]', fieldLabel:'{s name=advanced\_article\_details/availability}Availability{/s}', minValue: 1, allowBlank: true, anchor:'95%', labelWidth:150, minWidth:250 }); return [me.aarticleAvailability]; }, /\*\* \* Creates the right container of the base field set. \* \* @return Array Contains the three form fields \*/ createFormRight:function () { var me = this; me.aarticleDeliverymethod = Ext.create('Ext.form.field.Text', { xtype: 'checkbox', name:'attribute[krmeDeliverymethod]', anchor:'95%', labelWidth:100, minWidth:250 }); return [me.aarticleDeliverymethod]; }
Hat Jemand eine Idee? Liegt es am attribute-array im Bereich des „name“? Danke!
Hallo, Du erstellst ja auch ein Textfield (Ext.create(‘Ext.form.field.Text’ …). Du musst eine Checkbox nehmen (Ext.create(‘Ext.form.field.checkbox’ …) und den xtype entfernen. Ein Label wäre auch nicht schlecht, dann sollte es klappen.
Sorry - hatte wohl einen harten Tag und es übersehen Ehm - xtype ist raus, und im define ist die Checkbox drin, aber wenn ich nun Speicher dann übernimmt das Backend keine Werte mehr. Auch nicht mehr von dem vorher noch laufenden linken Element. createFormRight:function () { var me = this; me.aarticleDeliverymethod = Ext.create('Ext.form.field.Checkbox', { name:'attribute[krmeDeliverymethod]', anchor:'95%', labelWidth:100, minWidth:250, fieldLabel:'{s name=advanced\_article\_details/deliverymethod}Deliverymethod{/s}', inputValue: 1 }); return [me.aarticleDeliverymethod]; }
Also das Problem habe ich so lösen können: Da in der Datenbank ein tinyint(1) definiert ist habe ich dann folgendes bei der Checkbox eingetragen: me.aarticleDeliverymethod = Ext.create('Ext.form.field.Checkbox', { name:'attribute[krmeDeliverymethod]', labelStyle: 'font-weight: 700;', labelWidth: 150, minWidth: 250, inputValue: '1', labelWidth: 130, uncheckedValue: '0', fieldLabel:'{s name=advanced\_article\_details/deliverymethod}Deliverymethod{/s}' });
inputValue und uncheckedValue habe ich auf 1 und 0 geändert.