Problém s vkládáním snippetu do šablony, která má jiný layout
- Martin Mates
- Člen | 179
Zdravíčko. Už nad tím bádám hodiny a nevím co s tím. Budu moc rád za každou radu.
Mám následující strukturu šablon. Obyčejný @layout a v něm {block #content} do toho bloku se vkládá další layout @sekceLayout a v něm je {snippet sekce}{block #sekceContent}{/block}{/snippet}. Pro názornost jsem to nakreslil tady: http://cl.ly/B8s7/o
Když to tam takto povkládám, tak je to zřejmě špatně už samo o sobě. Vykreslí se to špatně. To co je uvnitř snippetu se vykreslí na webu jako první ještě před <head>. Proč? Pokud zkusím snippet invalidovat po ajaxovém volání, tak dostanu 500 internal server error ve firebugu a nic dalšího (v php error logu nic není, dá se někde zjistit co konkrétně se stalo za chybu?)
Zkusil jsem hodit ten snippet i do šablony @layout kolem toho blocku #content. To se spustí v pohodě a dokonce to i funguje pro stránky které nemají žádný další layout. Když to ale zkusím pro ten @sekceLayout, tak to hodí zas 500.
Dočetl jsem se na fóru, že to je nějaký bug Nette 2.0 tak jsem provedl downgrade na 0.9.7 a zkusil zavináčovou magii. Stále nic.
Co byste dál zkoušeli? Asi mám hokej v tech blocích a nippetech, jak to tam správně vkládat. Díky za jakýkoli nápad.
- Vojtěch Dobeš
- Gold Partner | 1316
Ad ajaxové chyby: nainstaluj si do Firefoxu Firelogger, potažmo domovská stránka (je teda pro nové Nette).
Editoval vojtech.dobes (21. 10. 2011 20:51)
- 22
- Člen | 1478
…vyhodí to 500? To co tam máš v tom obrázku by mělo teoreticky fungovat aspoň na Nette2, používám dědičnost celkem hojně protože ten bug. co zmiňuješ se týka include a snippetů a pravě dědičnost šablon tím netrpí. Každopádně si zapni DEV mod, at víš, co je za tou 500kou a napřed si ověř dědičnost bez snippetu. Možná bych ho přesunul z druhé až do třetí šablony, ale mělo by to fungovat i takto.