Не нравятся результаты поиска? Попробуйте другой поиск!

DLE 10 разметка Open Graph


     23.06.2013    Общие вопросы    8458

вопрос
В DLE 10 добавлена специальная разметка в метатегах согласно протоколу Open Graph. Так вот в новостях эта разметка берет не правильное изображение для новости. У меня такая структура новости:
1. Одно строчное доп поле в которое вставляется ссылка на постер
2. Еще куча доп полей
3. Много строчное доп поле в которое вставляются 4 скриншота

Так вот Open Graph берет первый скриншот из этого много строчного доп поля, а надо что бы брал постер.
Как можно указать какое изображение должно браться для метатега?

Ответил: maestron


Формирование содержимого данных тегов происходит в файле engine/modules/show.full.php.

По умолчанию скрипт вставляет первую найденную картинку.
Для того, чтобы это изменить, найдите в данном файле (engine/modules/show.full.php) строчку:

if ( count($images) ) $social_tags['image'] = $images[0];

Только вместо 0 надо -1

Комментарии пользователей (17)

Kane
12

97 | 32

Kane - 25 июня 2013 11:03 - Юзер

<meta property="og:site_name" content="
<meta property="og:type" content="
<meta property="og:title" content="
<meta property="og:url" content="
<meta property="og:image" content="

Какой файл отвечает за вывод этих метатегов?

Nick
6

95 | 70

Nick - 25 июня 2013 17:30 - Юзер

Как можно указать какое изображение должно браться для метатега?


Формирование содержимого данных тегов происходит в файле engine/modules/show.full.php.

По умолчанию скрипт вставляет первую найденную картинку.
Для того, чтобы это изменить, найдите в данном файле (engine/modules/show.full.php) строчку:

if ( count($images) ) $social_tags['image'] = $images[0];


Поробуйте $images[0] заменить, например, на $images[1]. По идее в теге должна появится ссылка на вторую картинку (0 -первая, 1 - вторая), найденную в посте.

---

А в Вашем случае надо смотреть конкретней, точно сказать, почему первой картинкой определяется скриншот, не могу.

Kane
12

97 | 32

Kane - 25 июня 2013 21:50 - Юзер

В доп поле [xfvalue_poster] вставляется ссылка такого типа http://mysite.ru/uploads/posts/2013-04/1366610712_poster_123454.jpg
Картинкой она уже становится в шаблоне таким образом
<img src="[xfvalue_poster]"alt="{title}" title="{title}"/>

То есть при формирование метатег og:image постер не видит так как по сути он не является картинкой

Хм, причина проблемы ясна. Как бы теперь ее решить?

nowheremany
192

1659 | 1292

nowheremany - 26 июня 2013 13:48 - Эксперт


Благодарность принимаю тут Связь

Kane
12

97 | 32

Kane - 26 июня 2013 17:37 - Юзер

nowheremany
Эм, или я чего то не понял, в итоге получается 2 разметки.....первая стандартная, вторая та что по вашей ссылке

Kane
12

97 | 32

Kane - 28 июня 2013 10:59 - Юзер

Какие нибудь идеи есть? Ну или как нафиг отключить эту разметку?

Kane
12

97 | 32

Kane - 29 июня 2013 11:11 - Юзер

Паходу легче сделать откат на DLE 9.8

Nick
6

95 | 70

Nick - 29 июня 2013 15:23 - Юзер

Цитата: Kane
Какие нибудь идеи есть?

В коде block pro есть обработка картинок в доп. полях. Как вариант, взять код оттуда, в show.full.php определять полный адрес до этой картинки в какую-нибудь переменную, в engine.php выводить 1 мета тег с этой картинкой.

Kane
12

97 | 32

Kane - 29 июня 2013 19:56 - Юзер

Нашел попроще способ. В
fullstory.tpl прописать
<script type="text/javascript">
$(document).ready(function(){
$("head").append('<meta property="og:image" content="[xfvalue_poster]" />');
});
</script>

В engine/modules/show.full.php удалить
if ( count($images) ) $social_tags['image'] = $images[0];

Не знаю на сколько это правильно. но вроде то что нада

nowheremany
192

1659 | 1292

nowheremany - 26 февраля 2016 11:41 - Эксперт

Вряд ли VK или другие сервисы запускают JS при чтении вашей страницы, а без этого в HEAD они не увидят эту разметку

Благодарность принимаю тут Связь

elgreco
1

elgreco - 29 октября 2014 21:36 - Юзер

To : engine.php search :
<meta name="keywords" content="{$metatags['keywords']}" />{$disable_index}


Add :
 {$s_meta}


To : engine/module/show.full.php search :
$social_tags['url'] = $full_link;


Below :
if ( ! isset( $xfieldsdata ) ) $xfieldsdata = xfieldsdataload( $row['xfields'] );
     $social_tags['image'] = $xfieldsdata['poster'];

dimavdv
9

192 | 33

dimavdv - 23 июля 2015 20:07 - Юзер


revived
23 | 6

revived - 10 ноября 2015 16:46 - Юзер

Ребята, а как сделать, чтобы оно брало первую фотку из краткого описания?

mastodontoff
5

106 | 26

mastodontoff - 5 декабря 2015 10:44 - Юзер

revived,
Тоже интересует данный вопрос

Tappo4eK
1

39 | 7

Tappo4eK - 26 февраля 2016 07:27 - Юзер

Тема баян но тоже надо было это сделать, а main.tpl не дает возможности ставить доп. поля.
Я решил проблему так:
Создал файл шаблона og.tpl, кинул туда код
[xfgiven_image]<meta property="og:image" content="[xfvalue_image]"/>[/xfgiven_image]

а в файле main.tpl после <head> добавил:
{custom template="og" aviable="global" from="0" limit="1" cache="no"}

Учитывая возможности тегов DLE - можно настроить Open Graph под разные категории.

Tappo4eK
1

39 | 7

Tappo4eK - 26 февраля 2016 08:25 - Юзер

А нет. Рано обрадовался.. оно так просо берет последнее изображение из поля. если добавить сразу несколько новостей и кинуть предыдущую - картинка будет последней :С

nowheremany
192

1659 | 1292

nowheremany - 26 февраля 2016 11:42 - Эксперт

Что вы хотите то? Зачем к коротких новостях эта разметка? Достаточно её разместить в полной новости.

Благодарность принимаю тут Связь

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

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

 11.10.2013 Prime-torrent.ru  Общие вопросы