Dynamicke vytvareni snippetu

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

Zajimalo by me jak to delate aby to spravne fungovalo.
Moje reseni mi prijde strasne kostrbaty:
udelam se snippet s pevnym jmenem napr snippetnames a v nem si vytvorim pomoci assign nazev snippetu pro danou polozku, pote uz muzu na spravnem miste snippet pomoci teto promenne pojmenovat no a pak uz si jen poslu tu rozdilnou cast z generovaneho nazvu snippetu abych vedel co invalidovat + invaliduju snippet snippetnames na vytvoreni tech nazvu snippetu

Tak me to trosku trapi protoze mi to dvakrat elegantni neprijde, tak by me zajimalo jak to dela nekdo jiny.

despiq
Člen | 320
+
0
-

Nikdo to nedela? Nebo se to delat nema? Blba otazka? Nebo to snad nikdo nevi?

Ondřej Mirtes
Člen | 1536
+
0
-

Asi nikdo nepochopil, co děláš, proč to děláš a jaký chceš výsledek :o)

despiq
Člen | 320
+
0
-

ah, dobre moje chyba zkusim to znovu

Mam situaci:
na jedne strance mam nekolik polozek, u kazde polozky se daji pridavat ci ubirat nejake jinde nadefinovane atributy

Co bych chtel:
tento box s atributama bych chtel mit jako snippet ale pro kazdou polozku zvlast, takze pri ajaxovem pozadavku chci v handle funkci invalidovat pouze snippet pro danou polozku u ktere se meni atributy

Duvod:
prijde mi ze by se mel invalidovat pouze snippet pro danou polozku protoze to je jedine misto kde se neco v tu chvili zmeni a hlavne na zobrazeni tech polozek pouzivam jquery.ui accordion takze kdyz se obnovi cely accordion tak to dela psi kusy

Otazka:
Znate nejaky elegantnejsi zpusob jak to vyresit nez jak sem popisoval v prvnim prispevku?

Diky ze se to nekdo pokusi aspon pochopit, s tim vyjadrovanim mam proste nekdy problemy.

Ondřej Mirtes
Člen | 1536
+
0
-

Nebudu luštit tvůj první příspěvek :) Ale vyřešit to jde celkem snadno – v šabloně – předpokládám v nějakém foreachi uvedeš snippet takto:

{snippet item-$item->id}
vnitřek snippetu
{/snippet}

Kde $item je aktuálně projížděný prvek z toho foreache a $item->id je jeho klíč (shodný s tím, který posíláš do handle metody). Snippet se pak bude jmenovat např. „item-5“.

V handle metodě pak zavoláš $this->invalidateControl('item-' . $id), kde $id je ten parametr metody.

despiq
Člen | 320
+
0
-

Samozrejme, tak toto me napadlo jako prvni krasne reseni hned napoprve ale moje neznalost helperu mi to prekazila.

{snippet item-$item->id}

projde v poradku

{snippet item-$item['data']->id}

Vygeneruje parse error a na tom sem se zasekl a vubec mi nedoslo v cem je chyba.

Dekuju moc!

Editoval despiq (21. 12. 2009 0:06)

redhead
Člen | 1313
+
0
-
{snippet "item-".$item['data']->id}
despiq
Člen | 320
+
0
-

Dekuju uplne nejvic moc.

Kluci vy jste tak sikovny, hlavne je to uplne jasny a ja sem uplnej trouba ze sem na to neprisel.

Jeste jednou dekuji.

Ondřej Mirtes
Člen | 1536
+
0
-

Kdy máš parse error v šabloně, tak se podívej do cache (kde je už šablona v čistém PHP), proč tam ten parse error je :) Většinou stačí nějak takhle důvtipně přidat šablony :)