Перейти к публикации

Картинка из дополнительного поля и The Open Graph protocol


Рекомендованные сообщения

Сайт: http://vzboltay.com

Пример страницы, где картинка выводится из дополнительного поля: http://vzboltay.com/...sskiy-flag.html

Версия DLE: 10.4

Здравствуйте.

Проблема заключается в том, что картинка из дополнительного поля не выводится в <meta property="og:image" content="…" />

Очевидно функция вывода срабатывает лишь в том случае если картинка идет 1-й непосредственно в поле короткой или полной новости, что крайне ограничивает возможности дизайна. Ведь не всегда возможно «вписать» картинку в короткую или полную новость, а сгенерировать красивый снипнет для социальных сетей сейчас актуально как никогда.

Возможно, разработчики реализуют это в новой версии DLE.

Буду признателен, если кто-то поможет мне с решением этого вопроса.

Изменено пользователем vzboltay
Ссылка на сообщение
Поделиться на других сайтах

vzboltay, конечно помогут :)

я сейчас не могу посмотреть как выглядит в оригинале meta, но я его закомментировал, а место него вставил свой <meta property="og:image" itemprop="image" content="$socimgarticle" />

Естественно перед этим получил данные из бд в $socimgarticle;

$xfieldsdata = xfieldsdataload( $row['xfields'] );

        if ($xfieldsdata['bigimg'] != NULL) {

            $socimgarticle = $xfieldsdata['bigimg'];

        } else {

            $socimgarticle = 'http://www.menville.net/uploads/menville.png';

        }

bigimg - это название поля

Ссылка на сообщение
Поделиться на других сайтах

odys, а в каком файле вносить правки? Как быть если 2 поля, и если пусто во всех выводить картинку заглушку? Я так понимаю у вас это реализовано, но не могу понять как это сделать у себя..

Спасибо за помощь.

Ссылка на сообщение
Поделиться на других сайтах

vzboltay, сайт твой понравился, видно, что человек знающий делал, поэтому такой поверхностный ответ от меня был. Править нужно в engine/modules/show.full.php

Обясню по коду:

$xfieldsdata = xfieldsdataload( $row['xfields'] ); // получаем в $xfieldsdata все дополнительные поля

		if ($xfieldsdata['bigimg'] != NULL) { // если доп. поле bigimg не пустое

			$socimgarticle = $xfieldsdata['bigimg']; // тогда $xfieldsdata будет иметь значение этого поля

		} else { // если нет,

			$socimgarticle = 'http://www.menville.net/uploads/menville.png'; // тогда $xfieldsdata будет иметь заглушку

		} // конец.
таким образом можно проверять хоть 10 доп. полей.
$xfieldsdata = xfieldsdataload( $row['xfields'] );

		if ($xfieldsdata['img1'] != NULL) {

			$socimgarticle = $xfieldsdata['img1'];

		} else if ($xfieldsdata['img2'] != NULL) {

			$socimgarticle = $xfieldsdata['img2'];

		} else if ($xfieldsdata['img3'] != NULL) {

			$socimgarticle = $xfieldsdata['img3'];

		} else {

			$socimgarticle = 'http://www.menville.net/uploads/menville.png';

		}
и так далее... в оригинальном show.full.php есть такая строчка:
if ( count($images) ) $social_tags['image'] = $images[0];
весь код, который я писал, нужно вставить перед ней, а её заменить на
$social_tags['image'] = $socimgarticle;[/code]

по идеи должно работать. Просто у меня немного по другому сделано, поэтому на работоспособность не могу проверить

Изменено пользователем odys
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...