Neu Bug: Template Datein des Child-Templates werden nicht bei include anweisungen geladen

  • JTL-Connect 2022: Ihr habt noch kein Ticket? Jetzt schnell sichern! Die PreConnect ist bereits ausgebucht, auch für die After-Show-Party auf der Ocean Diva sind nur noch wenige Plätze verfügbar! HIER geht es zum Ticketverkauf

  • Das Stable Release von JTL-Wawi 1.6 ist startklar: HIER gehts zum Forenbeitrag

Mai Lapyst

Neues Mitglied
27. August 2021
2
0
Hallo,

ich habe einen JTL- Shop auf der version 5.0.3, und möchte in einem NOVA Child Template (auf basis des offiziellen NOVAChild templates) die datei "productdetails/image.tpl" ersetzen. Laut Dokumentation soll ja reichen einfach die datei im child template anzulegen, also vlg.: "templates/NOVAChild/productdetails/image.tpl", was auch gemacht wurde. Datei und ordner-rechte sind wie beim NOVA template. Allerdings wenn ich dann die produktseite aufrufe wird immernoch das alte template geladen. (Shop caches sind alle geleert & deaktiviert)

Ich habe auch herausgefunden woran es liegt: der Shop prüft beim laden des templates ob es ein child template ist bzw ob es ein parent besitzt, wenn ja wird zuerst der template pfad des parents und danach der des schilds an Smarty übergeben. Wenn nun smarty auf eine include anweisung trifft (wie es bei der "productdetails/image.tpl" der fall ist) geht JTL zuerst her und prüft ob die datei auch im child vorhanden ist, wenn ja schreibt es die anweisung "leicht" um:

Code:
Vorher: "file:productdetails/image.tpl"
Nachher: "extends:[NOVA]productdetails/image.tpl|[frontend]productdetails/image.tpl"

Hier sieht man evtl schon woran es liegt: JTL teilt Smarty mitt das es zuerst im NOVA template suchen soll und danach erst im frontend (was das NOVAChild template ist). Dies kommt daher weil, wie oben erwähnt, zuerst NOVA und danach erst NOVAChild geladen wird.

Passt man nun die funktion an, das die template pfade an smarty übergibt:
includes/src/Smarty/JTLSmarty.php beginnend von zeile 111:
Code:
            if ($parent !== null) {
                self::$isChildTemplate = true;
                $this->assign('tplDir', \PFAD_ROOT . \PFAD_TEMPLATES . $parent . '/')
                    ->assign('parent_template_path', \PFAD_ROOT . \PFAD_TEMPLATES . $parent . '/')
                    ->assign('parentTemplateDir', \PFAD_TEMPLATES . $parent . '/')
                    ->addTemplateDir(\PFAD_ROOT . \PFAD_TEMPLATES . $parent, $parent);
            }
            $this->addTemplateDir(\PFAD_ROOT . \PFAD_TEMPLATES . $tplDir . '/', $this->context);
auf:
Code:
            $this->addTemplateDir(\PFAD_ROOT . \PFAD_TEMPLATES . $tplDir . '/', $this->context);
            if ($parent !== null) {
                self::$isChildTemplate = true;
                $this->assign('tplDir', \PFAD_ROOT . \PFAD_TEMPLATES . $parent . '/')
                    ->assign('parent_template_path', \PFAD_ROOT . \PFAD_TEMPLATES . $parent . '/')
                    ->assign('parentTemplateDir', \PFAD_TEMPLATES . $parent . '/')
                    ->addTemplateDir(\PFAD_ROOT . \PFAD_TEMPLATES . $parent, $parent);
            }
dann funktioniert es wie gedacht.

Mfg
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.225
257
Halle (Saale)
Den "extends:"-String musst du von rechts nach links lesen - die Reihenfolge ist wie sie original war korrekt.
Du musst im Child nur halt den Block mit angeben.

Beispiel für productdetails/image.tpl:
Code:
{block name='productdetails-image'}
    CHILD!!!
{/block}

funktioniert. Nur ohne den Block wird es nicht geladen.
 

