Zobrazení obrázku – nechová se jak má
- RDPanek
- Člen | 189
Potřebuji vykreslit obrázek…
v presenteru
$target = WWW_DIR."/photogallery/14_billy-1920x1200.jpg";
$this->template->image = Image::fromFile($target)->resize(100, 100);
v template
<img src="{$image->send()}" alt="fotografie" class="photographyStyle"/>
asi špatně nasazuji, v prohlížeči se mi zobrazí „http://xxx.aplikace.cz/multimedia/detail-photo/?do=photoForm-submit“ s title (JPEG obrázek)
uff – netuším kde by mohla být chyba. vím že v template volat
$image->send() není správně, protože Image::fromFile mi vrací
binárku.
pokud ->send() uvedu v prezentu – obrázek se mi v pohodě vykreslí na
prázdné stránce. Spíš nevím, jak správně implementovat. Děkuji za
připomínky :-)
Editoval Gaudentius (6. 6. 2010 16:51)
- redhead
- Člen | 1313
send() ale nevrací cestu k obrazku, proto je hloupost to vkládat do atributu src. Obrázek musíš někam uložit a do src dát cestu k němu.
Pokud to chceš mít dynamicky jak to chceš. Musíš udělat nějaký nový view (asi i presenter) a v něm dělat změny obrázku a posílat ho zpět přes send(), ovšem do src musíš dát odkaz na ten view (ne obrázek samotný tj. jeho obsah/data).
treba:
<img src="{plink Image:thumbnail '/photogallery/14_billy-1920x1200.jpg'}" />
class ImagePresenter extends BasePresenter
{
public function renderThumbnail($img)
{
$target = WWW_DIR.$img;
$img = Image::fromFile($target)->resize(100, 100);
$img->send();
}
}
Editoval redhead (6. 6. 2010 17:00)
- RDPanek
- Člen | 189
Zdá se to jako zajímavý nápad. v presenteru mám:
public function handleThumbamil($url)
{
$img = Image::fromFile($url)->resize(100, 100);
$img->send();
}
v template
<img src="{plink thumbamil! 'url'=>$target}" alt="fotografie" class="photographyStyle"/>
když si neachám zobrazit vygenerovaný kód:
<img class="photographyStyle" alt="fotografie" src="/multimedia/detail-photo/?url=W%3A%5Cxampp%5Chtdocs%5Cnetcontrol%2Fphotogallery%2F14_billy-1920x1200.jpg&do=thumbamil">
nesmyslná cesta :-(
- RDPanek
- Člen | 189
Ola napsal(a):
Ta cesta není nesmyslná, je OK. Pokud to nefunguje, tak je chyba někde jinde.
Za předchozí příspěvek se omlouvám, má tam být WWW_DIR.
EDIT: asi tam chybí ukončení, takhle se asi ještě kreslí šablona. za ten send zkus doplnit $this->terminate();
Díky přítely – terminate byl ten problém :-)