Vlastne funkcie s parametrami v Latte

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

Ahojte.

Je nejaka moznost urobit v Latte sablonach nieco ako:

{var $items = getItems(20)}

{* Vypise 20 poloziek *}
{foreach $items as $item}
{$item}<br>
{/foreach}

Ide mi o to tahat nejake veci z DB priamo do sablon, bez toho aby som ich musel definovat v presentery.

Da sa to urobit nejako pomocou makier, alebo je to nemozne?

enumag
Člen | 2118
+
0
-

Typicky se to dělá tak, že do šablony předáš nějaký objekt modelu, zpravidla něco jako tabulku a pak voláš:

{foreach $table->findAll()->limit(20) as $item}
	{$item}<br>
{/foreach}

Samotný dotaz na databázi se tedy provede až v šabloně. Nevýhodou tohoto přístupu je, že pokud během toho nastane nějaká chyba, tak se ti velmi často rozhodí layout, protože stránka byla vykreslena jen částečně.

Editoval enumag (30. 10. 2012 20:38)

mkoubik
Člen | 728
+
0
-

Úplně obecně, pokud potřebuješ něco volat až s šablony, tak si můžeš předat anonymní funkci.

$this->template->getItems = function($count) { ... };
{foreach $getItems(20) as $item}
	...
{/foreach}
kary
Člen | 2
+
0
-

Super. Dakujem obom. Priznam sa, takto ma to vobec nenapadlo.