addTemplateDir im Plugin zum erweitern von Theme-Templates

Hallo,

mein Ziel war es die frontend/account/sidebar zu erweitern. Ich habe mir im Plugin unter Resources/views/frontend/account/sidebar.tpl ein entsprechendes Template angelegt. Leider scheint dieses Template nicht verwendet zu werden. „Resources/views“ wird im Plugin mit addTemplateDir eingetragen und die Templates für den Controller funktionieren auch ohne Probleme. Nur eben die Templates nicht, mit denen die die vorhanden erweitern will.

Das Seltsame ist nur, dass ich das Selbe in der Woche schon mal geteste habe und dort klappte es. Ich habe es 1:1 übernommen und es ging nicht mehr. Der Unterschied ist hier nur, dass ich auf einem Ubuntu gestestet habe und nun gerad mit Win10 versuche es genau so zum Laufen zu bekommen. Kann es daran liegen? Auch wenn ich mit ein Theme anlegen und die Datei dort hin kopiere funktioniert diese ohne Probleme. An der Datei an sich liegt es also wohl nicht.

Schon mal Danke für die Hilfe :slight_smile:

Hi,

kennst du die Konfiguration injectBeforePlugins? Damit wird gewählt, ob das Theme von Plugins überschrieben wird, oder ob dass Theme Plugins überschreiben kann. Das wirkt sich auf die Reihenfolge aus, wann was geladen wird, siehe hier: Getting started with Smarty

Besten Gruß,

Daniel

Danke für den Tip. Schien aber  schon korrekt zu sein und die buildInheritance()-Methode des Enlight_Template_Manager scheint er auch garnicht aufzurufen. Aber ich habe es jetzt nach knapp 3 Stunden hinbekommen.

Das Problem schien gewesen zu sein das Theme-Pfade der Theme mit “” als Directory-Seperator eingetragen werden. Deswegen “stripos($themeDir, ‘/Themes/Frontend/’)” nicht diese Pfade erkannte und “empty($themeDirectories)” dadurch natürlich true war und auf der Methode setTemplateDir() heraus sprang ohne jemals zu buildInheritance().

Dann habe ich als Test einfach mal alle Pfade, die in addTempalteDir() und in buildInheritance() verwendet werden, zum ‘/’ Directory-Seperator konvertiert. Danach funktionierte alles wie erwartet und mein Template aus dem Plugin wurde verwendet.

War also wirklich ein Problem, dass durch die Verwendung von Windows erst aufkam. Lösung: Linux zum Entwickeln verwenden.