nedostupná proměnná $form v šabloně – komponenty v presenteru

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

Ahoj,

napsal jsem si formulář proupload ale náhle jsem zjistil, že se v presenteru píše pomocí komponenty, tak jsem to přepsal a mám problém, nechce se mi vykreslit.

V šabloně mám klasicky {$form} ale píše mi to,že je to nedefinovaná proměnná. renderDefault mám prázdnej, vyčetl jsem, že by se to mělo dělat něják automaticky nebo což.

Posílámcelý ten prsenter. Díky za pomoc.

<?php


namespace App\Presenters;

use Nette,
	App\Model,
        Nette\Application\UI\Form;

use Nette\Image;



class UploadPresenter extends BasePresenter
{
        /**
         *
         * @var Repository\Upload @inject
         */
        public $upload;

            function createComponentUploadForm()
            {
                $form = new Form;
                $form->addSelect('gallery', 'Přiřadit galerii: ', $this->upload->getGalleries());
                $form->addText('id_author','Tvoje ID')
                     ->addRule($form::FILLED);
                $form->addUpload('img','Snímky: ', true)
                        ->addRule($form::FILLED, 'Je potřeba vybrat nějaké snímky.')
                            ->addRule(Form::IMAGE, 'Obrázek může být pouze ve formátu jpg, png nebo gif.')
                                ->addRule(Form::MAX_FILE_SIZE,'Velikost snímku nesmí překročit 2 mb.', 2*1048576);
                $form->addSubmit('upload', 'Nahrát');

                $form->onSuccess[] = array($this, 'UploadFormSubmitted');

                return $form;
            }


            function UploadFormSubmitted(\Form $form)
            {
                $valuesOfForm = $form->getValues();
                $path_original = 'images/galleries/'.$valuesOfForm->gallery.'/original/';
                $path_resized = 'images/galleries/'.$valuesOfForm->gallery.'/resized/';


                foreach($valuesOfForm->img as $img)
                    {

                    \Nette\Diagnostics\Debugger::dump($img->name);

                    \Nette\Diagnostics\Debugger::dump($img->temporaryFile);

                    \Nette\Diagnostics\Debugger::dump(($this->upload->getIdOfLastPic()+1));





                    if(move_uploaded_file($img->temporaryFile, $path_original.$img->name))
                        {
                            $type = explode('.', $img->name);

                            $newName = ($this->upload->getIdOfLastPic()+1) . '.' . \Nette\Utils\Strings::lower(end($type));

                            rename($path_original . $img->name , $path_original . $newName);
                            $this->upload->insertPic($newName, $valuesOfForm->id_author, $valuesOfForm->gallery);


                            $imgResize = \Nette\Image::fromFile($path_original . $newName);
                            $imgResize->resize(197, NULL);
                            $imgResize->sharpen();
                            $imgResize->save($path_resized. $newName,80);
                        }

                    }

                $this->flashMessage('Upload proběhl úspěšně!', 'info');
                \Nette\Diagnostics\Debugger::dump($valuesOfForm);

	}

	public function renderDefault()
	{
        }

}
David Matějka
Moderator | 6445
+
+1
-

v sablone

{control uploadForm}

EDIT:
a v function UploadFormSubmitted(\Form $form) mas chybu – smaz to zpetne lomitko pred Form

Editoval matej21 (10. 6. 2014 18:21)

qteck
Člen | 164
+
0
-

thx a lot :-))