Module und Submodule
Ich vergleiche Yii-Module mit Joomla-Komponenten, wobei der Administrator-Part einer Joomla-Komponente das Yii-Submodul darstellt. Das Erzeugen von Modulen ist per yiic leicht möglich. Submodule (nested Modules) sind Module, die sich in einem modules-Verzeichnis des parent-Moduls befinden, wobei das Erstellen von Submodulen nicht direkt unterstützt wird.
Ich erzeuge zunächst beide Module
>>yiic shell ../index.php >>module weblinks >>module admin
Es entstehen die Verzeichnisse modules/weblinks und modules/admin.
Den modules/admin-Ordner verschiebe ich in den modules/weblinks/modules-Ordner (wenn dort noch kein modules-Ordner existiert, erstellen)
Das Hauptmodul wird in der main-config registriert.
'modules' => array('weblinks'),
Das AdminModul definiere ich in der Datei WeblinksModule.php im modules/weblinks-Ordner
public function init() { // import the module-level models and components $this->setImport(array( 'weblinks.models.*', 'weblinks.components.*', )); $this->setModules(array('admin')); }
Nun kann ich die Module auch schon benutzen indem ich folgende URLs aufrufe:
- http://localhost/weblinks
- http://localhost/weblinks/admin
Das Submodul mit eigenem Layout ausstatten, ist eigentlich auch recht simpel. Dazu die Datei modules/weblinks/modules/admin/AdminModule.php modifizieren:
public function init() { // import the module-level models and components $this->setImport(array( 'admin.models.*', 'admin.components.*', )); $this->layout = 'admin'; }
und entsprechend eine Datei admin.php ins Verzeichnis modules/weblinks/modules/admin/views/layouts erstellen. Standardmäßig wird das nächsthöher definierte Layout benutzt, also entweder das Layout des parent-Moduls oder das Layout der Webanwendung.
Verwandte Artikel:
Letzte Kommentare