Mai Lapyst

Neues Mitglied
27. August 2021
2
0
Das kann schon sein das das mit einem block funktioniert, aber das wäre ja eine block-ersetzung, hier sollte allerdings eine komplette datei-ersetzung stattfinden. Diese funktioniert allerdings nun halt mal im momentanen stand nicht ohne anpassungen im JTL-core.

Da auch in der dokumentation steht das gesamte strukturersetzungen möglich sind (siehe: https://jtl-devguide.readthedocs.io...template.html#anpassung-der-gesamten-struktur) sehe ich das momentan eher als einen bug.

Mfg
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Nova Template Product Stream Slider Bug JTL-Shop - Fehler und Bugs 4
Neu Bug Gelöst: ZIELVERSION develop-1.7 JTL-Wawi - Fehler und Bugs 14
Neu Bug bei Auftragszahlung über LS-POS seit Wawi 1.6 Fragen rund um LS-POS 2
PROBLEM/BUG bei Auftrag Übernahme in die JTL- POS JTL-Wawi 1.6 3
Neu Bug Syntaxprüfung Exportformate JTL-Shop - Fehler und Bugs 0
Neu Nach einem Upselling Verkauf wurden nicht alle Produkte in die WaWi übermittelt, ein bekannter Bug? Shopify-Connector 0
Neu Nova Child Template-Version Verständnisfrage Templates für JTL-Shop 2
Neu Nova Template: Mega Menu Darstellung der Unterkategorien Technische Fragen zu Plugins und Templates 5
Neu NOVA Template Darstellung Text und Artikel Templates für JTL-Shop 2
PayPal beim template Evo funktioniert nicht Einrichtung JTL-Shop5 2
Neu NOVA Template Theme mit komplett schwarzem Hintergrund - wie ansetzen? Templates für JTL-Shop 3
Neu Nova Template: Newsletter-Anmeldung im Footer anders anordnen Templates für JTL-Shop 1
Neu Nova-Template: Logo bzw. Header in groß und klein beim Scrollen (analog Evo-Template) Technische Fragen zu Plugins und Templates 5
Neu Eigene Smarty-Funktion - NOVA-Template Ausgabe Templates für JTL-Shop 0
Neu Schriftfarbe Link in Nova Template Body verändern Technische Fragen zu Plugins und Templates 2
Neu Nove-Template: Schattensaum des Headers entfernen Templates für JTL-Shop 2
Datenbank Update: Cannot load template-no template Upgrade JTL-Shop4 auf JTL-Shop5 1
Neu Automatisch Objekt und Template Cache leeren Betrieb / Pflege von JTL-Shop 0
Neu EVO Template Fehler bei abgeschalteten Kategorien im Megamenü Templates für JTL-Shop 3
Neu Nova Template Mega Menue Templates für JTL-Shop 6
Neu paypal plugin 2.1.1 für shop 5.1.2 mit evo Template Plugins für JTL-Shop 4
Neu angezeigte Tiefe des Kategoriebaums im Megamenü anpassen im NOVA Template Templates für JTL-Shop 0
Neu Update JTL 5.03 auf JTL 5.1.X möglich ohne Template-Änderungen (Nova)? Installation / Updates von JTL-Shop 0
NOVA-Template || Kategorie auf der Startseite Einrichtung JTL-Shop5 0
Neu Aviator Checkout Template Templates für JTL-Shop 1
NOVA-Template zeigt weiße Seite (HTTP 500) nach Upgrade von 4 auf 5 Upgrade JTL-Shop4 auf JTL-Shop5 1
Neu Nova Template Neue Artikel / Top Artikel / Sonderangebote anzeigen Templates für JTL-Shop 1
Neu php error log wg nova template Installation / Updates von JTL-Shop 0
Neu Top Bar JTL5 Template Templates für JTL-Shop 1
Neu Core-Variablen im Nova Child Template verwenden Allgemeine Fragen zu JTL-Shop 7
Neu NOVA Template Hover Button Farbe ändern Templates für JTL-Shop 3

Ähnliche Themen