Motive (engl.: themes) stellen eine Methode dar, das Aussehen einer Webseite systematisch anzupassen. Durch das Anwenden eines Motivs kann man das komplette Erscheinungsbild einer Webanwendung praktisch auf Knopfdruck grundlegend verändern.
Jedes Motiv wird in Yii von einem Verzeichnis dargestellt, das View-, Layout-
und andere relevante Ressourcedateien, wie Bilder, CSS- und Javascript-Dateien
enthält. Der Name eines Motivs entspricht dem Verzeichnisnamen. Alle Motive
befinden sich unterhalb von WebRoot/themes. Es kann jeweils immer nur ein Motiv
aktiv sein.
Tipp: Das Standardverzeichnis für Motive kann auch an einem anderen Ort als
WebRoot/themesliegen. Konfigurieren Sie dazu einfach die beiden Eigenschaften basePath (Basispfad) und baseUrl (Basis-URL) der themeManager-Anwendungskomponente.
Setzen Sie die Eigenschaft theme der Webanwendung auf den Namen des gewünschten Motivs, um ein Motiv anzuwenden. Dies kann entweder in der Anwendungskonfiguration oder während der Laufzeit in einer Controller-Action geschehen.
Hinweis: Beim Namen eines Motivs spielt die Groß-/Kleinschreibung eine Rolle. Wenn Sie versuchen, ein Motiv anzuwenden, das es gar nicht gibt, liefert
Yii::app()->themeden Wertnullzurück.
Die Inhalte eines Motivverzeichnisses sollten genau wie im Stammverzeichnis
der Anwendung
abgelegt werden. Alle View-Dateien müssen sich zum Beispiel in views,
Layout-Dateien in views/layout und System-View-Dateien unter views/system
befinden. Wenn wir z.B. den View create für PostController durch einen
View des Themes classic ersetzen möchten, sollten wir die neue Datei unter
WebRoot/themes/classic/views/post/create.php ablegen.
Für die View-Dateien eines Controllers, der in einem
Modul enthalten ist, sollte die entsprechende
View-Datei des Motivs ebenfalls unterhalb des views-Verzeichnisses abgelegt
werden. Wenn der genannte PostController zum Beispiel in einem Modul namens
forum enthalten ist, sollten wir die View-Datei für create unter
WebRoot/themes/classic/views/forum/post/create.php abspeichern. Falls das
forum-Modul selbst wiederum als verschachteltes Modul in einem Modul namens
support enthalten ist, sollte die View-Datei unter
WebRoot/themes/classic/views/support/forum/post/create.php liegen.
Hinweis: Da das
views-Verzeichnis sicherheitskritische Daten enthalten könnte, sollten Sie dafür sorgen, dass es nicht vom Web aus zugänglich ist.
Wenn wir render oder renderPartial zum Anzeigen eines Views aufrufen, werden die entsprechenden View- und Layout-Dateien im Verzeichnis des gerade aktiven Motivs gesucht und, falls dort vorgefunden, zum Rendern verwendet. Andernfalls werden sie an den Standardorten gesucht, wie mit viewPath und layoutPath vorgegeben.
Tipp: Innerhalb eines Motiv-Views müssen wir evtl. öfter auf andere Ressource-Dateien des Motivs verlinken. Zum Beispiel könnten wir eine Bilddatei im Ordner
imagesdes Motivs anzeigen wollen. Mit Hilfe der Eigenschaft baseUrl des aktuellen Motivs können wir die Bild-URL wie folgt zusammenbauen:Yii::app()->theme->baseUrl . '/images/BildName.gif'
Signup or Login in order to comment.