Zentrale Verwaltung, wann welche Widgets / Portlets angezeigt werden

Und noch eine Frage an alle Yiis,

wir benutzen das altbekannte drei Spalten Layout, wobei linke und rechte Spalte, je nach Controller und Action mit unterschiedlichen Widgets / Portlets gefüllt werden sollen. Im Falle dessen, das kein Widget eingefügt ist, soll die Spalte ausgeblendet sein. Ich frage mich nun, wie ich das am sinnvollsten umsetze. Wie würdet ihr das angehen?

Gibt es eine Möglichkeit, dem Main Layout Sublayouts mitzugeben, die unter Kontrolle des entsprechenden Sitecontrollers stehen? Dann würde ich die Widgets, die anzuzeigen sind, einfach in das Sublayout verteilen.

Die zweite Möglichkeit wäre, für die Spalten jeweils durch den Controller eine zentrale Variable mit den gewünschten Widgets befüllen zu lassen. Das MainLayout blendet dann bei Bedarf Spalten und enthaltene Widgets ein. Wie komme ich an so eine zentrale Variable dran?

Mfg,

Bergtroll

Also ich habe jetzt nochmal ein bisschen in der Dokumentation gelesen, es scheint nur die Variable $content an das Layout weitergegeben zu werden. Habe ich das richtig verstanden? Oder kann kann weitere Variablen definieren, die vom View gefüllt werden, so dass ich sie im Layout an unterschiedlichen Stellen unterbringen kann? Macht es Sinn, dass nur $content übergeben wird? Oder wird das künftig geändert?

Mfg,

Bergtroll

Ich weiß gerade nicht wo welche Variablen an das Layout weitergegeben werden. Aber vielleicht kannst du ja Parameter setzen. Also im View irgendwas speichern:




Yii::app()->params['key'] = 'value';



Und dann im Layout verwenden:




$value = Yii::app()->params['key'];



Ich hab das aber noch nie ausprobiert, also ohne Gewähr…

Meinst du sowas wie hier beschrieben?

http://www.yiiframework.com/doc/cookbook/28/

Aaaahja, wunderbar, vielen lieben Dank, das war genau, was ich gebraucht habe. Ist bereits umgesetzt :slight_smile:

Mfg,

Bergtroll