Layout Erstellung Mit 2 Dynamischen Bereichen

Hallo, ich komme einfach nicht bei der Erstellung eines Layouts weiter.

Ich möchte im Header 2 Bereiche: Zum einen einen Bereich mit wechselndem Inhalt, je nach Controller. Zum anderen immer gleich bleibender Inhalt wie z.B. Werbung. Der Content soll sich ganz normal verändern, je nachdem welcher controller/action aufgerufen wurde.

Hier ein simples Beispiel meines Layouts:




<div>

  <div>

    <div>

      Header dynamisch (für jeden Controller)

    </div>

    <div>

      Header statisch (Werbung)

    </div>

  </div>

  <div>

      Content (dynamisch)

  </div>

  Footer

</div>



Ich weiß einfach nicht in welche Dateien ich das aufteilen muss, und wann ich beginContent/endContent und renderPartial benutzen muss. Hierbei soll natürlich, falls möglich, keine Zeile Code doppelt geschrieben werden müssen.

Hallo Scentyoo!

um im Layout file den content auszugeben, musst du einfach nur


<?php echo $content; ?>

schreiben. Schau dir dazu am besten mal die layout files an, die bei der von yiic generierten Webapplication dabei sind.

Für den controller-Abhängigen content kannst du eine methode in jedem controller erstellen, die du von hier aus aufrufst:


<?php echo $this->renderHeaderContent(); ?>

und im Controller dann:




public function renderHeaderContent() {

    return $this->renderPartial('controllerspecificView', array(), true);

}



"renderHeaderContent()" kannst du je nachdem, wie du es brauchst auch in einer Oberklasse aller Controller definieren und dann in Controllern, die anderen content benötigen überschreiben.

Grüße,

Carsten