vzboltay 0 Опубликовано: 29 мая 2015 Рассказать Опубликовано: 29 мая 2015 (изменено) Сайт: http://vzboltay.com Пример страницы, где картинка выводится из дополнительного поля: http://vzboltay.com/...sskiy-flag.html Версия DLE: 10.4 Здравствуйте. Проблема заключается в том, что картинка из дополнительного поля не выводится в <meta property="og:image" content="…" /> Очевидно функция вывода срабатывает лишь в том случае если картинка идет 1-й непосредственно в поле короткой или полной новости, что крайне ограничивает возможности дизайна. Ведь не всегда возможно «вписать» картинку в короткую или полную новость, а сгенерировать красивый снипнет для социальных сетей сейчас актуально как никогда. Возможно, разработчики реализуют это в новой версии DLE. Буду признателен, если кто-то поможет мне с решением этого вопроса. Изменено 29 мая 2015 пользователем vzboltay Цитата Ссылка на сообщение Поделиться на других сайтах
odys 384 Опубликовано: 29 мая 2015 Рассказать Опубликовано: 29 мая 2015 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 - это название поля Цитата Ссылка на сообщение Поделиться на других сайтах
vzboltay 0 Опубликовано: 30 мая 2015 Рассказать Опубликовано: 30 мая 2015 Автор odys, а в каком файле вносить правки? Как быть если 2 поля, и если пусто во всех выводить картинку заглушку? Я так понимаю у вас это реализовано, но не могу понять как это сделать у себя.. Спасибо за помощь. Цитата Ссылка на сообщение Поделиться на других сайтах
odys 384 Опубликовано: 30 мая 2015 Рассказать Опубликовано: 30 мая 2015 (изменено) 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] по идеи должно работать. Просто у меня немного по другому сделано, поэтому на работоспособность не могу проверить Изменено 30 мая 2015 пользователем odys 1 Цитата Ссылка на сообщение Поделиться на других сайтах
vzboltay 0 Опубликовано: 31 мая 2015 Рассказать Опубликовано: 31 мая 2015 Автор Спасибо за Вашу помощь. Все работает. Цитата Ссылка на сообщение Поделиться на других сайтах
odys 384 Опубликовано: 1 июня 2015 Рассказать Опубликовано: 1 июня 2015 Спасибо за Вашу помощь. Все работает. а то пожалуйста Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.