Routování a relativní cesty k obrázkům
- tomaass
- Člen | 74
Ahoj,
mám v šablonách obrázky a jejich cesty jsou relativní. Pak mam cesty k obrakum i v presenteru. Všechno fungovalo se SimpleRouterem do doby, než sem se začal zajímat o hezčí cesty. Do templatů jsem začal přidávat {$basePath}. Dále v presenteru mám továrničku na formulář. Tlačítko pro odeslání je děláno jako obrázek.
Dříve (se SimpleRouterem) mi stačilo přidat ho jako
$form->addImage('subm', 'images/inzert/btn_zobrazit.png')
->onClick[] = array($this, 'obrazit');
a teď to mám dělat takto?
$form->addImage('subm', $this->context->httpRequest->url->basePath.'/images/inzert/btn_zobrazit.png')
->onClick[] = array($this, 'obrazit');
Není to fuj? Snad existuje lepší působ, než psaní románů…
Zdraví Tom
- tomaass
- Člen | 74
OK. Dvě témata zakládám z důvodu toho, že na první téma mi nikdo neodpověděl a tak jsem se domníval že je v nerelevantní sekci.
Ano, vím že se to tak v šablonách dělá s basepath
Ano, asi to je „blbost“. Ale spíše než kritiku bych rád věděl, jaký je „best practise“. Byl bys prosí tak hodný a naučil mě, jak to mám udělat?
Díky
- Felix
- Nette Core | 1247
Ja jsem $form->addImage
snad nikdy nepouzil. Pokud chces
obrazek (jako tlacitko) tak to udelej pres CSS, pokud chces vlozit HTML do
formu, tak to bude musis nejak obejit protoze to defaultne moc dobre nejde,
muzes treba zkusit MarkupControl
Editoval Felix (18. 2. 2013 9:34)
- redhead
- Člen | 1313
Spíš než přidávat další Control pro vkládání HTML je lepší renderovat formulář buď ručně nebo si vytvořit vlastní Renderer (a nebo pokud jde jen o styl, tak samozřejmě CSS, jak psal @Felix).
Pracovat s obrázky (natož se statickými) nebo vůbec s něčím, co dokáže CSS nebo šablona (kam práce s GUI patří) není v presenteru dobrý nápad.
EDIT: pokud jen styluješ odesílací tlačítko, použit addSubmit() a uprav si CSS jak je libo. Hlavně proboha k tomu nepoužívej image input. Navíc, CSS ti zaručí znovupoužitelnost u další formulářů, snad tohle nechceš psát u každého formuláře (když nechceš psát ty romány).
Editoval redhead (18. 2. 2013 16:14)
- tomaass
- Člen | 74
Díky.
Tak jasně. Tam jde o to, že mám aplikaci, která už roky běží a má
několik formulářů a každý má jiné odesílací tlačítko (rozuměj jiný
obrázek pro tlačítko) a tak nejrychlejší to bylo udělat v presenteru.
Ještě jednu podotázku: Když budu stylovat formulá submit a u každýho formuláře budu chtít jinej obrázek, tak budu asi chtít znát přímo ID toho inputu, že? Neumím zjistit ID submitu, abych ho nastyloval. Neumím zjistit ani ID toho submitu v šabloně, natož do CSS souboru, kde se nedá latte použít. Nejrychlejší, ale zároveň největší dobytčárna, co mě napadne je, podívat se do HTML zdroje s vyrenderovanym formem a podívat se na ID. Ale tak se to asi nedělá, že? Jak to děláte vy?
- enumag
- Člen | 2118
@tomaass: Nastav mu vlastní ID, na ta vygenerovaná se nespolehej, ten tvar se v další verzi může změnit.
Editoval enumag (18. 2. 2013 21:46)