Formulář – vlastní obrázek a automatický obrázek z youtube

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

Zdravím,

Mám formulář v administraci, kde požaduji nadpis, popis, url z youtube a vybrat obrázek z pc.
Chci mít dvě možnosti nahrávání

  1. vyplnění nadpisu, popisu a url z youtube, problém nastáva tehdy kdy nevyberu obrázek z pc.
  2. vyplnění nadpisu, popisu, url ^ a obrázek pro lepší náhled.

Takhle bych to rád proto, protože na youtube občas bývaji náhledy na prd.

Můj kod. Dá se to nějak šikovně upravit abych nemusel vždy vybírat obrázek z pc?

<?php

<?php
namespace AdminModule\Forms;

use Nette\Application\UI;
use Nette\Image;
use Nette\Utils\Strings;

class AddVideoForm extends \BaseForm
{
	/** @var \Nette\Security\User */
	private $user;

	public function __construct(\Nette\Security\User $user)
	{
		parent::__construct();
		$this->user = $user;
		$form = $this;
		$form->addHidden('id');
		$form->addText('title', 'Nadpis:')
			->setRequired('Vyplň!');

    $form->addText('popisek', 'Popisek:');

		$form->addText('url', 'URL:')
			->setRequired('Vyplň!');

    $form->addUpload('upload', 'Obrázek');

		$form->addSubmit('send', 'Přidat')
				->setAttribute('class', 'btn btn-primary');

		// call method signInFormSucceeded() on success
		$form->onSuccess[] = $this->formSubmitted;
		return $form;
	}



	public function formSubmitted($form)
	{
    $values = $form->getValues();

    $photo = $values->upload;
		$extension = stristr($photo->name,'.');
		$image = Image::fromFile($photo);
		$name = mt_rand().$extension;
		$image->save('uploads/images/'.$name);

		$url = $values->url;
		parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
		$url = $my_array_of_vars['v'];

		$url1 = Strings::webalize($values->title);

		$data = array(
			'title' => $values->title,
			'url' => $url1,
			'src' => $url,
      'src2' => $name,
      'popisek' => $values->popisek,
			'type' => 'video',
			'user_id' => $this->user->id,
			'ins_dt' => new \DateTime
			);
		$post = $this->presenter->models->posts->getTable()->insert($data);

		$betterUrl = $this->presenter->models->posts->generateUrl($post->id);

		$data2 = array(
			'url' => $betterUrl
			);
		$this->presenter->models->posts->getPost($post->id)->update($data2);

		$this->presenter->flashMessage('Úspěšně přidáno!', 'success');
		$this->presenter->redirect('this');
	}

}

?>

Editoval Muragosik (24. 1. 2015 16:24)

webdata
Člen | 153
+
0
-

Zde je vše jasné.