Einfaches Backend-Plugin wirft Fehler

Hallo zusammen,

ich bin neu in der Plugin-Entwicklung, daher sorry für die Frage…

Ich möchte ein einfaches Plugin entwickeln, welches den Blog-Dialog im Backend mit einem zusätzlichen Tab versieht, auf dem weitere Informationen eingegeben werden sollen. Im folgenden der relevante Quellcode zur Erzeugung des Tabs. Ich habe mich an den Tutorials im Developer-Bereich orientiert. Aus mir absolut nicht verständlichen Gründen erscheint nach Aktivieren des Plugins nun beim Aufruf des Menüpunktes „Inhalte > Blog“ folgende Fehlermeldung:

SyntaxError: Unexpected token :
    at http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:5361
    at Object.Ext.globalEval (http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:5369)
    at Object.success (http://dev.midevelop.de/backend/base?file=bootstrap&loggedIn=1479396099:477:5)
    at Object.callback (http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:67496)
    at i.onComplete (http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:422670)
    at i.onStateChange (http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:422314)
    at XMLHttpRequest. (http://dev.midevelop.de/engine/Library/ExtJs/ext-all.js?201611151410:21:17406)

Nachdem ich jetzt zig Stunden in die Fehlersuche gesteckt habe, bin ich so langsam mit meinem Latein am Ende. Ich hoffe, hier kann mir jemand auf die Sprünge helfen…

Danke!!!
Mathias

 

MdevBlogEssentials.php:

scheduleClearCache(InstallContext::CACHE_LIST_DEFAULT);
    }

    public function activate(ActivateContext $context)
    {
        $context->scheduleClearCache(InstallContext::CACHE_LIST_DEFAULT);
    }

    public function deactivate(DeactivateContext $context)
    {
        $context->scheduleClearCache(InstallContext::CACHE_LIST_DEFAULT);
    }

    public function uninstall(UninstallContext $context)
    {
    }
    
    public function build(ContainerBuilder $container)
    {
        $container->setParameter('MdevBlogEssentials.PluginDir', $this->getPath());
        parent::build($container);
    }    

    
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Backend_Blog' => 'extendBlogDetails'
        ];
    }
    
    public function extendBlogDetails(\Enlight_Event_EventArgs $args)
    {
        $extendBlogDetails = $this->container->get('Mdev.BlogEssentials.ExtendBlogDetails');
        $extendBlogDetails->execute($args);        
    }    
}

 

ExtendBlogDetails.php:

pluginDir = $pluginDir;
    }
        
    public function execute(\Enlight_Controller_EventArgs $args)
    {
        $controller = $args->getSubject();
        $view = $controller->View();
        $view->addTemplateDir(
             $this->pluginDir . '/Resources/Views/'
        );

        $request = $controller->Request();
        if ($request->getActionName() == 'index') {
            $view->extendsTemplate('backend/ExtendBlog/app.js');
        }
        if ($request->getActionName() == 'load') {
            $view->extendsTemplate('backend/ExtendBlog/view/window.js');
        }
    }
}

 

plugin.xml:

    Blog Essentials
    Blog Essentials

    0.1.1
    
    Mathias Mittelhäuser
    

    
        In Entwicklung
        In Development

 

Resources/services.xml:

            %MdevBlogEssentials.PluginDir%

 

Resources/Views/backend/ExtendBlog/app.js:

//{block name="backend/blog/view/blog/app" append}
// {include file="backend/ExtendBlog/view/tab.js"}
//{/block}

 

Resources/Views/backend/ExtendBlog/view/tab.js:

Ext.define('Mdev.BlogEssentials.ExtendBlog.view.Tab', {
    extend: 'Ext.panel.Panel',
    border: false,
    alias: 'widget.blog-blog-detail-essentials',
    region: 'center',
    autoScroll:false,
    layout: 'border',
    ui: 'shopware-ui',

    initComponent: function() {
        var me = this;

        me.callParent(arguments);
    }
});

 

Resources/Views/backend/ExtendBlog/view/window.js:

//{block name="backend/blog/view/blog/window" append}
Ext.define('Mdev.BlogEssentials.ExtendBlog.view.Window', {
    override: 'Shopware.apps.Blog.view.blog.Window',

    initComponent:function () {
        var me = this;
        
        me.callParent(arguments);
    },  

    getTabs: function() {
        var me = this;
        var result = me.callParent();
        
        result.push(
            {
                xtype: 'blog-blog-detail-essentials',
                title: 'Hallo Welt!!!'
            }
        );

        return result;
   }
});
//{/block}

 

Bei den von dir geposteten ExtJs Schnipseln ist alles in Ordnung. Arbeitest du zufällig mit macOS? Wenn ja prüfe mal, ob der Code evtl. verstecke Steuerzeichen enthält.