Hallo zusammen,
ich versuche aktuell, die Shopseiten um ein zusätzliches Attribut zu erweitern. In der Bootstrap.php füge ich die Attribute in die Datenbank ein - das funktioniert wunderbar.
private function createAttributes()
{
$this->Application()->Models()->addAttribute(
's_cms_static_attributes',
'dw',
'css_classes',
'varchar(255)',
true,
null
);
$this->getEntityManager()->generateAttributeModels(array(
's_cms_static_attributes'
));
}
Beim Aufrufen der Seiten im Backend wird das Attribut auch mit ausgeliefert - leider wird der Wert im Formular aber nicht angezeigt. DEn Block habe ich überschrieben:
//{block name="backend/site/model/nodes/fields" append}
{ name:'dwCssClasses', type:'string' },
//{/block}
Und auch das Formular:
//{block name="backend/site/view/site/form" append}
//{namespace name="backend/dw_shoppages_custom_css_classes/main"}
Ext.define('Shopware.apps.Site.view.site.customcssclasses.Form', {
/**
* Defines an override applied to a class.
* @string
*/
override: 'Shopware.apps.Site.view.site.Form',
getContentField: function() {
var me = this;
return [
{
name: 'helperId',
xtype: 'hidden'
},
{
name: 'parentId',
xtype: 'hidden'
},
{
fieldLabel: '{s name=formContentFieldDescriptionLabel}Description{/s}',
xtype: 'textfield',
emptyText: '{s name=formContentFieldDescriptionEmptyText}Page name{/s}',
name: 'description',
allowBlank: false,
anchor:'100%'
},
{
fieldLabel: '{s name=formContentFieldHtmlEditorLabel}Content{/s}',
xtype: 'tinymce',
name: 'html',
anchor:'100%',
height: 300
},
{
fieldLabel: 'CSS Classes',
xtype: 'textfield',
emptyText: 'CSS Classes',
name: 'attributes[dwCssClasses]',
allowBlank: true,
anchor:'100%'
},
me.getDdSelector()
]
},
});
//{/block}
In der Response sehe ich wie gesagt den Attribut-Wert am Node-Objekt (den hatte ich zuvor manuell in die DB eingetragen) - der Wert wird aber nicht im Formular angezeigt. Hat jemand einen Tipp, was ich noch ändern muss? Danke!