Dynamicke vytvareni snippetu
- despiq
- Člen | 320
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
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
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
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)
- Ondřej Mirtes
- Člen | 1536
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 :)