{include title} v komponente?

- Ja
 - Člen | 260
 
Zdar,
delam takovou navigaci (ktera je resena komponentou) a vzdy posledni cast
navigace by mela odpovidat titulku stranky, ktery mam definovany v kazde
strance jako {block title}Titulek stranky{/block}.
Komponenta ale tento blok title nevidi. Ale samozrejme, pres promennou $presenter se na parent presenter dokazi dostat, takze bych se nejak k tomu bloku mohl prokousat. Nemate nekdo zkusenost?

- Šaman
 - Člen | 2668
 
Jestli ti to stačí až při vykreslování, tj. v metodě
render() komponenty a potažmo tedy i v její šabloně, tak
použij {control myComponent, $title} a v komponentě
render($title). Samozřejmě si budeš muset taky upravit definici
titulku tak, aby byl v té proměnné a nejen jako blok.
třeba {var $title = "Titulek stranky"} … {block title}{$title}{/block}

- Ja
 - Člen | 260
 
Tak jakoby staci, ale to uz rovnou to tam muzu vstrikavat necim jako $this[‚komponenta‘]->injectTitle(‚muj titulek‘);
takze jakoby toto by slo, ale uz do toho skoro zanasim dalsi necistoty, ktery bych tam radeji nemel, vytahnuti title z nadrazenejch sablon by mi prislo elegantni (jde-li teda se vubec pres ten presenter k nim nejak dostat)

- Šaman
 - Člen | 2668
 
Právě že tohle je čistější. A pokud bys to potřeboval už pro běh té komponenty, pak to vstřiknout třeba v tovární metodě.
Co když nadřazená šablona nebude mít blok title? V mé
ukáce je jasné API – metoda render požaduje předat titulek.
Stejně tak, pokud budeš injectovat do nějaké setTitle metody.
Ale když se budeš spoléhat na nadřazené šablony, tak už to nebude
samostatná komponenta.

- Ja
 - Člen | 260
 
OK souhlasim,
tak co udelat kompromisoidni reseni typu – v nejakem afterRenderu napr
FrontPresenteru, od ktereho mi dedi presentery v public sekci, ten title ze
sablony ziskat a vstriknout ho komponente? Jde-li to?
Trochu ted zapasim s casem a nehodi se mi cely projekt prepsat, abych title poskytoval vsude te komponente rucne.