Neu EVO Child-Template - JavaScript Dateien einbinden/ entfernen

StevenS

Mitglied
6. September 2018
6
0
Guten Tag,

in meinem Child-Template werden außnahmslos alle JS-Datein eingebunden (Einstellung: nicht komprimiert).
Nun frage ich mich: wo kontrolliere ich welche Datei eingebunden werden soll?

In der footer.tpl habe ich schon eine Interessante Stelle gefunden:
<script>
jtl.load({strip}[
{* evo js *}
{if !isset($Einstellungen.template.general.use_minify) || $Einstellungen.template.general.use_minify === 'N'}
{if isset($cPluginJsHead_arr)}
{foreach from=$cPluginJsHead_arr item="cJS"}
"{$cJS}?v={$nTemplateVersion}",
{/foreach}
{/if}
{else}....

Nun wundere ich mich, wieso er auf die "templates/Evo/js"-Datein zurückgreift.
Wo kann ich das kontrollieren? Also JS-Dateien in meinem Template einbinden und entfernen?

Vielen Dank.

Mit freundlichen Grüßen,
Steven
 

Anhänge

  • js-network.PNG
    js-network.PNG
    110,1 KB · Aufrufe: 28
  • Einstellungen.PNG
    Einstellungen.PNG
    28,4 KB · Aufrufe: 29

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Ein Child Template verwendet immer die Daten des Haupt Templates und modifiziert einzelnes wenn es erforderlich ist.
Es ist also richtig das die JavaScripts aus dem Evo geladen werden. wenn du auf diese verzichten möchtest könntest du mit dem Parameter override="true" z.B. auf eine Leere Datei verweisen aber warum solltest du das tun, das JS was eingebunden ist wird vom Evo benötigt.
 

StevenS

Mitglied
6. September 2018
6
0
Hallo Servicepartner,

vielen Dank für deine schnelle Antwort.

Das habe ich mir schon gedacht. Ja, einige JS-Dateien braucht der Shop. Aber ich glaube nicht alle 32.

Also soll ich in der template.xml die Dateien auf < override="true" > setzen?

<JS Name="jtl3.js">
<File Path="js/jquery.touch.min.js" override="true"/>
<File Path="js/jquery.backstretch.min.js"/>
<File Path="js/jquery.dimension.js"/>
<File Path="js/jquery.offcanvas.js"/>
<File Path="js/jquery.nivo.slider.pack.js"/>
<File Path="js/jquery.waitforimages.js"/>
<File Path="js/jquery.lazy.js"/>
<File Path="js/jquery.serialize-object.js"/>
<File Path="js/bootstrap.min.js"/>
<File Path="js/bootstrap-tabdrop.js"/>
<File Path="js/bootstrap-slider.js"/>
<File Path="js/bootstrap-modal.js"/>
<File Path="js/bootstrap-grid.js"/>
<File Path="js/bootstrap-toolkit.js"/>
<File Path="js/bootstrap-select.js"/>
<File Path="js/bootstrap-hover-dropdown.min.js"/>
<File Path="js/jtl.evo.js"/>
<File Path="js/jtl.article.js"/>
<File Path="js/jtl.basket.js"/>
<File Path="js/jtl.io.js"/>
<File Path="js/jtl.gallery.js"/>
<File Path="js/typeahead.bundle.js"/>
<File Path="js/photoswipe.js"/>
<File Path="js/slick.js"/>
<File Path="js/spin.js"/>
<File Path="js/global.js"/>
<File Path="js/Chart.js" DependsOnSettingGroup="CONF_PREISVERLAUF" DependsOnSetting="preisverlauf.preisverlauf_anzeigen" DependsOnSettingValue="Y"/>
</JS>

Hey, das ist doch die <Minify> Sektion - und diese springt doch erst an, wenn Man die CSS- und JS-Dateien minified?
Ich möchte definitiv selbst bestimmen, welche Dateien wann wo eingebunden werden.
In dieser Version tauchen .JS-Dateien scheinbar aus dem nichts auf. Wo werden diese denn referenziert?

Besten Dank.

Schöne Grüße aus dem Norden,
Steven
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Das wird nicht gehen, also alle diese Dateien benötigt der Shop, einzig das Chart.js und das typeahead.bundle.js da wäre ich mir jetzt nicht sicher wann das zum tragen kommt, bzw. ob es bei jeder Shop Konfiguration vorhanden sein muss.
Klar, auf der Startseite benötige ich nicht alle aber das lässt sich nicht trennen. kommen noch Plugins hinzu werden es auch gerne mal 40 oder mehr JavaScripts.
Wenn aber alles minifiziert wurde entsteht aus diesen 27 Files eins und dann in der Regel noch mal eins bzw. je nachdem auch zwei für die Plugins.

Du kannst also davon ausgehen, entfernst du eines davon funktioniert der Shop nicht mehr richtig, aber probier es einfach mal aus.
 

StevenS

Mitglied
6. September 2018
6
0
Hallo Berliner,

vielen Dank für deine schnelle und ausführliche Hilfe.

Du hast recht: beim Komprimieren werden aus diesen 27 JS-Dateien eine jtl3.js in der Größe von (bei mir) 384 KB.
Dabei wird nicht alles JS auf allen Seiten benötigt - was unnötig KB kostet.

Meine Lösung: ich nehme alle JS-Dateien raus, die ich nicht zwangsläufig für den Shop benötige, komprimiere diese händisch und injecte diese Datei
in die template.xml, sodass man im Backend zwischen "Komprimierung von JavaScript- und CSS-Dateien" wählen kann.
Dadurch habe ich die Wahl zwischen Entwicklungs- und Live-Modus und kontrolliere alles JS Code, der im Shop auftaucht.

Beste Grüße,
Steven
 

Ähnliche Themen