Registrace template helpers přes config
- sifik
- Člen | 27
Ahoj, pomocí @Hosiplana a jeho pullu jsem rozšířil NetteExtension tak, že je možné registrovat Helpery pro template v configu jako služby.
ukázka configu:
common:
nette:
template:
helperLoaders: \Flame\Templating\Helpers
helpers:
thumb: @ThumbnailsCreator::thumb
services:
ThumbnailsCreator: \Flame\Templating\Helpers\ThumbnailsCreator(%wwwDir%, %imageStorage.thumbDir%)
Nyní je globálně dostupný helper thumb jak pro presnetery tak i pro komponenty. Bohužel, díky tomu, že výše zmíněný pull nebyl zatím začleněn do Nette, bylo zapotřebí přepsat metody createTemplate a templatePrepareFilters v UI\Presenter a UI\Control
Pokud byste chtěly toto vylepšení používat, je zapotřebí tento souborů Configurator.php a NetteExtension
V bootstrapu nezapomeňte změnit $configurator = new Flame\Config\Configurator;
Zajímá mě Vás názor :-)
//Edit
PS. Toto rozšíření a mnoho dalších je současní frameworku Flame
//Edit2 ----------------------------
Rozhodl jsem se své řešení z frameworku smazat. Ukázalo se v několika
ohledech docela nepraktické.
Doufám, že nové řešení je na cestě – https://forum.nette.org/…factory-todo.
Pokud byste i přesto stáli o implementaci, tak v tomtu commitu https://github.com/…fc90281fe536,
který odstraňuje funkčnost z fw, najdete vše potřebné.
Editoval sifik (4. 4. 2013 18:53)
- enumag
- Člen | 2118
Nevypadá to špatně, rád bych to co nejdříve viděl přímo v Nette. Prozatimní řešení je ovšem poněkud neohrabané na instalaci. Lepší by to bylo jako samostatné extension nedědící od NetteExtension s úplně samostatným repozitářem se souborem composer.json. :-) Flame by to mohl mít jako dependency.
OT: Co dalšího pěkného umí ten Flame?
Editoval enumag (10. 1. 2013 20:16)
- sifik
- Člen | 27
@enumag I já bych to rád, co nejdříve viděl v Nette. Uvidím, zda se k tomu nějak vyjádří David, pokud by to zůstalo delší dobu bez odezvy, udělám z toho samostatné extension :-)
Flame je spíše taková základní kolekce nástrojů, bez kterých si vývoj nette aplikace nedokáži představit. Implemtuje několik základních tříd pro práci s Uploaded files, assets, hesly… dále obsahuje themeManager, json response pro REST, již zmíněný thumbnailsCreator, několik základních tříd pro Doctrine, SimpleRestRouter a několik dalších tříd pro práci s Application\UI… několik addonů, jako StepForm, Wordpress importer, upravený VisualPaginator.
Editoval sifik (12. 1. 2013 14:44)
- Tomáš Votruba
- Moderator | 1114
Lze v současné master verzi registrovat helpery či filtry jinak než takto? Vycházím z Nette\Templating\Template
services:
helpers: App\Helpers
factories:
nette.template:
setup:
- registerFilter(App\Filter)
- registerHelperLoader([@helpers, "loader"])
S tím, že v presenteru/komponentě je pro zohlednění této konfigurace potřeba volat:
$template = $this->context->createNette__template($class);
místo
$template = parent::createTemplate($class);
Presenter má tedy vlastní faktory na šablonu, která se liší od configu?
To mi přijde trochu divné.
Tak vypadá, že první způsob sice zohlední config, ale nepřidá základní
proměnné ($user…).
Editoval Schmutzka (2. 4. 2013 1:19)
- enumag
- Člen | 2118
@Schmutzka: Zatím ne. https://forum.nette.org/…factory-todo
Editoval enumag (2. 4. 2013 8:17)
- Tomáš Votruba
- Moderator | 1114
@sifik: Nevím, jestli ještě potřebuješ odpověď, ale tento příspěvek by ti mohl pomoci.
Editoval Tomáš Votruba (4. 2. 2014 19:14)
- sifik
- Člen | 27
Tomáš Votruba napsal(a):
@sifik: Nevím, jestli ještě potřebuješ odpověď, ale tento příspěvek by ti mohl pomoci.
Děkuji. Kdysi se mi to už povedlo vyřešit následujícím způsobem https://github.com/…eFactory.php