Hey shopware-Community,
ich würde gerne im Downloadbereich eines Artikels ein Feld hinzufügen, in das man eine Kategorie eintragen kann.
Das ganze soll auch im Grid dargestellt werden und in der Datenbank gespeichert werden.
Ich habe mich schon mit der Doku und dem Shopware Buch zu dem Thema auseinandergesetzt, jedoch scheitere ich am ExtJs-Teil.
Wenn ich es richtig sehe, müsste ich in meinem speziellen Fall “nur” die Dateien “backend/article/view/resources/downloads.js” & “backend/article/model/download_attribute.js” anpassen.
Ich habe mich an das “Enlight_Controller_Action_PostDispatchSecure_Backend_Article”-Event gehängt und meine eigenen Views bei der “load”-Action geladen.
Das Datenbankfeld habe ich per “shopware_attribute.crud_service” in die Tabelle “s_articles_downloads_attributes” eingefügt.
Meine “backend/article/view/resources/downloads.js”:
/**
*
*/
//{block name="backend/article/view/resources/downloads" append}
Ext.define('Shopware.apps.OgAddDownloadCategories.view.resources.Downloads', {
override: 'Shopware.apps.Article.view.resources.Downloads',
alias: 'widget.article-resources-downloads',
createDownloadForm: function() {
var me = this,
form = me.callParent(arguments),
items = form.down('items');
items.insert(
{
xtype: 'combobox',
name: 'download_category',
fieldLabel: 'Download Category',
displayField: 'download_category',
valueField: 'download_category',
store: me.createCategoryStore()
}
);
return form;
},
createCategoryStore: function() {
return Ext.create('Ext.data.Store', {
fields: [
{ name: 'download_category' }
],
data: [
{ name: 'Rezepte' },
{ name: 'Anleitungen' },
{ name: 'Broschüren' },
{ name: 'Videos' }
]
})
},
createDownloadGrid: function() {
var me = this,
grid = me.callParent(arguments),
columns = grid.down('columns');
columns.insert(
{
header: 'Category',
dataIndex: 'download_category',
flex: 1
}
)
}
});
Meine “backend/article/model/download_attribute.js”:
/**
*
*/
//{block name="backend/article/model/download_attribute" append}
//{block name="backend/article/model/download_attribute/fields"}
{ name: 'download_category', type: 'string' }
//{/block}
//{/block}
Ich habe mir den ExtJs-Teil ein wenig zusammen gereimt, also schmeißt bitte nicht mit Steinen nach mir
Vielleicht kann mir jemand weiterhelfen.
Grüße Oliver