Closed jirinapravnik closed 10 years ago
Tato "fičurka" je trochu v rozporu s Nette filozofií. Protože potřebujeme společnou template službu pro latte šablony. Což má dělat v containeru metoda createNette__template() (a její obdoby). Bohužel Nette tuto službu z containeru k ničemu nepoužívá, proto se tvoje helpery sice zaregistrují, ale nepoužijí v šabloně. V Modules je na to připraven hack v podobě traitu Flame\Modules\Application\TemplateFactory, který stačí použít v BasePresenteru. Pak by vše mělo šlapat. :)
Helper Loader není v Modules podporován, ale zkus se podívat na Flame\Modules\Template\IHelperProvider to by ti mohlo pomoci :))
S Tratirou to šlape v pohodě, super.
IHelperProvider používám, tam to jen musím nacpat všechno do toho jednoho pole (jak píšu výše), nebo mi má pomoci v něčem jiném?
Pokud si vytvoříš službu která bude implementovat IHelperProvider (v konfiguračním poli budeš mít jen jednu šlužbu třeba), budeš mít ve službě dopstupný $template, pomocí nehož si můžeš nakonfiguvoat helpery (a další), jak je libo. Získáš tím možnost si do služby např injectnout další services atd... nahrazuje to helper loader.
Aha, to už mi ale pro mojí potřebu (kdy těch helperů není tolik) přijde spíše overkill, takže zatím stačí tahle klasika. Každopádně opět díky za rady
Já díky!:)
tak jsem ještě zjistil menší problém s tou traitou. Nette 2.1 Factory accessing via nette->createTemplate() is deprecated, use createServiceNette__Template()
ja to tedy vyresil tim, ze jsem si to prepsal zavolanim te service, ale jako PR to neposílám, protože nevím, jestli je to úplně ideální řešení:-)
Omlouvám se, že reaguji až tak pozdě, ale nějak mi unikla notifikace... Ano, support pro Nette 2.1 se musí ještě dodělat. Bohužel momentálně na to nemám kapacity. Pravděpodobně se to bude řešit použítím té service, ale bude to chtít nějak více otestovat.
V pohodě, není tvoje povinnost dělat full support:) Jako ta oprava je opravdu pár znaků. Mě to zatím funguje, ale to není dostatečný test no:)
Doufám, že se může využívat Issues i pro dotazy...
Jak se přidávají helpery pro templates?
Mám tohle v extension
$service->registerHelper('thumbnail', 'JiriNapravnik\Latte\Helpers\Common::thumbnail'); $service->registerHelper('dateCzech', 'JiriNapravnik\Latte\Helpers\Common::dateCzech');
ale v šabloně dostávám, že nezná Nette\Templating\FileTemplate::thumbnail
druhá věc jde nějak v extension registrovat helper loader?