Hallo zusammen, ich stehe zur Zeit vor dem Problem, die Artikelübersicht im Backend von Shopware 5 nicht erweitert zu bekommen. In Shopware 4 konnte ich es noch wie folgt lösen: PHP: Mit einem PostDispatch auf Enlight_Controller_Action_PostDispatch_Backend_ArticleList konnte ich das Model (article_list/model/list.js) und die View (article_list/view/list/list.js) erweitern: Model: //{block name="backend/article\_list/model/list/fields" append} { name: 'attr1', type: 'int' }, { name: 'attr2', type: 'int' }, { name: 'attr3', type: 'string' }, { name: 'attr4', type: 'string' }, { name: 'attr5', type: 'string' }, { name: 'shippingtime', type: 'string' }, { name: 'added', type: 'string' }, { name: 'sales', type: 'int' }, { name: 'impressions', type: 'int' }, { name: 'ean', type: 'string' }, { name: 'template', type: 'string' }, //{/block}
View (gekürzt): //{block name="backend/article\_list/view/main/grid" append} Ext.override(Shopware.apps.ArticleList.view.main.Grid, { getColumns: function() { var me = this, actionColumItems = []; actionColumItems.push({ action: 'edit', cls: 'editBtn', iconCls: 'sprite-pencil', handler: function(view, rowIndex, colIndex, item, opts, record) { Shopware.app.Application.addSubApplication({ name: 'Shopware.apps.Article', action: 'detail', params: { articleId: record.get('articleId') } }); } }); actionColumItems.push({ iconCls:'sprite-minus-circle-frame', action:'delete', handler: function (view, rowIndex, colIndex, item, opts, record) { me.fireEvent('deleteArticle', record); } }); return [{ header: me.snippets.columnNumber, dataIndex: 'number', flex: 2, editor: { regex: /^[a-zA-Z0-9-\_.]+$/, regexText: me.snippets.regexNumberValidation, allowBlank: false, enableKeyEvents:true, checkChangeBuffer:700 } }, { header: me.snippets.columnName, dataIndex: 'name', flex: 4, renderer: me.nameColumnRenderer, editor: { allowBlank: 'false' } }, { header: me.snippets.columnSupplier, dataIndex: 'supplier', flex: 3 }, { header: '{s name=backend\_changes/article\_list/template}Template{/s}', dataIndex:'template', flex: 1 }, { header: '{s name=backend\_changes/article\_list/ean}EAN{/s}', dataIndex:'ean', flex: 2 }, { header: '{s name=backend\_changes/article\_list/shippingtime}Lieferzeit{/s}', dataIndex:'shippingtime', flex: 1 }, { header: '{s name=backend\_changes/article\_list/added}Einstelldatum{/s}', dataIndex:'added', flex: 2 }, { header: '{s name=backend\_changes/article\_list/sales}sales{/s}', dataIndex:'sales', flex: 2 }, { header: '{s name=backend\_changes/article\_list/impressions}impressions{/s}', dataIndex:'impressions', flex: 1 }, { /\*\* \* Special column type which provides \* clickable icons in each row \*/ xtype: 'actioncolumn', width: 26 \* actionColumItems.length, items: actionColumItems }]; } }); //{/block}
Was muss ich in Shopware 5 überschreiben, um wieder diese Spalten angezeigt zu bekommen? Model und View sind so nicht mehr vorhanden… Viele Grüße Mathias
Guten Tag mbdus, die Spalten die Sie Anzeigen lassen möchtest lassen sich nun alle im Standard konfigurieren. In der Liste können Sie auswählen welche Spalten angezeigt werden sollen (siehe Anhang). Gruß, Simon Bäumer
Vielen Dank für die schnelle Antwort! Das habe ich auch schon gesehen. Allerdings konnte ich bspw. das Feld “template” in der Auswahl nicht finden. Ich nehme aber mal an, dass eine Erweiterung nicht erwünscht ist. Viele Grüße Mathias
Ich probiere jetzt einmal die ColumnConfigAction aus dem Controller ArticleList zu erweitern. Dann wird mir wahrscheinlich die Spalte angezeigt, allerdings ohne Werte…
So, wie vermutet wird mir mit Erweiterung der Funktion columnConfigAction die Spalte Template angezeigt, jedoch nicht die Werte. Die Werte hole ich mir mit Erweiterung der Funktion filterAction. Außerdem könnte ich mir über die erste Funktion eine bleibende Reihenfolge und Anzeige der Spalten erstellen. Jetzt stellt sich mir abschließend nur die Frage, ist das so gewollt? Oder kann man die Spalten irgendwo konfigurieren? Warum stehen nicht alle Spalten aus s_articles, s_articles_details und s_articles_attributes zur Auswahl? Und leider bleibt die Auswahl bei mir nicht lange erhalten. Ich muss diese immer wieder neu einstellen. An was ist diese gebunden. An die Session oder an den Benutzer? Vielen Dank im Voraus! Grüße
Hi, da werden tatsächlich nicht alle Spalten angezeigt, wir wollten die Kunden nicht völlig mit (internen) Feldern zubomben. Darum wurde das reduziert. Anscheinend hast du es ja jetzt grundsätzlich laufen. Das “Speichern” der Felder hängt am LocalStorage, da müsstest du lauter “extjs”-Einträge finden. Leerst du den zwischendurch vll? Daniel
Danke für die schnelle Antwort! Es kann schon vorkommen, dass hin und wieder der LocalStorage gelöscht wird. Das ist etwas unschön gelöst… Aber ich werde mir jetzt die bleibende Anzeige und die Reihenfolge über die Erweiterung der Function ColumnConfigAction einstellen. Nochmals danke für die Informationen!