8Dle
Авторизация

Внедрение микро-разметки для видео в dle. часть 1 - open graph для яндекс

Предисловие:
Решил я создать тьюб, на который буду выкладывать посерийно сериалы и фильмы, и с него брать видео на свой киносайт. Читал различные статьи о том кто как размечает видео. В основном люди код прописывают в fullstory своего шаблона, что не совсем правильно, ведь лучше когда разметка находиться в теле head. Поковырял движок, посмотрел как реализованы встроенные в DLE теги, о которых мы все знаем. Придумал как их глобально внедрить в DLE.

Это будет первая статья из серии статей, посвященных микро-разметке видео. В этой статье будем "дружить" сайт с Яндексом при помощи Open Graph. Приступим?

1. Открываем /engine/engine.php и ищем в нем код[/code]
$s_meta .= "\n";

меняем его на код
$s_meta .= "\n";

Сохраняем файл.

2. Открываем /templates/шаблон/main.tpl и ищем в нем код
[/code]
меняем на
[code]


3. Открываем /engine/modules/show.full.php и ищем в нем код
if ( count($images) ) $social_tags['image'] = $images[0];

меняем на
if ( count($images) ) $social_tags['og:image'] = $images[0];

ищем код
$social_tags['video'] = $media[1][0];

меняем на
$social_tags['og:video'] = $media[1][0];

ищем код
$social_tags['audio'] = $media[1];

меняем на
$social_tags['og:audio'] = $media[1];


4. В этом же файле /engine/modules/show.full.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;

меняем его на код
$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'] = "";
        $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'];

4. Пояснение что к чему
Данное условие
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';

проверяет к какой категории принадлежит новость, у меня категории с id 5 и 6 это фильмы, с 1 по 4 сериалы и 6 - трейлеры. Соответственно фильмам присваиваем тип video.movie, сериалам video.episode, прочим видео video.other.

Также у меня на сайте есть следующие доп поля
poster - доп поле типа загружаемое изображение, выводит ссылку на кадр из видео.
revideo - доп поле, содержащее id видео в граббере, с помощью которого я вывожу видео-плеер
time_sec - сюда я вписываю длительность видео в секундах

Итог данных манипуляций вы можете увидеть на верхней заглавной картинке этой статьи.

Автор статьи: DomiTori.
Мой новоиспеченный блог о DLE: Dle.Press (дорабатываю)

Продолжение следует. В следующих статьях "подружим" VK и Twitter с нашим сайтом.

Желающим отблагодарить "на пиво" мои кошельки вебмани:

Рубли - R417794992142
Гривни - U357368699010
$ - Z244912848144

Жмите на Кнопу ниже, или подписывайтесь!


Читайте также
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Dle это движок который изначально проектировался для создания новостных сайтов, но по мере своего развития движка значительно расширил свою функциональность и стал универсальным средством разработки и сопровождения сайтов и блогов различной направленности и тематики. По сравнению с другими бесплатными (и некоторыми платными) CMS системами движок dle обладает довольно обширными возможности.

Авторизация