Welche Smarty-Blöcke werden von dem CDN-Plugin überschrieben?

Bitte beachten Sie, dass dieser Hilfecenter-Artikel ausschließlich für das Shopware 5 CDN-Plugin gültig ist.


CSS

Das Shopware 5 Plugin überschreibt für die globale CSS-Auslieferung den Smarty-Block:

# /Resources/Views/frontend/index/index.tpl

{block name="frontend_index_header_css_screen"}

{* creoline CDN *}

{/bblock}



JS

Das Shopware 5 Plugin überschreibt für die globale JS-Auslieferung den Smarty-Block:

# /Resources/Views/frontend/index/index.tpl und /Resources/Views/frontend/index/header.tpl

{block name="frontend_index_header_javascript_modernizr_lib"}

{* creoline CDN *}

{/block}

{block name="frontend_index_header_javascript_jquery_lib"}

{* creoline CDN *}

{/block}



Weshalb können zusätzliche Plugins den Block nicht ebenfalls überschreiben?

Damit das CDN einwandfrei funktioniert und alle CSS-Dateien sowie JavaScript-Dateien über CDN ausliefern kann, müssen alle verwendeten CSS- und JS-Dateien korrekt über den Media Manager eingebunden werden.


Häufig werden von Plugin-Entwicklern die Smarty-Blöcke dazu genutzt, um zusätzliche CSS- oder JavaScript-Dateien bereitzustellen, anstelle diese über das Plugin System zu laden. In diesem Fall kann das CDN-Plugin die Dateien nicht ermitteln und deshalb auch keine CDN-Version bereitstellen.


Bitte informieren Sie in diesem Fall den jeweiligen Plugin-Hersteller und bitten Sie diesen, CSS- und JS-Dateien über das Plugin-Event-System von Shopware 5 zu integrieren.



CSS und JS über das Plugin-System bereitstellen


Shopware Events zur Registrierung von Less (CSS) und JavaScript:

Theme_Compiler_Collect_Plugin_Less

Theme_Compiler_Collect_Plugin_Javascript


Beispiel-Implementierung für Shopware 5 Plugin

public static function getSubscribedEvents() {
    return [
        'Theme_Compiler_Collect_Plugin_Less' => 'addLessFiles',
        'Theme_Compiler_Collect_Plugin_Javascript' => 'addJavaScriptFiles',
    ];
}

<br>

public function addLessFiles()
{
    return new LessDefinition(
        [],
        [
            __DIR__ . '/Views/frontend/_public/src/less/example.less'
        ]
    );
}

public function addJavaScriptFiles()
{
    return new ArrayCollection([
        __DIR__ . '/Views/frontend/_public/src/js/example.js'
    ]);

}