sablony syntaxe makra link
- baz
- Člen | 42
Ahoj,
porad se peru s makrem link a nejspis mi unikaji jeho vsechny moznosti.
Konkretne mam nasledujici problem:
v sablone default mam u odkazu {link delete!, $workshop->id}, coz mi
vygeneruje neco jako
http://localhost/…p/default/12?…
ale problem nastava pokud chci delete zavolat z sablony tohoto presenteru
(dejme tomu „list“)
co mam zadat do makra link, aby vysledny kod byl zase :
http://localhost/…p/default/12?…
zkousel jsem
- {link default:delete!, $workshop->id}
- {link :Admin:Workshop:default:delete!, $workshop->id}
- {link :Admin:Workshop:default, ‚do‘ ⇒ ‚delete‘}
- {link :Admin:Workshop:default, ‚do‘ ⇒ ‚delete‘, ‚id‘ ⇒ $workshop->id}
posledni pokus mi vygeneruje ten pozadovany link, ale nevim jestli je to
spravny postup, nebo je jednodussi cesta.
Muzete mi nekdo poradit? Nerad bych se ucil neco spatne, tezko se toho potom
zbavuje :-)
Editoval baz (24. 11. 2010 23:30)
- joseff
- Člen | 233
Moc jsem nepochopil otazku, ale prijde mi ze se snazis zavolat z nejake sablony jiny presenter. Pokud to tak je tak pouzij plink pro ten tvar co puzivas za druhé až čtvrté mi přijde že musíš mít registrovaný NetteLinks každopádně ten tvůj poslední tvar teda vůbec nevypadá zdravě…
- Jur4
- Člen | 51
Pokud jsem to spravne pochopil, tak se snazis zavolat signal
handleDelete
z ruznych view jednoho presenteru tak aby jsi mel na
vsech mistech url vedouci na default.
Tady je dulezite vedet ze signal se nijak nevaze na konkretni view. To
znamena ze v pripade generovani adresy na signal se vezme aktualni adresa a
prida se ono ?do=delete
.
Vubec ale nemusis resit nad jakou adresou se to vola. Signal se zpracuje spravne ale po zpracovani by jsi stejne pak mel nekam presmerovat (tam kam potrebujes). Asi takhle:
$this->redirect('default'); // kamkoliv chces asi default v tvem pripade
$this->redirect('this'); // aktualni stranka
Zabrani to taky tomu aby nekdo signal volal opakovane reloadem stranky.
Ale pokud to chces opravdu chces udelat tvym zpusobem, tak me nenapada jine reseni nez to, na ktere si uz prisel.
Mozna jsem to ale nepochopil, moje chapani uz tak trosku spi ;).
- Filip Procházka
- Moderator | 4668
a co takhle ten signál definovat v předkovi obou šablon? v BasePresenteru toho modulu
nebo to neměj jako signál, ale jako akci, u smazání je stejně žádoucí potvrzovací formulář s ANO NE, kvůli CSRF