Modul-Templates überschreiben funktioniert nicht

Hallo zusammen,

ich habe ein OXID-Modul (*fremdesmodul*_cms_widgets), das eigene Templates registriert, z. B. banner.tpl. Ich möchte diese Templates mit einem eigenen Modul überschreiben, ohne das Original-Modul zu ändern.

Ich habe dazu ein eigenes Modul erstellt und in der metadata.php die Templates so definiert:

'templates' => [
    'banner.tpl' => '/views/smarty/tpl/banner.tpl',
],

Allerdings wird weiterhin das Template aus *fremdesmodul*_cms_widgets geladen und nicht mein eigenes.
Habe Cache gelöscht, neu installiert etc.

Soweit ich das noch in Erinnerung habe, musst zum Überschreiben/Ersetzen von Templates an den Controller und render() ran. Es sei denn, das hat sich geändert. Welche Version?

Hallo Maxim,

von welcher Shop-Version sprechen wir hier? Version 6 vermute ich?
Die Dokumentation dazu findest du unter templates — OXID eShop developer documentation 6.5.0 documentation
Zunächst musst du sichergehen, dass ‘banner.tpl’ der Name des Templates ist, wie ihn das Modul auch registriert (in seiner metadata.php).
Anschließend musst du den Pfad so angeben, wie er vom Modulordner bzw. vendor-Folder aus aussieht. Also inklusive des Modulnamens.
Also vermutlich ‘fremdesmodul_cms_widgets/views/smarty/tpl/banner.tpl’ oder so.

Zu guter Letzt musst du du dann sicherstellen, dass dein Modul nach dem anderen Modul geladen wird. Sonst überschreibt womöglich das andere Modul deins und nicht umgekehrt.

Mit twig funktioniert das dann aber anders: Creating a Child Theme — OXID eShop developer documentation 7.2 documentation