Heute stand ich vor dem Problem, jedem der Module einer Zend Application eine eigene layout.phtml zuweisen zu müssen. Zuerst dachte ich, es sei ganz einfach über eine application.ini Zeile á la
admin.resources.layout.layoutPath = path/to/layout
möglich (wobei “admin” hier der Modulname ist). Doch wie so häufig brachte der Druck auf F5 Ernüchterung, es funktioniert so nicht.
Eine kurze Google Suche ergab, dass man sich einfach ein Front Controller Plugin schreiben kann, das vor dem Dispatchen abhängig vom Modulnamen die entsprechende layout.phtml lädt. Eigentlich genau das was ich wollte, aber es musste doch einen Weg geben ohne zusätzlichen Code dasselbe Ziel zu erreichen.
Also gab ich mich nicht mit diesem Plugin zufrieden und probierte herum, bis mir eine Fehlermeldung die Augen öffnete. Und zwar sucht Zend unter anderem auch im /scripts/views/ Unterverzeichnis eines jeden Moduls nach einer layout.phtml. Also brauchte ich nur die “resources.layout.*” Einstellungen in der Konfiguration entfernen und eine layout.phtml in den eben genannten Verzeichnissen erstellen und – voilà – schon benutzt jedes Modul sein eigenes Layout; krass, oder?
Thanks, this helped a lot. Knew there had to be a better way than breaking out a Zend_Layout plugin.