Templates f.Belege (templates/_default/documents) vererbbar?

Liebe Community, ich habe versucht, das Rechnungs-Template unter /templates/_default/documents/index.tpl in meinem eigenen Template-Ordner abzuleiten (Vererbung), um neue Felder hinzufügen zu können. Bei normalen Template-Dateien unter “frontend” ist das üblich und kein Problem. Trotz Leerung des Cache werden aber abgeleitete Dateien des Ordners “documents” scheinbar ignoriert. Weiß jemand eine Lösung? Muss ich zur Not Änderungen an der _default Datei vornehmen und so die Update-Fähigkeit riskieren? Vielen Dank im Voraus, Gruß Stephan

Hi Stephan, also dein Vorgehen ist schon richtig, nur musst du leider im Backend unter Einstellungen > Grundeinstellungen > Shopeinstellungen > PDF-Belegerstellung entweder neue Belege hinzufügen oder die Bestehenden bearbeiten. Dort dann unter dem Punkt Template den neuen Pfad deines Beleges angeben, da SW sich immer auf das default bezieht. Die Dateien aus dem _default würde ich zwecks Update nicht anrühren, wäre aber auch möglich. Gruß Squirrel

1 „Gefällt mir“

[quote=„Squirrel“]Hi Stephan, also dein Vorgehen ist schon richtig, nur musst du leider im Backend unter Einstellungen > Grundeinstellungen > Shopeinstellungen > PDF-Belegerstellung entweder neue Belege hinzufügen oder die Bestehenden bearbeiten. Dort dann unter dem Punkt Template den neuen Pfad deines Beleges angeben, da SW sich immer auf das default bezieht. Die Dateien aus dem _default würde ich zwecks Update nicht anrühren, wäre aber auch möglich. Gruß Squirrel[/quote] Moin Squirrel, erst einmal vielen Dank für Deine schnelle Hilfe! Die Anpassung der Template-Datei in den Grundeinstellungen hat funktioniert. Allerdings musste ich hier (etwas dirty für meine Begriffe) mit einem relativen Pfad arbeiten, da Shopware anscheinend immer das _default Verzeichnis als Basis nutzt. So geht’s aber: …/…/[myTemplate]/documents/index.tpl Oder hast Du da eine sauberere Lösung? Hier noch die Fehlermeldung von Shopware wenn ich einen absoluten Pfad (/templates/[myTemplate]/documents/index.tpl) probiere: Unable to load template snippet 'documents//templates/[myTemplate]/documents/index.tpl' in Smarty/sysplugins/smarty\_internal\_templatebase.php on line 127 Stack trace: #0 Shopware/Components/Document.php(220): Smarty\_Internal\_TemplateBase-\>fetch('documents//temp...', Object(Smarty\_Data)) #1 Shopware/Controllers/Backend/Document.php(108): Shopware\_Components\_Document-\>render() #2 Enlight/Controller/Action.php(159): Shopware\_Controllers\_Backend\_Document-\>indexAction() #3 Enlight/Controller/Dispatcher/Default.php(528): Enlight\_Controller\_Action-\>dispatch('indexAction') #4 Enlight/Controller/Front.php(228): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #5 Shopware/Kernel.php(141): Enlight\_Controller\_Front-\>dispatch() #6 vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(473): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #7 Shopware/Components/HttpCache/AppCache.php(256): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #8 vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(244): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #9 Shopware/Components/HttpCache/AppCache.php(102): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation\Request), true) #10 shopware.php(95): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #11 {main} Viele Grüße Stephan

1 „Gefällt mir“

Hi Stephan, wie ich diese Fehlermeldung liebe … :wink: Meines Wissens geht es nicht ohne den relativen Pfad, da SW immer vom _default ausgeht. Wie gesagt die zweite Möglichkeit wäre das default index.tpl zu kopieren, die original Datei umzunennen (_index.tpl) und dann in dem kopierten index.tpl im _default zu arbeiten. Dies wird jedoch bei einem Update definitiv überschrieben. So gesehen ist der relative Pfad schon die bessere Alternative, da es beim Update nicht überschrieben wird. Musst halt nur darauf achten, wenn du mal ein anderes Theme auswählst, den Pfad im Backend anzupassen. Gruß Squirrel

Moin Squirrel, dann lieber der relative Template-Pfad. Ich habe meine bearbeiteten Templates gern alle im eigenen Ordner. Danke nochmal! Gruß Stephan