Home > Yii > Module und Submodule

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:

  1. Yii Module
  2. Ein Modul als Admin Backend
  3. Models aus Modulen verwenden
  4. Module aus der Datenbank laden
Author: Categories: Yii Tags:
  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks