Použití stejných částí kódu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jiří Nápravník
Člen | 710
+
0
-

V dříve používaném frameworku jsem byl zvyklý věci, které se často opakují používat pro ně helpery. Zkrátka pokud jsem potřeboval na více místech vypisovat třeba hvězdičkové hodnocení, udělal jsem si pro něj helper a pak jsem v šabloně zavolal $this->rating(50); tam se mi to naformátovalo a upravilo jak jsem potřeboval.

Nicméně, co koukám v Nette, tak tam jsou helpery používány spíše jako přeformátování výstupu a nevypisují se přes něj nějaké tagy apod. Jaká je ta správná Nette-way? Napadla mě vnořená šablona, ale to zas tak hezký není. Potom mě napadla komponenta, tam je trošku nevýhoda, že ji budu muset v každém presenteru Vyrábět.

Editoval Jiří Nápravník (5. 10. 2013 23:06)

jiri.pudil
Nette Blogger | 1034
+
0
-

Nevidím důvod, proč by helper v Nette nemohl vrátit HTML, třeba pomocí Nette\Utils\Html.

Jiří Nápravník
Člen | 710
+
0
-

Ano vím, že to jde i jsem to tak prvně zkoušel. Nicméně pak jsem pohledal a nikde jsem to u řešení v Nette takhle nenašel, tak by mě zajímalo, co je ten správnější způsob u Nette.

Zkrátka těch věcí takhle, které se opakují je spousta, ať už hvězdičkové hodnocení, vykreslení například obrázku a pokud nebude existovat nahradit jej za jiný, vykreslení různých sociálních tlačítek atd.

Majkl578
Moderator | 1364
+
0
-

hvězdičkové hodnocení

Komponenta.

vykreslení například obrázku a pokud nebude existovat nahradit jej za jiný

Helper nebo makro.

vykreslení různých sociálních tlačítek

Komponenta.

llook
Člen | 407
+
0
-

Můžeš si obecné bloky definovat ve zvláštní šabloně, tuto šablonu vložit přes {includeblock} a pak jednotlivé bloky vkládat takto: {include #rating value => 50}.

Jiří Nápravník
Člen | 710
+
0
-

Díky za ujasnění, hlavně Majkl578.

llook ano to jsem myslel, ež by taky šlo, ale nepřijde mi to natolik čisté a mohl by v tom časem být pěkný guláš