Pouziti js parametru v presenteru
- Piticu
- Člen | 93
Ahoj vsem,
mam nasledujici problem:
Mam stranku kde jsou vice fotogalerii. Kazda fotogalerii ma svoje data-id kde id je nazev slozky, kde se nachazi fotky dane fotogalerii. Abych mohli ziskat fotky ze slozky v presenteru, pomoci funkce getPhotogalleryImages, potrebuji nejak do te funkce dostat to id fotogalerii.
Parametr mohu bez problemu ziskat pomoci JS/Jquery, ale nevim zda je mozne ho dostat do presenteru. Nekde jsem se docetl, ze latte pracuje na strane serveru, takze nemuzu do neho vlozit JS parametr.
Moje otazka je, prisel nekdo na nejaky zpusob? Pokud ne, znate/napada vas jiny zpusob?
Funkce v presenteru pro ziskani obrazku
private function getPhotogalleryImages($id,$pg_path)
{
$masks =['*.jpg','*.png','*.gif','*.jpeg'];
$dir = '../www/user_images/' . $id . '/' . $pg_path . '/';
$images = array();
$path = 'user_images/' . $id . '/'. $pg_path . '/';
if(!file_exists($path)) mkdir($path,'0777',true);
foreach (Finder::findFiles($masks)
->in($dir) as $file) {
$images[] = $path . $file->getBasename();
}
return $images;
}
Predstava
function getPhotogalleryImages(id) {
var images = {$presenter->getPhotogalleryImages($presenter->getParameter('id'),'photogallery/' + id)};
return images;
}
getPhotoGalleryImages(component.find('.photogallery-container').attr('data-id'));
Editoval Piticu (10. 4. 2018 23:36)
- Piticu
- Člen | 93
Odpovim sam sobe na otazku a dizkusi tu necham, kdyby nahodou nekdo taky hledal odpoved.
Zkratka nelze php funkce predat js parametr (viz. Calling PHP function and passing javascript variables).
Jedina moznost je pres Ajax pozadavek. V mem pripade to nejspis nepomuze, protoze ja potrebuji ty obrazky dostat pred tim nez vykresluji sablonu.
Zatim mi napadly 2 reseni: 1. Vlozit to id nekam do db, 2. Ziskat to id v presenteru pomoci DOM. Rekl bych ze prvni varianta je rychlejsi a jednodussi.
Piticu napsal(a):
Ahoj vsem,
mam nasledujici problem:
Mam stranku kde jsou vice fotogalerii. Kazda fotogalerii ma svoje data-id kde id je nazev slozky, kde se nachazi fotky dane fotogalerii. Abych mohli ziskat fotky ze slozky v presenteru, pomoci funkce getPhotogalleryImages, potrebuji nejak do te funkce dostat to id fotogalerii.
Parametr mohu bez problemu ziskat pomoci JS/Jquery, ale nevim zda je mozne ho dostat do presenteru. Nekde jsem se docetl, ze latte pracuje na strane serveru, takze nemuzu do neho vlozit JS parametr.
Moje otazka je, prisel nekdo na nejaky zpusob? Pokud ne, znate/napada vas jiny zpusob?
Funkce v presenteru pro ziskani obrazku
private function getPhotogalleryImages($id,$pg_path) { $masks =['*.jpg','*.png','*.gif','*.jpeg']; $dir = '../www/user_images/' . $id . '/' . $pg_path . '/'; $images = array(); $path = 'user_images/' . $id . '/'. $pg_path . '/'; if(!file_exists($path)) mkdir($path,'0777',true); foreach (Finder::findFiles($masks) ->in($dir) as $file) { $images[] = $path . $file->getBasename(); } return $images; }
Predstava
function getPhotogalleryImages(id) { var images = {$presenter->getPhotogalleryImages($presenter->getParameter('id'),'photogallery/' + id)}; return images; } getPhotoGalleryImages(component.find('.photogallery-container').attr('data-id'));
- KristianSubweb
- Člen | 146
To bude nejaká view podstránka pre tú img ?
Editoval KristianSubweb (11. 4. 2018 11:09)
- Piticu
- Člen | 93
ID vytvorim v JS jako GUID, ktery pridavam fotogalerii. Kod fotogalerii ukladam do db, takze tam je jakokdyby i to ID (v kodu). Vlastne kdyz se nad tim zamyslim, kdybych to id vytvoril na strane serveru bych si ulehcil praci. Zbytecne to delam na strane klienta.
EDIT Mozna by to ale uplne neslo na strane serveru. Pracuji na jednim websitebuildru a ta fotogalerii je jako snippet, ktery uzivatel muze vkladat, takze potrebuji mu pridat ID hned jak ho uzivatel vklada. Mozna by to ale slo pomoci Ajax requestu.
Jinak problem jsem vyresil, tim ze jsem pridal novy sloupec do db, kde to ID ukladam.
CZechBoY napsal(a):
Kde vlastně vezmeš to id? To se přece musí taky vzít někde ze serverový části, ne?
Editoval Piticu (11. 4. 2018 14:47)