DomiTori
Постоялец
- Регистрация
- 15 Июл 2015
- Сообщения
- 92
- Реакции
- 88
- Автор темы
- #1
Предисловие:
Решил я создать тьюб, на который буду выкладывать посерийно сериалы и фильмы, и с него брать видео на свой киносайт. Читал различные статьи о том кто как размечает видео. В основном люди код прописывают в fullstory своего шаблона, что не совсем правильно, ведь лучше когда разметка находиться в теле head. Поковырял движок, посмотрел как реализованы встроенные в DLE теги, о которых мы все знаем. Придумал как их глобально внедрить в DLE.
Это будет первая статья из серии статей, посвященных микро-разметке видео. В этой статье будем "дружить" сайт с Яндексом при помощи Open Graph. Приступим?
1. Открываем /engine/engine.php и ищем в нем код[/PHP]
PHP:
$s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\" />\n";
PHP:
$s_meta .= "<meta property=\"{$key}\" content=\"{$value}\" />\n";
2. Открываем /templates/шаблон/main.tpl и ищем в нем код
PHP:
<html>
PHP:
<html lang="ru" prefix="og: http://ogp.me/ns#
video: http://ogp.me/ns/video#
ya: http://webmaster.yandex.ru/vocabularies/" >
3. Открываем /engine/modules/show.full.php и ищем в нем код
PHP:
if ( count($images) ) $social_tags['image'] = $images[0];
PHP:
if ( count($images) ) $social_tags['og:image'] = $images[0];
PHP:
$social_tags['video'] = $media[1][0];
PHP:
$social_tags['og:video'] = $media[1][0];
PHP:
$social_tags['audio'] = $media[1];
PHP:
$social_tags['og:audio'] = $media[1];
4. В этом же файле /engine/modules/show.full.php ищем код
PHP:
$social_tags['site_name'] = $config['home_title'];
$social_tags['type'] = 'article';
$social_tags['title'] = htmlspecialchars( $row['title'], ENT_QUOTES, $config['charset'] );
$social_tags['url'] = $full_link;
PHP:
$social_tags['og:site_name'] = $config['home_title'];
$social_tags['og:title'] = htmlspecialchars( $row['title'], ENT_QUOTES, $config['charset'] );
$social_tags['og:description'] = $row['descr'];
if ($category_id == 5 OR $category_id == 6) $social_tags['og:type'] = 'video.movie';
elseif ($category_id == 1 OR $category_id == 2 OR $category_id == 3 OR $category_id == 4) $social_tags['og:type'] = 'video.episode';
else $social_tags['og:type'] = 'video.other';
$xfieldsdata = xfieldsdataload( $row['xfields'] );
$social_tags['og:image'] = "http://сайт.ру/uploads/posts/" . $xfieldsdata['poster'];
$social_tags['og:url'] = $full_link;
$social_tags['og:video'] = "http://сайт.ру/video.php?vid=" . $xfieldsdata['revideo'];
$social_tags['video:duration'] = $xfieldsdata['time_sec'];
$social_tags['og:video:type'] = "application/x-shockwave-flash";
$social_tags['og:video:width'] = "1024";
$social_tags['og:video:height'] = "768";
$social_tags['ya:ovs:upload_date'] = date( 'Y-m-d', $row['date'] ) . "T" . date( 'H:i:s', $row['date'] );
$social_tags['ya:ovs:adult'] = "false";
$social_tags['ya:ovs:content_id'] = $xfieldsdata['revideo'];
$social_tags['ya:ovs:status'] = "published";
$social_tags['ya:ovs:login'] = $row['autor'];
$social_tags['ya:ovs:is_official'] = "no";
$social_tags['ya:ovs:available_platform'] = "Desktop";
$social_tags['ya:ovs:available_platform'] = "Mobile";
$social_tags['ya:ovs:allow_embed'] = "true";
$social_tags['ya:ovs:embed_html'] = "<iframe src='http://сайт.ру/video.php?vid=" . $xfieldsdata['revideo'] . "'></iframe>";
$social_tags['ya:ovs:category'] = $cat_info[$category_id]['name'];
$social_tags['ya:ovs:languages'] = "ru";
$social_tags['ya:ovs:feed_url'] = $full_link;
$social_tags['ya:ovs:views_total'] = number_format($row['news_read'], 0, ',', ' ');
$social_tags['ya:ovs:comments'] = number_format($row['comm_num'], 0, ',', ' ');
$social_tags['ya:ovs:likes'] = $row['vote_num'];
$social_tags['ya:ovs:rating'] = $row['rating'];
$social_tags['ya:ovs:poster'] = "http://сайт.ру/uploads/posts/" . $xfieldsdata['poster'];
Данное условие
PHP:
if ($category_id == 5 OR $category_id == 6) $social_tags['og:type'] = 'video.movie';
elseif ($category_id == 1 OR $category_id == 2 OR $category_id == 3 OR $category_id == 4) $social_tags['og:type'] = 'video.episode';
else $social_tags['og:type'] = 'video.other';
Также у меня на сайте есть следующие доп поля
poster - доп поле типа загружаемое изображение, выводит ссылку на кадр из видео.
revideo - доп поле, содержащее id видео в граббере, с помощью которого я вывожу видео-плеер
time_sec - сюда я вписываю длительность видео в секундах
Итог данных манипуляций вы можете увидеть на верхней заглавной картинке этой статьи.
Автор статьи: DomiTori.
Мой новоиспеченный блог о DLE: Для просмотра ссылки Войди
Продолжение следует. В следующих статьях "подружим" VK и Twitter с нашим сайтом.
Желающим отблагодарить "на пиво" мои кошельки вебмани:
Рубли - R417794992142
Гривни - U357368699010
$ - Z244912848144