Uploadovani souboru a jeho obsluha uz primo ve formulari
- Ja
- Člen | 260
Ahoj,
nejakou dobu si lamu hlavu, jakym zpusobem by slo nejvice zjednodusit nahravani
a obsluha souboru ve formularich. Melo by to vypadat ve vysledku
nejak takto:
label input [stahnout soubor] [smazat soubor]
co se tyce DB casti, tak cesta k tomu konkretnimu souboru by byla ulozena v jednom sloupci
jak toto resite vy? potreboval bych alespon nakopnout, jakym smerem bych se mohl ubirat.
diky moc za kazdy postrceni
- Ot@s
- Backer | 476
Já to svého času ošulil přes HTML v description:
$form->addUpload('image', 'Obrázek:')
->addCondition(Form::FILLED)
->addRule(Form::IMAGE, 'Obrazek musí být ve formatu JPEG, PNG nebo GIF.');
if ([... podminka na existenci zaznamu v DB ...]) {
$relative_path = [... cesta k souboru ze sloupečku z DB ...]; // zacina na /
if (file_exists(WWW_DIR.$relative_path)) {
$ctrl = Html::el('span');
$ctrl->add( Html::el('a')->href($this->template->basePath.$relative_path)->setText('náhled obrázku ') );
$ctrl->add( Html::el('span')->setText( ' | ') );
$ctrl->add( Html::el('a')->href($this->link('unlink!'))->setText('odstranit obrázek') );
$form['image']->setOption('description', $ctrl );
}
}
Edit: Je to nástřel, chybí zpracování samotného signálu
unlink
(pokud máš souborů víc, doplň si jeho ID), náhled
obrázku (třeba) do lightboxu atd…
Editoval Ot@s (21. 8. 2012 11:37)
- Ot@s
- Backer | 476
Ja napsal(a):
Moc hezke! Diky moc. A to pouzivas doted?
U starších projektů ano. U novějších jsem si napsal vlastní formulářovou komponentu.
Btw, je mozny jiny pristup do description nez pres $form[value]->options[description]?
Nepřímo ano – pokud máš například formulář v definici komponenty
(= návratový objekt komponenty je Form), tak přes
$this['nazevFormularoveKomponenty']['image']->options(...)
(např. v presenteru). Je to vhodné v případě, kdy nemáš k dispozici
výchozí hodnoty formuláře uvnitř definice komponenty (opět „z venku“
voláš
$this['nazevFormularoveKomponenty']->setDefaults(....)
).