Hallo, ich versuche gerade per Plugin ein Einkaufswelt-Element mit eigener ExtJS Komponente zu erstellen, allerdings endet das ganze in einem Javascript-Error sobald man das Element bearbeiten will. Shopware 5.0.2 [code]Bootstrap.php<?php class Shopware_Plugins_Backend_BlogEmotionComponent_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
const VERSION = ‚1.0.0‘;
public function getLabel()
{
return 'Emotion-Element: Blogeinträge';
}
public function getVersion()
{
return self::VERSION;
}
public function install()
{
$this->createEmotionComponents(); return true; } private function createEmotionComponents() { $component = $this-\>createEmotionComponent(array( 'cls' =\> 'emotion-blog-integration', 'name' =\> 'Blog-Integration', 'template' =\> 'emotion-blog-integration', 'xtype' =\> 'emotion-blog-integration' )); // einige settings mit $component-\>createTextField() .. } } [/code] [code] Views/emotion\_components/backend/emotion\_blog\_integration.js Ext.define('Shopware.apps.Emotion.view.components.BlogIntegration', { extend: 'Shopware.apps.Emotion.View.components.Base', alias: 'widget.emotion-blog-integration', initComponent: function() { var me = this; me.callParent(arguments); } }); [/code] Nach der Installation habe ich alle Caches geleert und das Backend neu gestartet. In der Designer-Ansicht der Einkaufswelt taucht mein Element auf und ich kann es ins Grid ziehen. Sobald ich es bearbeiten will fliegt folgender Fehler (inkl. Stacktrace): [code] Uncaught TypeError: Cannot read property 'substring' of undefined Ext.ClassManager.parseNamespace @ ext-all-debug.js?201507160826:4493 Ext.ClassManager.get @ ext-all-debug.js?201507160826:4601 Ext.ClassManager.instantiate @ ext-all-debug.js?201507160826:4839 Ext.ClassManager.instantiateByAlias @ ext-all-debug.js?201507160826:4821 Ext.apply.widget @ ext-all-debug.js?201507160826:5098 Ext.define.create @ ext-all-debug.js?201507160826:44907 Ext.define.lookupComponent @ ext-all-debug.js?201507160826:75477 Ext.define.prepareItems @ ext-all-debug.js?201507160826:75449 Ext.define.add @ ext-all-debug.js?201507160826:75500 Ext.define.initItems @ ext-all-debug.js?201507160826:75344 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initItems @ ext-all-debug.js?201507160826:91915 Ext.define.initComponent @ ext-all-debug.js?201507160826:75328 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initComponent @ ext-all-debug.js?201507160826:91905 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initComponent @ ext-all-debug.js?201507160826:92206 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.override.initComponent @ base?file=bootstrap&loggedIn=1448378636:1273 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initComponent @ ext-all-debug.js?201507160826:110583 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initComponent @ base?file=bootstrap&loggedIn=1448378636:1657 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.initComponent @ /backend/Emotion/load/?f=m/Emotion|m/EmotionElement|m/Component|m/Field|m/Attribute|m/BannerSlider|…:2400 Ext.define.constructor @ ext-all-debug.js?201507160826:45265 Base.implement.callParent @ ext-all-debug.js?201507160826:3735 Ext.define.constructor @ ext-all-debug.js?201507160826:57622 constructor @ ext-all-debug.js?201507160826:4334 (anonymous function) @ VM16752:3 Ext.ClassManager.instantiate @ ext-all-debug.js?201507160826:4876 (anonymous function) @ ext-all-debug.js?201507160826:1840 Ext.apply.create @ ext-all-debug.js?201507160826:3311 Ext.define.onOpenSettingsWindow @ /backend/Emotion/load/?f=m/Emotion|m/EmotionElement|m/Component|m/Field|m/Attribute|m/BannerSlider|…:5141 Ext.util.Event.Ext.extend.fire @ ext-all-debug.js?201507160826:8638 Ext.override.dispatch @ base?file=bootstrap&loggedIn=1448378636:657 Ext.override.fireEvent @ ext-all-debug.js?201507160826:58383 Ext.define.onOpenSettingsWindow @ /backend/Emotion/load/?f=m/Emotion|m/EmotionElement|m/Component|m/Field|m/Attribute|m/BannerSlider|…:1774 me.getEl.on.click.fn @ /backend/Emotion/load/?f=m/Emotion|m/EmotionElement|m/Component|m/Field|m/Attribute|m/BannerSlider|…:1382 (anonymous function) @ VM17084:7 wrap @ ext-all-debug.js?201507160826:9260 [/code] Wie man sieht habe ich schon auf ext-all-debug.js umgestellt um dem Fehler auf die Schliche zu kommen. Der vierte Eintrag im Stacktrace zeigt, dass Ext versucht, die Komponente nach alias zu instantiieren: Ext.ClassManager.instantiateByAlias @ ext-all-debug.js?201507160826:4821 In der entsprechenden Map ist meine Komponente allerdings nicht gelistet, obwohl sie geladen wurde (verifiziert indem ich die Responses vom Shop beim Laden beobachtet habe, hier wird eine Datei geladen, die u.A. auch meine Komponente enthält) Hat das schon mal jemand gehabt oder kann mir einen Tip geben?