Problém s block a parametry uvnitř v šabloně
- Petr Daňa
- Člen | 109
Ahoj, zkoušel jsem nasadit komponentu NavigationBuilder od Karla Klímy, ale nějak mi nefunguje vykreslování bloku, který má v příkladě použití. Co jsem ho porovnával s příkladem v dokumentaci, tak to odpovídá. Problém je, že se dovnitř bloku nepřenese proměnná z vnějšku.
Konkrétně ta proměnná children
. Zkoušel jsem i do toho
block přidat , 'children' => $item->getItems()
, ale
nepomohlo to. Výsledkem je, že ve vygenerované šabloně je pro foreach
iterator předávána proměnná $children
, která ale obsahuje
NULL. Jinak ta childeren
proměnná naplněná je, mám to
ověřené přes dump mezi assign
a block
.
Ve vygenerované šabloně je volání
tak počítám, že ten $template->getParams()
nevrátí
proměnnou $children, která byla naplněna na začátku pomocí
assign
.
Co dělám blbě? Prolezl jsem dokumentaci i fórum, ale asi jsem slepej. Zkoušel jsem to na vývojové verzi ze 14.3.2010.
EDIT:
Tak jsem ještě víc prozkoumal vygenerovanou šablonu, a při volání bloku tam bylo:
Takže ten assign vytvoří jen lokální proměnnou, která není
součástí $template
. Zatím jsem to obešel tím, že místo
assign
jsem použil
což vygeneruje
a to už je v pořádku a block normálně funguje.
Jak by se teda měly správně předávat proměnné do bloku? Udivuje mě, že takhle to je ve všech příkladech dané komponenty a nikdo se neozval… Změnilo se teda něco ve vývojové verzi Nette nebo jak?
Editoval Petr Daňa (19. 3. 2010 16:04)
- LM
- Člen | 206
Je to hlášeno https://github.com/…nette/issues#… a https://github.com/…nette/issues#…. Nette verze 0.9 (stabilní) tímhle myslím netrpí.
- Petr Daňa
- Člen | 109
Tak nevím, jestli to David čte, ať už tady na fóru nebo na tom GitHubu, ale už vyšlo několik dalších dev verzí, ovšem oprava nikde :-( Tohle mi přijde teda důležitější, než nějaký DebugBar… Jasně, můžu si to opravit sám, je to jednoduchá záležitost, navíc popsaná přímo u bug hlášení na Gitu, jenže to bych to pak musel hlídat a upravovat při každé nové dev verzi.
Editoval Petr Daňa (8. 4. 2010 8:09)
- kravčo
- Člen | 721
Petr Daňa napsal(a):
Tak nevím, jestli to David čte, ať už tady na fóru nebo na tom GitHubu, ale už vyšlo několik dalších dev verzí, ovšem oprava nikde :-( Tohle mi přijde teda důležitější, než nějaký DebugBar… Jasně, můžu si to opravit sám, je to jednoduchá záležitost, navíc popsaná přímo u bug hlášení na Gitu, jenže to bych to pak musel hlídat a upravovat při každé nové dev verzi.
Ak ti to príde dôležitejšie a navyše je to jednoduchá oprava, môžeš to opraviť a poslať patch. Pomôžeš tým sebe aj ostatným…
- srigi
- Nette Blogger | 558
Petr Daňa napsal(a):
Ta oprava je přímo v bug reportu, který už dávno hlásil někdo jiný – konkrétně první odkaz v příspěvku #2 v tomto vlákně. Problém je, že se k němu David pořád nevyjádřil, takže nikdo neví, jestli to je schválně nebo jestli je to opravdu bug.
To ale nie je oprava, ale workaround ;)
- David Grudl
- Nette Core | 8258
Sorry že oprava trvala tak dlouho, měl jsem za to, že je tam jiný problém, který tam nakonec nebyl.