Artikel Attribute und Freitextfelder: Keine Speicherung

Hi Community, ich bin an einem Plugin dran und habe das Problem, dass das Attribut, das ich für Artikel angelegt habe und mit einem Freitext-Feld Verknüpfen wollte, beim ändern nicht gespeichert wird. So lege ich das Attribut an: private function addAttributes() { $this-\>Application()-\>Models()-\>addAttribute( 's\_articles\_attributes', 'a', 'testattr', 'varchar(5)', //checkbox true, 'false' ); $this-\>Application()-\>Models()-\>generateAttributeModels(array( 's\_articles\_attributes' )); } Das Backend-Model wird per ‘attribute.js’ erzeugt: //{block name="backend/article/model/attribute/fields" append} { name: 'a\_testattr', type: 'string' }, //{/block} Das Freitext-Feld wird direkt in der Datenbank erstellt: $name = $this-\>attr\_name; $domname = $this-\>attr\_name; $insert = Shopware()-\>Db()-\>query( "INSERT INTO `s_core_engine_elements` (" ."`type`, `label`, `required`, `position`, `domname`, `name`, " ."`variantable`, `help`, `translatable`" .") VALUES (" ."?, ?, ?, ?, ?, ?, ?, ?, ?" .")", array( $backendFieldType, $attribute['label'], 0, 0, $domname, $name, 0, $attribute['helptext'], 0 ) ); In ‘s_articles_attributes’ hab ich dann auch eine Spalte ‘a_testattr’ und in ‘s_core_engine_elements’ die entsprechende Zeile mit namen ‘a_testattr’. Was mache ich falsch?

Ok der Trick war nicht mit Freitext-Feldern zu arbeiten sondern die ExtJS-Schnitstelle zu benutzen. Vgl. Schuhgrößen Erweiterung

Ok ich habe mir jetzt eine Erweiterung mittels ExtJS gebastelt und das klappt auch soweit. Allerdings will mir der Inline-Editor in der Artikel-Liste mein Attribut nicht speichern. Dazu gibt’s eine Erweiterung der ‚list.js‘: //{block name="backend/article\_list/model/editable\_column/fields" append} { name: 'aTestAttr', type: 'tinyint(1)' }, //{/block} Und eine in der ‚grid.js‘: //{block name="backend/article\_list/view/main/grid" append} //{namespace name="backend/my\_plugin/main"} Ext.define('Shopware.apps.ArticleList.view.main.Grid.my\_plugin.view.main.Grid', { /\*\* \* Defines an override applied to a class. \* @string \*/ override: 'Shopware.apps.ArticleList.view.main.Grid', /\*\* \* Overrides the getColumns function of the overridden ExtJs object \* and inserts two new columns \* @return \*/ getColumns: function() { var me = this; //var columns = me.callParent(arguments); var columns = me.callOverridden(arguments); var column1 = { dataIndex: 'Attribute\_aTestAttr', header: 'Test Attribut', hidden: false, renderer: me.booleanColumnRenderer, width: 30, allowInGrid: true, type: 'boolean', editable: true }; column1.editor = me.getEditorForColumn(column1); columns = Ext.Array.insert( columns, columns.length - 1, [column1] ); return columns; } }); //{/block} Das normale Artikel-Detail-Formular speichert mein Attribut und die Liste gibt den Wert auch korrekt mit einem grünen Häkchen wieder.

Hallo!

Konntest du in der Zwischenzeit eine Lösung für das Speicherproblem über den Inline-Editor der Artikelliste finden? Ich habe aktuell das gleiche Problem, allerdings wird bei mir nicht einmal der aktive Zustand der Checkbox mit einem grünen Häkchen in der Artikelliste angezeigt. Der Zustand der Checkbox wird über die Artikeldetailansicht korrekt gespeichert.