galerie – editace nahraných záznamů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ondrusu
Člen | 118
+
0
-

Ahojte, potřeboval bych poradit.
Mám galerii s fotkami. Fotky se ukládají na file systém s tím, že každá fotka má i svůj popis v db.
V show.latte mám výpis obrázků (+ každá fotka má u sebe checkobx a tím lze editovat / smazat více fotek najednou).
Zde je kod, kterým se zjištuje co uživatel zaškrnul aby to mohl editovat.

    public function actionEdit($id) {
        if ($this->getHttpRequest()->isMethod('POST') && !$this->edit_images) {
            $this->edit_images = $this->getHttpRequest()->getPost('images_list');
        }
    }

    public function renderEdit($id) {
        if (!$this->isAjax()) {
            $gallery = $this->gallery_facade->getGallery($id);
            $images = $this->gallery_facade->getGalleryImageListFromIds(
                       $gallery->getAcGalleryImages(),
                       $this->edit_images
            );
  ...
        }
    }

Podle proměnné $this->edit_images se řídí jaká IDčka jsou vybraná k editaci.
Ale nedaří se mi tuto proměnnou předat z formuláře, kde se fotky nahrávají do renderEdit.
Mám nadefinovaný formulář přes nette-forms a metodu success.

    public function handleFormSuccess(Form $form) {
        $id = $this->getParameter('id');
        $data = $form->getValues();

        $ids_img = $this->gallery_facade->uploadImages($data, $id);
        $this->edit_images = $ids_img;
        $this->redirect("Gallery:edit", $id);
    }

Metoda uploadImages mi vrátí IDčka aktuálně nahraných fotek. Jak je předat do render edit?

Děkuji.

David Matějka
Moderator | 6445
+
0
-

tim, ze to ulozis do $this->edit_images = $ids_img; a hned presmerujes, tak se to logicky ztrati, musis si to predat treba pres url

ondrusu
Člen | 118
+
+1
-

to je pravda. A jak lze prosím pomocí redirect poslat takovýto tvar url:
gallery/edit/7?images_list[]=6&images_list[]=11

Edited:
již jsem na to přišel
$this->redirect("Gallery:edit", array('id' => $id, 'images_list' => $ids_img));
jak jednoduché
Děkuji Davide za pomoc.

Editoval ondrusu (9. 4. 2017 16:39)