Neu Template durch plugin überschreiben

algonix

Neues Mitglied
26. Mai 2020
7
0
Guten Morgen,
Ich versuche derzeit das template box_filter_characteristics.tpl über ein plugin zu überschreiben. Das klappt soweit auch gut über den HOOK => \HOOK_SMARTY_OUTPUTFILTER. Überschrieben wird das template durch das ursprüngliche, modifizierte box_filter_characteristics.tpl. Allerdings rendert das modifzierte template nicht . Das debuggen zeigt, dass zuvor in der Bootstrap.php übergebenen variablen die für das template benötigt werden keine Werte haben.

Konkret:
Die variable $oBox wird vom template (box_filter_characteristics.tpl)benötigt allerdings hat diese zum Zeitpunkt der hookausführung keinen Wert zugewiesen. Normalerweise sollte dies aber nicht der Fall sein oder? Da der \HOOK_SMARTY_OUTPUTFILTER am "Ende des Smarty-Output Filters" ausgeführt wird?

Globale variablen können innerhalb des Plugins regulär über den namen verwendet werden ($oBox), oder muss ich hier etwas beachten?

Viele Grüße
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.706
355
Wenn Du eine ganze TPL-Datei überschreiben willst, nutze den Hook 208. Damit hast Du vollen Zugriff auf alle in dieser TPL verwendeten Variablen/Objekte, anders als bei Hook 140. Hoock 140 dient in erster Linie dazu, Code per PHP-Query (ähnliche JQuery) per Selektor zu manipulieren. Weiter muss man sich alle Variablen vorher über die Methode Shop::Smarty()->getTemplateVars() ziehen bevor man Zugriff hat.
 

MaxWe

Sehr aktives Mitglied
6. August 2018
315
42
Hamburg
Moin Moin,
ich entführe den Thread einfach mal.

Ich versuche grade eine Templatefile via HOOK 208 zu überschreiben. Grundsätzlich würde es mir auch reichen einzelne Blöcke zu überschreiben..
Ich verstehe die HOOKS leider noch nicht so ganz :/
Aktuell versuche ich es via HOOK 208 so:
Code:
<?php
/**
* Hook HOOK_SMARTY_FETCH_TEMPLATE
*
* @global String &$original
* @global String &$custom
* @global String &$fallback
* @global String &$out
*/

if(strpos($original,'variationen')){
    $out = $oPlugin->cFrontendPfad.'templates/'.'variationen.tpl';
}
Allerdings ohne Erfolg, wie greift man denn die richtige .tpl ab und gibt seine eigene weiter?

Wäre für meinen Fall allerdings vielleicht der HOOK 140 besser geeignet? Wie gesagt, einzelne Blöcke würden mir theoretisch reichen. Allerdings scheint mir das mittels phpquery recht aufwendig..

Beste Grüße
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Versuchst du das in Shop 5?
Dann reicht es, im Plugin die Struktur der zu überschreibenden Templatedatei nachzubilden und den Block zu erweitern.
Für die Templatedatei NOVA/productdetails/variation.tpl würde das heißen, im Plugin die Datei
<pluginverzeichnis>/frontend/templates/productdetails/variation.tpl
erstellen und darin den im Template definierten Block erweitern, z.B. via
Code:
{block name='productdetails-variation' append}
Ich bin Inhalt, der angehängt wird.
{/block}
 

MaxWe

Sehr aktives Mitglied
6. August 2018
315
42
Hamburg
Versuchst du das in Shop 5?
Dann reicht es, im Plugin die Struktur der zu überschreibenden Templatedatei nachzubilden und den Block zu erweitern.
Für die Templatedatei NOVA/productdetails/variation.tpl würde das heißen, im Plugin die Datei
<pluginverzeichnis>/frontend/templates/productdetails/variation.tpl
erstellen und darin den im Template definierten Block erweitern, z.B. via
Code:
{block name='productdetails-variation' append}
Ich bin Inhalt, der angehängt wird.
{/block}
Sorry, hatte ich ganz vergessen! Ich nutze den Shop 4 und würde es auch gerne dafür umsetzen..
Hättest du da eventuell auch eine Lösung?

Davon ab scheint es in der Version 5 deutlich einfacher geworden zu sein!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Child Template 5.6 zu 5.7 Allgemeine Fragen zu JTL-Shop 3
Neu Amazon Hinweis: Bestätigung durch Unterschrift wird empfohlen Amazon-Anbindung - Ideen, Lob und Kritik 0
Überverkauf durch Variantenkäufe JTL-Wawi 1.11 6
Neu 🚨 Sicherheitswarnung für JTL-Shop-Betreiber: Manipulation des Checkout-Prozesses durch externes JavaScript (Magecart- / Payment-Skimmer) Betrieb / Pflege von JTL-Shop 11
Neu Überlastung durch Bots, KI, Suchmaschinen Allgemeine Fragen zu JTL-Shop 2
Neu Plugin: Infinite Scroll / „Mehr laden“ für JTL-Shop 5 – einmalige Lizenz, kein Abo Plugins für JTL-Shop 0
Beantwortet Plugin über Pluginmanager deinstalliert – Einträge in tpluginmigration verblieben – einfach löschen? Plugins für JTL-Shop 1
Neu PlugIn: GLS Privatkundenlabels sollen über den Packtisch ausgegeben können / Schnittstelle zu GLS Privat Dienstleistung, Jobs und Ähnliches 0
Neu 💚 Plugin: DZM Bonus Plus - das Treueprogramm für deinen JTL-Shop Plugins für JTL-Shop 12
Neu Stripe plugin mit JTL SHOP Error 500 Plugins für JTL-Shop 2
Neu css Einstellungen Paypal Plugin von JTL JTL-Shop - Fehler und Bugs 1
Neu 💚 Plugin: DZM Agentic Plus - dein Shop wird für KI-Agenten lesbar und abfragbar Plugins für JTL-Shop 0
Neu JTL-Shop 5 Backup Professional Plugin Plugins für JTL-Shop 0
Neu Plugin trotz Hinweis Kompatibel mit JTL-Shop bis 5.6.* auch unter 5.7.2 nutzen Plugins für JTL-Shop 2
Neu Mail mit Plugin zum testen der Sicherheitslücke echt? Allgemeine Fragen zu JTL-Shop 47
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1

Ähnliche Themen