Převod youtube videa (části kódu)
- wicked
- Člen | 290
Zdravím přátelé,
chtěl jsem se Váš optat, jak řešíte vkládání youtube videí do aplikací?
Jde mi o to, že na webu budu mít formulář pro vložení videí, který se uloží do DB a následně ho potom vytáhnu do šablony.
Chci udělat takovou funkčnost, že když uživatel zkopíruje URL, ta se uloží a musí se ale převést.
Respektivě user zkopíruje třeba takto link http://www.youtube.com/watch?…
A ten se dosadí do kódu
{foreach $videos as $video}
<iframe width="255" height="151" src="http://www.youtube.com/watch?v=hTWKbfoikeg" frameborder="0" allowfullscreen></iframe>
{/foreach}
Ale takto se video na webu nezobrazí, potřebuji aby se to automaticky přeložilo na
{foreach $videos as $video}
<iframe width="255" height="315" src="http://www.youtube.com/embed/hTWKbfoikeg" frameborder="0" allowfullscreen></iframe>
{/foreach}
Řešil jste to někdo? Máte na to někdo nějaký fígl?
Děkuji a s pozdravem
Wicked
- leninzprahy
- Člen | 150
Nebo použít parse_str
něco jako
...
$url = new \Nette\Http\Url($video);
parse_str($url->getQuery(), $query);
$hash = $query['v'];
...
- leninzprahy
- Člen | 150
myslím že Hrach tím měl na mysli můj příspěvek
Do databáze (nebo někam) si nebudeš ukládat celé url
(http://www.youtube.com/watch?v=hTWKbfoikeg
), ale jen ten hash
(hTWKbfoikeg
) a k tomu se právě dostaneš
$url = new \Nette\Http\Url('http://www.youtube.com/watch?v=hTWKbfoikeg');
parse_str($url->getQuery(), $query);
$hash = $query['v'];
proměnná $hash
by nyní měla obsahovat právě
to hTWKbfoikeg
- leninzprahy
- Člen | 150
já bych to dal do modelu, tam kde ukládáš ty videa, takže v DB pak bude něco jako
+----------+---------------------+-------------+
| video_id | name | hash |
+----------+---------------------+-------------+
| 1 | Video 1 | hTWKbfoikeg |
| 2 | Video 2 | lOfn-TqzkFg |
- wicked
- Člen | 290
Tak teď jsem krapet zmatený …
O příspěvek výše jsi psal, že do DB budu ukládat celou url co user zkopíruje … takže http://www.youtube.com/watch?… a pochopil jsem to tak, že potom z DB budu tahat celou url ale předávat do proměné jenom ten $hash …
Teď jak jsi to napsal, bych to zase dal do presenteru, zakomponoval do Formuláře aby to ukládalo jenom ten hash …
- leninzprahy
- Člen | 150
psal jsem nebudeš :)
leninzprahy napsal(a):
Do databáze (nebo někam) si nebudeš ukládat celé url (
http://www.youtube.com/watch?v=hTWKbfoikeg
), ale jen ten hash (hTWKbfoikeg
) a k tomu se právě dostaneš
…
- wicked
- Člen | 290
Tak jsem to dokončil do zdárného konce :)
Všem mockrát děkuji za pomoc!!
Takto jsem to udělal v presenteru:
public function videoReceptPridan($form){
$values = $form->getValues();
$url = new Url($values['odkaz']);
parse_str($url->getQuery(), $query);
$hash = $query['v'];
dibi::query('insert into video_recept', array(
'nazev' => $values['nazev'],
'odkaz' => $hash,
'popis' => $values['popis'],
'komentare' => $values['komentare'],
'upozorneni' => $values['upozorneni'],
'datum' => new \DateTime()
));
$this->flashMessage('Recept byl úspěšně přidán!');
$this->redirect('Homepage:');
unset ($hash);
}
Ještě jednou, děkuji!
Editoval wicked (7. 5. 2013 16:07)
- Aurielle
- Člen | 1281
Pokud bys potřeboval vytáhnout ID videa z jakéhokoliv možného formátu, tak StackOverflow na to má pěkný thread.