Template vom Vaterobjekt verwenden?

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Template vom Vaterobjekt verwenden?

Beitrag von Well » 26.02.2010, 22:58:44

Moin, hier meine nächste Frage:

Ich hab meine Seite im Moment so aufgebaut:
Es gibt die main.html, die in der Bootstraps Datei geladen wird. Diese Datei beinhaltet die große Navigation und bindet dann, je nach Sektion, ein weiteres View ein. Dieses View beinhaltet dann den mittleren Bereich der Seite, also Sidebar (mit einer je von der Sektion abhängigen zweiten Navigation) und Content. Der Content befindet sich dann in einem dritten View, wobei je nach Unter-Navigationspunkt das entsprechende View eingebunden wird.

Nun möchte ich gerne in die Sidebar neben der Navigation noch weitere Informationen anbringen, diese unabhängig von den Sektionen sind. Die Sidebar befindet sich aber wegen der Unternavigation in einem von der Sektion abhängigen View. Gäbe es nun irgendwie die möglichkeit, ein Template vom Vaterview (das dann auch im Controller des Vaterviews gehandhabt wird) dort einzubinden? Oder wie könnte ich sowas sonst, evtl. besser lösen?

Mfg

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: Template vom Vaterobjekt verwenden?

Beitrag von dr.e. » 27.02.2010, 00:46:17

Hallo Well,
Nun möchte ich gerne in die Sidebar neben der Navigation noch weitere Informationen anbringen, diese unabhängig von den Sektionen sind. Die Sidebar befindet sich aber wegen der Unternavigation in einem von der Sektion abhängigen View. Gäbe es nun irgendwie die möglichkeit, ein Template vom Vaterview (das dann auch im Controller des Vaterviews gehandhabt wird) dort einzubinden? Oder wie könnte ich sowas sonst, evtl. besser lösen?
Da die GUI-Elemente des APF über den Page-Controller gesteuert aufgebaut werden, liegen diese zur Zeit der Transformation als navigierbarere Baum vor. Du kannst deswegen in jedem Knoten per $this->__ParentObject und in jedem Controller per $this->__Document->getByReference('ParentObject') auf den Eltern-Knoten ausgehend - vom aktuellen Knoten - zugreifen. Dort könntest du dann Inhalte injizieren oder Templates nachträglich transformieren, etc.

Da du hier jedoch abhängige Inhalte hast, bietet sich entweder an, die Sidebar-Informationen schon vor dem Aufbau der GUI zu definieren (Front-Controller-Implementierung) oder eine Taglib zu schreiben, die die Logik der Einbindung abbildet. Vorteil einer Taglib ist, dass du zur Zeit des Aufbaus des DOM-Baumes in das Geschehen eingreifen und Informationen bereitstellen, die du in einem Controller dann nutzen kannst.

Ich würde deshalb folgendes für die Umsetzung vorschlagen: du beziehst im Controller das gewünschte Template vom Vater-Knoten und platzierst den transformierten Inhalt mit Hilfe eines Platzhalters im Kind-Template. Code-technisch kannst du das wie folgt abbilden:

Code: Alles auswählen

$parent = &$this->__Document->getByReference('ParentObject');
$parentChildren = &$parent->getByReference('Children');
$templateName = 'foo';
$template = null;
foreach($parentChildren as $objectId => $DUMMY){
   if($parentChildren[$objectId]->getAttribute('name') == $templateName){
      $template = $parentChildren[$objectId];
   }
}
$this->setPlaceHolder('parent_template',$template->transformTemplate());
Nicht enthalten sind entsprechende Checks, falls das Template nicht gefunden wird.

Ich hoffe, das trifft dein Vorhaben. Falls nicht, lass uns weiter drüber sprechen, in diesem Bereich ist mit dem APF definitiv alles möglich! :)
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Template vom Vaterobjekt verwenden?

Beitrag von Well » 27.02.2010, 13:20:43

Danke, genau so eine Lösung habe ich gesucht.

(Ich merke, ich werde mich wohl über das Thema etwas mehr informieren müssen... :D)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4606
Registriert: 04.11.2007, 16:13:53

Re: Template vom Vaterobjekt verwenden?

Beitrag von dr.e. » 27.02.2010, 13:26:07

Hallo Well,
(Ich merke, ich werde mich wohl über das Thema etwas mehr informieren müssen... :D)
Kein Problem, für Fragen sind wir ja da! :)
Viele Grüße,
Christian

Antworten