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

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.362
340
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
Verwiesen an Support BUG: Mahnlauf über Workflow ignoriert Zahlungsziel JTL-Workflows - Fehler und Bugs 3
Verwiesen an Support BUG: WMS Pickliste ohne Nummer? JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu [BUG] Erweiterter Filter "Laufend bei Ebay" funktioniert nicht mehr [v1.8.xx & 1.9.x.x] JTL-Wawi - Fehler und Bugs 6
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 1
BUG - Postleitzahlen JTL-Wawi App 0
Neu Ganz neuer Bug? eBay.co.uk Verkauf Lieferung nach Ungarn - falsche Steuer eBay-Anbindung - Fehler und Bugs 2
Bug? Worker 2.0 - Shop Abgleich "Quicksync" ist kein Quicksync mehr - Paketgröße wird ignoriert JTL-Wawi 1.8 10
Bug: Fail to update Product Data. There are missing Attributes Titel, Bild, FSK-Einstufung kaufland.de - Anbindung (SCX) 2
Bug? Fehler EAN (Kaufland.cz) auf Kaufland.de aber korrekt kaufland.de - Anbindung (SCX) 1
Neu Bug bei Berechnung von Lieferzeit bei Stücklisten JTL-Wawi - Fehler und Bugs 1
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
Workflow Bug: Rechnungskorrektur erstellen aus Retoure JTL-Wawi 1.8 4
Neu Template abzugeben - bitte melden Templates für JTL-Shop 2
Neu Template Allgemeine Fragen zu JTL-Shop 6
Neu Template anpassen - parallel zum bestehenden, ohne Aktivierung? Templates für JTL-Shop 4
Beantwortet Werte eigener Kundenfelder im Template anzeigen Allgemeine Fragen zu JTL-Shop 0
Neu Template/ Vorlage für Bestellbestätigung gesucht Templates für JTL-Shop 0
Neu Nova Template Container in Container Boxed Templates für JTL-Shop 2
Neu Unterstützung bei JTL5-Shop-Überarbeitung gesucht - Template/Plugin uvm. Dienstleistung, Jobs und Ähnliches 1
Neu JTL Shop Template Domain lösen? Allgemeine Fragen zu JTL-Shop 0
Neu How to maintain session value in the portlet template file Technische Fragen zu Plugins und Templates 0
Neu Custom Template für Custom Artikel mit Plugin? Plugins für JTL-Shop 0
Neu JTL-Shop 5 Nova-Template / Darstellung der Produktliste teilweise fehlerhaft JTL-Shop - Fehler und Bugs 1
Neu Template für Dateinamen hat nicht den gewünschten Effekt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 6

Ähnliche Themen