Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Превью картинка видео ВКотакте

Превью картинка видео ВКотакте


     09.09.2013    Общие вопросы, jQuery    15468

вопрос
Как вытащить превью картинку в видео вконтакте и вставить в нужное место сайта?
Допустим у меня есть дополнительное поле в которое я вставляю видео из контакта, потом вывожу его в шаблоне обычным способом. И допустим есть картинка
в которую автоматически вставляется картинка из видео. Как такое реализовать?

18 комментариев

Roman.NMSK
Юзер

Roman.NMSK - 10 сентября 2013 11:54 -

1 минута поиска в яндексе и вот результат

// подключаем парсер
include('simple_html_dom.php');

$code = '<iframe width="607" height="360" src="https://vk.com/video_ext.php?oid=12470377&amp;id=165329953&amp;hash=4f2575e812cb0311" frameborder="0"></iframe>';

// получаем url на сам плеер, атрибут src тэга iframe
$code_dom = str_get_html($code);
$url_in = $code_dom->find('iframe', 0)->src;

// загружаем и парсим код плеера
$html = file_get_html($url_in);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img = $html->find('#player_thumb', 0)->src;

// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img.'" />';

jarrro
Юзер

jarrro - 10 сентября 2013 13:21 -

спасибо, но я что то не сообразил как это работает:(

Roman.NMSK
Юзер

Roman.NMSK - 10 сентября 2013 17:08 -

в $code подается УРЛ ссылки видео из вконтакта (он у тебя будет записан в доп.поле) или у тебя там код плеера в виде ифрейма? далее в фулл-стори или шорт-стори в модулях добавляешь код и результат работы загоняешь в переменную для шаблона

jarrro
Юзер

jarrro - 10 сентября 2013 17:40 -

то есть нужно php знать? тогда не получится:(

Exile
Гости

Exile - 10 сентября 2013 17:49 -

Зачем его знать, если тебе уже готовый код дают?
Просто интегрировать с DLE надо.

jarrro
Юзер

jarrro - 10 сентября 2013 17:59 -

ну я так понял нужно лезть в /engine/modules/show.full.php? Если да, тогда как сделать саму переменную для видео?

Exile
Гости

Exile - 10 сентября 2013 18:12 -

Открой файл index.php, найди строчку:
echo $tpl->result['main'];
и замени ее на
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
Все, теперь можешь юзать php в main.tpl, и вывести переменную через дополнительное поле.

jarrro
Юзер

jarrro - 10 сентября 2013 18:40 -

а сам скрипт выводить так? :
<script>
    // подключаем парсер
    include('{THEME}/moduls/thumb/simple_html_dom.php');

$code = '<iframe width="607" height="360" src="[xfvalue_1]" frameborder="0"></iframe>';

// получаем url на сам плеер, атрибут src тэга iframe
$code_dom = str_get_html($code);
$url_in = $code_dom->find('iframe', 0)->src;

// загружаем и парсим код плеера
$html = file_get_html($url_in);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img = $html->find('#player_thumb', 0)->src;

// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img.'" />';
</script>

Exile
Гости

Exile - 10 сентября 2013 18:51 -

Неа, так вставляются яваскрипты. Вот так php:
<?php
// подключаем парсер
include('simple_html_dom.php');

$code = '<iframe width="607" height="360" src="https://vk.com/video_ext.php?oid=12470377&id=165329953&hash=4f2575e812cb0311" frameborder="0"></iframe>';

// получаем url на сам плеер, атрибут src тэга iframe
$code_dom = str_get_html($code);
$url_in = $code_dom->find('iframe', 0)->src;

// загружаем и парсим код плеера
$html = file_get_html($url_in);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img = $html->find('#player_thumb', 0)->src;

// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img.'" />';
?>
Почитай синтаксис php на досуге.

jarrro
Юзер

jarrro - 10 сентября 2013 20:02 -

теперь он выдает мне эту "грубую" ошибку - Fatal error: Call to undefined function str_get_html() in /home/menthol/html/animecountry/index.php(348) : eval()'d code on line 261 - почему-то связанную с index.php

Exile
Гости

Exile - 10 сентября 2013 20:31 -

Библиотеку Simple HTML DOM Parser подключил?
Он ругается на функцию str_get_html(), которая является функцией именно библиотеки Simple HTML DOM Parser, а не php.

1. Скачай библиотеку
2. Залей в корень сайта (рядом с файлом index.php)
3. Измени это:
include('simple_html_dom.php');
На это:
include('./simple_html_dom.php');


Только что проверил, все прекрасно работает.

jarrro
Юзер

jarrro - 10 сентября 2013 20:42 -

все, спасибо что разжевали - Работает:)

jarrro
Юзер

jarrro - 10 сентября 2013 22:04 -

А как сделать большое количество таких картинок на странице от каждого видео? я сделал вручную и продублировал 50 раз весь код и вывод и мне выдало такую ошибку: Fatal error: Call to a member function find() on a non-object in /home/menthol/html/animecountry/index.php(348) : eval()'d code on line 290

Exile
Гости

Exile - 11 сентября 2013 00:45 -

Первая картинка должна быть обязательно такой:
<?php
// подключаем парсер
include('./simple_html_dom.php');
$code1 = '<iframe width="607" height="360" src="https://vk.com/video_ext.php?oid=12470377&id=165329953&hash=4f2575e812cb0311" frameborder="0"></iframe>';
// получаем url на сам плеер, атрибут src тэга iframe
$code_dom1 = str_get_html($code1);
$url_in1 = $code_dom1->find('iframe', 0)->src;
// загружаем и парсим код плеера
$html1 = file_get_html($url_in1);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img1 = $html1->find('#player_thumb', 0)->src;
// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img1.'" />';
?>

Начиная со второй и дальше - код должен быть вот таким:
<?php
$code2 = '<iframe width="607" height="360" src="https://vk.com/video_ext.php?oid=12470377&id=165329953&hash=4f2575e812cb0311" frameborder="0"></iframe>';
// получаем url на сам плеер, атрибут src тэга iframe
$code_dom2 = str_get_html($code2);
$url_in2 = $code_dom1->find('iframe', 0)->src;
// загружаем и парсим код плеера
$html2 = file_get_html($url_in2);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img2 = $html2->find('#player_thumb', 0)->src;
// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img2.'" />';
?>
Меняй двойки на любые другие значения, чтобы добавить еще картинки, иначе будут ошибки. То есть код для третьей картинки будет вот таким:
<?php
$code3 = '<iframe width="607" height="360" src="https://vk.com/video_ext.php?oid=12470377&id=165329953&hash=4f2575e812cb0311" frameborder="0"></iframe>';
// получаем url на сам плеер, атрибут src тэга iframe
$code_dom3 = str_get_html($code3);
$url_in3 = $code_dom1->find('iframe', 0)->src;
// загружаем и парсим код плеера
$html3 = file_get_html($url_in3);
// находим в нем нужную картинку по ID=player_thumb и берем его атрибут src
$img3 = $html3->find('#player_thumb', 0)->src;
// демонстрируем результат, выводим картинку
echo '<img alt="" src="'.$img3.'" />';
?>

jarrro
Юзер

jarrro - 11 сентября 2013 07:46 -

ага, спасибо) я примерно так и делал, только в $html цифру не ставил)

Roman.NMSK
Юзер

Roman.NMSK - 11 сентября 2013 16:55 -

О_О а один раз в функцию оформить не судьба?

Exile
Гости

Exile - 11 сентября 2013 17:14 -

Я не шарю в php, только править могу, и то, не все. Можешь лучше - делай.

jarrro
Юзер

jarrro - 11 сентября 2013 21:58 -

Захотел сделать вывод картинки для shortstory - не получается, начинают конфликтовать на одной странице:(

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх