Neu JS in Template Datei einfügen

Hanseo

Mitglied
29. Dezember 2017
5
0
Hallo Board,
ich bin kompletter Newbie was JTL betrifft. Ich habe mit mehreren Suchen hier im Forum nach einer Antwort gesucht, aber keine gefunden. Ich möchte nahe am <head> Tag JavaScript-Code einfügen. Ich habe einiges probiert, z.B. den Evo Theme Editor, aber es hat nicht funktioniert. Ich kann per FTP auf den Shop zugreifen, weiß aber nicht, welche Datei ich editieren muss. Kann mir jemand dabei helfen?
 

DrGreen

Mitglied
24. Dezember 2017
58
3
Hallo Hanseo,

was möchtest du denn einfügen bzw. damit erreichen.

Ich habe zum Beispiel einen Chat auf meiner Webseite, da musste ich auch ein JavaScript einfügen und habe das einfach unter Boxenverwaltung -> Footer gemacht.

Einfach eine neue Box (Eigene Box) erstellen und auf bearbeiten gehen. Dann umstellen auf HTML Code-Ansicht, Sript einfügen, speichern und lief.

Wenn du dich nicht so gut damit auskennst möchte ich dir davon abraten direkt in den Dateien etwas zu verändern.
 

Hanseo

Mitglied
29. Dezember 2017
5
0
HalloDrGreen und Tom,
es geht um Trackingcode der Suchmaschine Yandex. Der sollte möglichst nahe am Kopf der Seite eingefügt werden, damit er zuerst geladen wird. Gibt es nicht ein .tpl-Datei, in der ich so etwas wie <head></head> finde? Der Aufbau von JTL Templates ist mir leider gar nicht vertraut.
 

nmueller

Sehr aktives Mitglied
5. April 2011
1.262
79
Saarland
Du könntest das JS in deinen Templateordner legen:

templates/dein-template/js/custom.js

Dann eine eigene header.tpl erstellen in:

templates/dein-template/layout/header.tpl

mit dem Inhalt

Code:
{extends file="{$parent_template_path}/layout/header.tpl"}
 
    {block name="head-meta" append}
    <script src="{$currentTemplateDir}js/custom.js"></script>
    {/block}
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.084
228
Halle
Hallo, die custom.js wird vom Evo automatisch über den Footer dynamisch eingebunden. Ein explizites Laden per header.tpl führt hier also zu Dopplungen!
 

dimdum

Aktives Mitglied
15. August 2007
10
0
Arnsberg
Hallo

ich versuche einen Java Code von dem Statistik Tool Piwik/ Matomo einzubinden.
Dies soll nach Möglichkeit direkt vor dem </head> ausgeführt werden.

Wenn ich es wie von nmueller beschreiben einfüge bekomme ich keine Daten ins System.
Ich hatte es schon mal in der head.tpl eingeführt aber dann wurden im Shop die Artikel und Serien Ansichten nicht richtig angezeigt.
Der Code (mal abgesehen von der Domain Kennung) funktioniert so schon in einem anderen CMS und ist direkt vom Hersteller so definiert.

wo könnte man diesen Code am sinnvollsten einfügen?

<!-- Matomo -->
<script type="text/javascript">
var _paq = _paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//www.domain.de/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->

Vielen Dank für Vorschläge im Voraus.

Gruß
Sebastian
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.146
189
@dimdum: Weil du im Script die geschweiften Klammern nicht escapest. Geschweifte Klammern werden auch in der Smarty-Syntax verwendet, daher wirst du hier zu 100% einen JS Fehler um die Ohren bekommen, daher kein Loggen der Zugriffe. Entweder du packst ein {literal} {/literal} um das gesamte Script oder du ersetzt alle { durch {ldelim} und alle } durch {rdelim}.
 

dimdum

Aktives Mitglied
15. August 2007
10
0
Arnsberg
Ich habe mir das Plugin für die 10 tägige Testphase mal eingebaut.
Was irritierend ist, dass im Shop Backend 200-500 Besucher am Tag angezeigt werden (JTL Standart Anzeige) aber in Piwik, dass über das Plugin eingebunden ist nur 2-3 Besucher am Tag...
Woran kann das liegen?
Anbei ein Screenshot aus Piwik und einer aus dem JTL Backend.
 

Anhänge

nmueller

Sehr aktives Mitglied
5. April 2011
1.262
79
Saarland
@FPrüfer

Hallo, die custom.js wird vom Evo automatisch über den Footer dynamisch eingebunden. Ein explizites Laden per header.tpl führt hier also zu Dopplungen!
Bei mir läd das auf der EVO basierende Custom Theme keine js Dateien "von selbst". Entweder, ich integriere die js in die Template-Dateistruktur und binde sie in meinem Template im Header oder Footer ein, oder ich erstelle daraus ein Plugin, welches die js über die XML läd.

Das hier war im Prinzip genau, was ich meinte..

In ein Custom-Theme und dann in eine modifizierte footer.tpl
Irgendwie haben wir uns hier glaube ich missverstanden, oder ich stehe auf dem Schlauch.

Btw. hätte ich wohl besser beispiel.js oder deine.js geschrieben - schätze du störst dich an der "custom.js" Formulierung, die von mir jetzt aber tatsächlich nicht in dem Zusammenhang angedacht war.
 
Zuletzt bearbeitet:

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.084
228
Halle
schätze du störst dich an der "custom.js" Formulierung, die von mir jetzt aber tatsächlich nicht in dem Zusammenhang angedacht war.
Genau das ist aber der Unterschied! Eine custom.js im Pfad /js des Child-Templates wird automatisch geladen und zwar GENAU diese! Für eine beispiel.js oder deine.js oder in anderen Pfaden abgelegte JS-Dateien gilt das nicht!
 

nmueller

Sehr aktives Mitglied
5. April 2011
1.262
79
Saarland
oki, ist natürlich richtig :) Hatte ich in dem Moment nicht mehr auf dem Schirm und "custom.irgendwas" ist ja doch eine gängige Formulierung für Beispiele. Mein Fehler.
 

Über uns

  • In unserem moderierten JTL-Forum könnt Ihr Euch themenbezogen mit der JTL-Community rund um die Produkte von JTL, passende Erweiterungen und den E-Commerce im Allgemeinen austauschen, Tipps und Tricks teilen sowie Verbesserungswünsche und Fehler diskutieren.

    Unsere Forumsnutzer helfen sich untereinander auch gerne weiter, wenn Sie mal nicht weiterkommen oder einen Ratschlag benötigen.

Schnell-Navigation

Benutzer Menü