Plugin-Templateverzeichnis registrieren: wann?

Hallo,

Ich arbeite mich gerade duch die Doku, verstehe aber nicht so recht, zu welchem Zeitpunkt das Templateverzeichnis für ein Plugin registriert werden soll. Die Dokumentation legt irgendwie nahe, dass man es in jeder Klasse/Methode einzeln registriert - Controller, Basisklasse, Subscriber… Verstehe ich hier irgendetwas falsch? Warum sollte ich in meinem Plugin das Verzeichnis x - Mal regsitrieren, anstatt im Bootstrap / der Basis-Klasse?

Grüße, Paddelboot

Hier meine derzeitige Lösung in der Basisklasse:

 

 class MyPlugin extends Plugin { public static function getSubscribedEvents() { return ['Enlight\_Controller\_Front\_PreDispatch' =\> 'onEnlightControllerFrontPreDispatch']; } public function onEnlightControllerFrontPreDispatch() { $this-\>container-\>get( 'Template' )-\>addTemplateDir( $this-\>getPath() . '/Resources/views' ); } }

 

Hi :slight_smile:

ich habe hier letztens beschrieben, wie ich es gemacht habe. Vielleicht hilft dir das:

https://forum.shopware.com/discussion/comment/245592/

Viele Grüße 

Ich würde immer das Event Theme_Inheritance_Template_Directories_Collected nehmen. Bei einer Dokumenten Generierung kann es sein, dass euer Verzeichnis entfernt wird.

@Shyim schrieb:

Ich würde immer das Event Theme_Inheritance_Template_Directories_Collected nehmen. Bei einer Dokumenten Generierung kann es sein, dass euer Verzeichnis entfernt wird.

Was genau meinst du mit “kann es sein, dass euer Verzeichnis entfernt wird”? Entfernt Shopware physische Verzeichnisse?

@MrFrox schrieb:

Hi :)

ich habe hier letztens beschrieben, wie ich es gemacht habe. Vielleicht hilft dir das:

https://forum.shopware.com/discussion/comment/245592/

Viele Grüße 

 

Danke, wenn ich das richtig verstehe, registrierst du das Verzeichnis in der Callback-Funktion deiner Subscriber-Klasse. So ist das u.a. auch in der Dokumentation beschrieben. Meine Frage war eben, warum ich das Verzeichnis in jeder Callback-Funktion einzeln registrieren soll. Aus meiner Sicht ergibt das vor allem dann Sinn, wenn ich verhindern möchte, dass gewisse Routen/Controller/Subscriber die Eltern-Templates überschreiben. Scheint mir aber ein eher exotischer Anwendungsfall. Aber vielleicht verstehe ich hier auch noch etwas nicht.