Dědičnost Control – „naplnění šablony šablonou“
- suxik
- Člen | 62
Ahoj,
resim tenhle problem, mam abstraktni tridu WindowControl a pak z ni dedim tridy
jako CalendarControl nebo AboutControl a chci, aby se do sablony, kterou
renderuje metoda render tridy WindowControl pridal obsah sablony podedene
tridy – tedy kdyz si vytvorim AboutControl, aby se mi udelal obalovy div
z WindowControl a do nej se naplnil obsah sablony z AboutControl, moje reseni
z hlediska dedicnosti jede jak ma, ale misto sablony se mi zobrazi
„neprelozeny“ text.
a potom
Sablona WindowControl:
`<div class=„window“>
<div class=„window_header“>
<h1 class=„caption“>{$title}</h1>
</div>
<div class=„window_content“>
{$content}
</div>
</div>`
Sablona AboutControl:
`<div class=„aboutControl“>
<div class=„aboutText“>
<p>{$aboutText}</p>
</div>
</div>`
Vystup ale vypada takto:
AboutControl
{$aboutText}
– kde je chyba?
- Ola
- Člen | 385
V druhé kontrole vytváříš template nestandardně a kvůli tomu nemáš zaregistrovaný LatteFilter. Mimochodem, pokud chceš doplňovat obsah z AboutControl do místa v šabloně WindowControl, můžeš použít dědičnost:
WindowControl.phtml
AboutControl.phtml
Při správném nastavení by se mělo vypsat „Text okolo Text uvnitř Text okolo“.
Editoval Ola (1. 3. 2010 7:56)
- Ola
- Člen | 385
Pro ostatní jsem ten kód obarvil..
suxik napsal(a):
Ahoj,
resim tenhle problem, mam abstraktni tridu WindowControl a pak z ni dedim tridy jako CalendarControl nebo AboutControl a chci, aby se do sablony, kterou renderuje metoda render tridy WindowControl pridal obsah sablony podedene tridy – tedy kdyz si vytvorim AboutControl, aby se mi udelal obalovy div z WindowControl a do nej se naplnil obsah sablony z AboutControl, moje reseni z hlediska dedicnosti jede jak ma, ale misto sablony se mi zobrazi „neprelozeny“ text.a potom
Sablona WindowControl:
Sablona AboutControl:
Vystup ale vypada takto:
AboutControl {$aboutText}
– kde je chyba?
- suxik
- Člen | 62
Ola napsal(a):
V druhé kontrole vytváříš template nestandardně a kvůli tomu nemáš zaregistrovaný LatteFilter. Mimochodem, pokud chceš doplňovat obsah z AboutControl do místa v šabloně WindowControl, můžeš použít dědičnost:
WindowControl.phtml
AboutControl.phtml
Při správném nastavení by se mělo vypsat „Text okolo Text uvnitř Text okolo“.
Predpokladal jsem, ze to je nezaregistrovanym filtrem, protoze to vytvarim jak to vytvarim, ale kdyz podedim sablony, tak to pak nemusim objektove dedit v programu a to ztraci svoji podstatu. Mimoto mi to dedeni sablon nejde, ani ladenka nic nevypise.
2Honza Tvrdik: diky, je to jen draft, prehledl jsem
Nette neznam natolik, abych sam prisel na reseni a spousta dokumentace chybi, jestli to nakonec budu muset udelat dedenim sablon, tak budu docela smutny
Editoval suxik (1. 3. 2010 10:41)