Concrete5: Entwicklung mit Concrete5: Themen verstehen/erweitern: Anordnungsreihenfolge


Normalerweise werden Themen einer Seite in Concrete über das Dashboard, oder den Design Button im Kopfteil der Seite ausgewählt. Allerdings gibt es auch andere Möglichkeiten, wie ein Theme einer Seite zugewiesen werden kann.

Hier werden alle Wege beschrieben, wie ein Theme zugewiesen werden kann. Ein Begriff der vor einem anderen in dieser Liste erscheint hat eine höhere Priorität, als darauf folgende Ausdrücke:


Benutzung von $v->setTheme() Bearbeiten

Der Code in "tools/upgrade.php" ist ein gutes Beispiel dafür, wie es funktioniert.

$v = View::getInstance();
$v->setTheme('concrete');
$v->render('/upgrade');

Zeile 1 weist der Variablen v die aktuelle Instanz des Ansichtsobjekts zu. Zeile 2 weist das Theme für diese Ansicht als core concrete Ansicht zu. Zeile 3 rendert die "/upgrade" Ansicht im concrete Theme.

Die Ansichts Klasse findet "/concrete/single_pages/upgrade.php" und rendert diese Ansicht. Falls das concrete Theme nicht gefunden werden kann , wird die Ansicht mit der Seite default Theme gerendert.

Die öffentliche Theme Variable von einem controller erhalten Bearbeiten

Grundsätzlich wird, falls ein controller für bestimmte Einzelseiten oder Seitentypen eine öffentliche $theme Variable bereitstellt, oder eine bestimmte Methode innerhalb des controllers diese Theme Variable für eine bestimmte Ansicht setzt, die Seite mit diesem Theme gerendert.


Benutzung der theme_paths Direktive Bearbeiten

Als nächstes wird - sollte ein bestimmte Seite, mit einer festgelegten Seite eines bestimmten Theme in entweder themepaths.php, oder sitetheme_paths.php korrespondieren - das resultierende Theme verwendet.


Theme von einem bestimmten Seitenrecord bestimmen Bearbeiten

Sollte an diesem Punkt angekommen, keiner der oben beschriebenen Schritte zutreffen, wird in der Seite selbst gesucht. Hat diese Seite ein Theme, welches diesem direkt zugewiesen wird? Das wäre der Fall, wenn a) die Seite ein Theme hatte, welches durch den Design Button gewählt wurde, oder, b) wenn die Seite unterhalb einer Seite hinzugefügt wurde, welche ein Theme hatte und das Eltern Theme vererbt wurde. In beiden Fällen, wird dieses Theme für die jeweilige Seite verwendet.


Theme von der Startseite erhalten Bearbeiten

Wenn die aktuelle Seite eine Theme ID von null in der Datenbank besitzt (bedeutet, dass dieser kein explizites Theme zugewiesen wurde), dann wird dieser das Theme der Startseite der Webseite zugewiesen. Dieses Theme wird während der Installation zugewiesen, also erhält Startseite immer mindestens ein Theme.