1. Приветствую гостей и пользователей нашего форума! Первый раз вы у нас или же давно участвуете в жизни ресурса, хочу напомнить несколько моментов.

    1) Пользуемся поиском по форуму! Зачастую информация может находиться не по разделу!

    2) Раздел ИНФО-продуктов относительно новый, но имеем уже более 3000 высококлассных материалов (пользуемся сортировкой по прификсам).

    3) И самое важное, КАК КАЧАТЬ БЕЗ ОГРАНИЧЕНИЙ, вся информация находится по этой ссылке КУПИТЬ VIP

    4) Временная акция, получи +5 постов за вступление в нашу группу "Вконтакте" Более подробно ТУТ

    5) Веди активную жизнь на форуме и получай рубли на личный счёт!

    Скрыть объявление
  2. На нашем форуме Null-Prog действует серьёзное правило касательно размещения материалов!

    ДЛЯ РЕЛИЗЁРОВ: категорически запрещается выкладка материалов на файлообменники типа Deposit, letitbit и другие, требующие просмотров рекламы, обрезающие скорость и тд. Нарушителям, первые 2 раза предупреждения, далее БАН. Тему по этому поводу можно посмотреть ТУТ

    Скрыть объявление
  3. В тестовом режиме на нашем форуме открыт онлайн конструктор сайтов. Вы можете попробовать создать свой сайт у НАС, интуитивно понятный интерфейс, переведёт на 95%, быстрый экспорт проекта, от вас только перетаскивать элементы и вставить в них необходимый текст!

    Все вопросы ТУТ

    Скрыть объявление

  4. Скрыть объявление
  5. Уважаемые форумчане, открывается новый раздел форума, посвящённый ремонту и эксплуатации автомобилей. Просмотреть его можно ТУТ

    Так как раздел новый, информация будет пополнять каждый день. Если есть какие либо замечания по этому разделу, отписываемся в соответствующий раздел форума, либо в личку.

    Напоминаю, сообщения в разделе АВТО не учитываются, общение не ограничено.

    Скрыть объявление
  6. Объявляется набор Модераторов на различные раздел форума, свои заявки можно оставлять в ЭТОМ разделе, перед оставлением заявки рекомендуется ознакомиться с ПРАВИЛАМИ для модераторов.

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

Тема в разделе "Модули DataLife Engine", создана пользователем DomiTori, 19 июл 2016.

  1. DomiTori

    DomiTori Moderator
    Команда форума Модер

    Регистрация:
    29 ноя 2015
    Сообщения:
    22
    Симпатии:
    11
    [​IMG]

    Предисловие:
    Решил я создать тьюб, на который буду выкладывать посерийно сериалы и фильмы, и с него брать видео на свой киносайт. Читал различные статьи о том кто как размечает видео. В основном люди код прописывают в 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 == OR $category_id == 6$social_tags['og:type'] = 'video.movie';
            elseif (
    $category_id == OR $category_id == OR $category_id == 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'];
    4. Пояснение что к чему
    Данное условие
    PHP:
    if ($category_id == OR $category_id == 6$social_tags['og:type'] = 'video.movie';
            elseif (
    $category_id == OR $category_id == OR $category_id == 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 с нашим сайтом.
     

Поделиться этой страницей

iHax Community
Рейтинг@Mail.ru Яндекс.Метрика мониторинг сайтов
Форум программного обеспечения/
Загрузка...