Snippet jako řádek v dynamické tabulce (Nette 2.0)

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

Zdravím,

mám na nette postavené CMS, a dneska jsem se pustil do zajaxování některých rutinních operací, ale celkem rychle jsem se zasekl – můj problém:

Mám tabulku, ve které vypisuji stránky, každá stránka se dá (de)aktivovat, popřípadě přesunout nahoru nebo dolu. Celkem jednoduše se mi podařilo zajaxovat to celé, ale rád bych místo použití jednoho snippetu kolem celé tabulky použil pro každý řádek jeden, a pak invalidoval jenom ty, které se nějak zrovna mění. Tudíž potřebuji v makru {snippet xxx} použít nějaký jednoznačný identifikátor. Když se ale pokusím přidat tam třeba ID stránky, tak dostávám výjimku, že název bloku musí být alfanumerický (problém je v tom, že se mi nepřeloží php kód, a jako název se bere vyescapovaná proměnná).

Zkoušel jsem více variant, například {snippet $page->id}, {snippet "page_$page->id"}, {snippet "page_{$page->id}"}.

Ideálně bych chtěl před ID přidat nějaký řetězec, protože mám v tabulce jak stránky, tak layouty, tzn. některá ID se mohou opakovat.

Na fóru jsem našel akorát starší posty, podle kterých by měl minimálně ten první zápis fungovat, ale to bylo ještě z dob, kdy se používali zavináče a SnippetHelper.

Honza Kuchař
Člen | 1662
+
0
-

Myslím že ten problém se snippetem vyřešíš takto: {snippet „test“.$test->bla}

Ale bacha, snippet vygeneruje do stránky div, který nemám v tabulce co dělat. Musíš změnit druh elementu, který snippet generuje. Ale jestli to bude nějak fungovat na Nette 2 to fakt nevím. 0.9.x sis musel přepsat SnippetHelper: https://forum.nette.org/…uhy-parametr

B4nan
Člen | 13
+
0
-

Nene, to už jsem taky zkoušel. "test".$test->id to nepovolí; když přímo v nette vypnu tu validaci, které vadí, že to není alfanumerické, tak to projde, ale prostě to nepřeloží (naopak to vyescapuje).

tomees
Člen | 59
+
0
-

mám stejný problém v nové verzi z 11.11.

B4nan
Člen | 13
+
0
-

A ještě další věc ke snippetům – dá se nějak nastavit, aby <tr n:snippet="nazevSnippetu">...</tr> přeložilo jako <tr id="snippet--nazevSnippetu">...</tr>? Teď to před ten řádek nacpe div (popřípadě jiný prvek, který si specifikuji druhým parametrem.

tomees
Člen | 59
+
0
-

ja se vracim k predchozi „zavinacove verzi“… bez dynamických snippetů je tahle verze pro mě nepoužitelná

David Grudl
Nette Core | 8142
+
0
-

Implementace zatím není kompletní, info viz https://forum.nette.org/…zi-nette-2-0

ldown
Člen | 29
+
0
-

Jak to vypadá s dynamickými snippety? Nebo nemá někdo nějaký workaround?

bojovyletoun
Člen | 667
+
0
-

zde je experimentální podpora dynamické snippetů. Pak exituje pár hacků + příspěvky pod. Taky se to dá řešit komponentou

Pozn: mluvím samozřejmě o verzi 2, tam jsou snippety nahrazeny bloky. Zde je souhrn

Osobně jsem zvědavý na to řešení v prvním linku, až to někdo vyzkouší, a řekne jak to funguje.

Editoval bojovyletoun (7. 4. 2011 22:55)