Что нового?

og:image из дополнительного поля типа "Загружаемое изображение" [DLE14.x]

леший

Модератор
SkripTers TEAM
OLD SkripTers
Регистрация
18 Дек 2019
Сообщения
4,728
Реакции
7
Баллы
38
Всем снова здравствуйте! Как известно, когда люди постят ссылки на интересные статьи в соц.сетях и делятся ссылками в мессенджерах, то соц. сети и мессенджеры берут картинку для оформления ссылки из meta тега og:image. А как известно DLE для данного тега берёт всегда первую картинку из текста, которая загружена через редактор, поэтому очень многие интересуются на тематических форумах/сайтах, как сделать так, чтобы DLE использовал картинки из определённого доп.поля типа "Загружаемое изображение". Поэтому я решил с Вами поделится плагином для данных целей, который есть на оф.форуме, но его там не всегда можно быстро найти.
Сам плагин
XML:
<?xml version="1.0" encoding="utf-8"?>
<dleplugin>
    <name>og:image</name>
    <description></description>
    <icon></icon>
    <version>2.0</version>
    <dleversion>14</dleversion>
    <versioncompare>greater</versioncompare>
    <upgradeurl></upgradeurl>
    <filedelete>0</filedelete>
    <needplugin></needplugin>
    <mnotice>0</mnotice>
    <mysqlinstall><![CDATA[]]></mysqlinstall>
    <mysqlupgrade><![CDATA[]]></mysqlupgrade>
    <mysqlenable><![CDATA[]]></mysqlenable>
    <mysqldisable><![CDATA[]]></mysqldisable>
    <mysqldelete><![CDATA[]]></mysqldelete>
    <phpinstall><![CDATA[]]></phpinstall>
    <phpupgrade><![CDATA[]]></phpupgrade>
    <phpenable><![CDATA[]]></phpenable>
    <phpdisable><![CDATA[]]></phpdisable>
    <phpdelete><![CDATA[]]></phpdelete>
    <notice><![CDATA[]]></notice>
    <file name="engine/modules/show.full.php">
        <operation action="replace">
            <searchcode><![CDATA[if ( count($images) ) {
            $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
            $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
        }]]></searchcode>
            <replacecode><![CDATA[$xfieldsdata = xfieldsdataload( $row['xfields'] );
if (isset($xfieldsdata['название_доп.поля_на_латинице'])) {
    $soctimage = explode('|', $xfieldsdata['название_доп.поля_на_латинице']);
    if (count($soctimage) > 1) {$socimgarticle = $config['http_home_url'].'uploads/posts/'.$soctimage[1];}
    else {$socimgarticle = $config['http_home_url'].'uploads/posts/'.$soctimage[0];}
} else {
    $socimgarticle = $images;
   
    if ( count($socimgarticle) ) {
        $socimgarticle = str_replace("/thumbs/","/",$socimgarticle[0]);
        $socimgarticle = str_replace("/medium/","/",$socimgarticle);
    } else {
        $socimgarticle = $config['http_home_url'].'uploads/noimg.jpg';
    }
}
$social_tags['image'] = $socimgarticle;]]></replacecode>
        </operation>
    </file>
</dleplugin>
В плагине дважды меняем "название_доп.поля_на_латинице" на нужное значение и uploads/noimg.jpg меняем на своё (если доп.поле не заполнино, то будет браться заглужка).

Так же к теме прикрепил файл. С автором плагина можно связаться здесь
 

Вложения

Последнее редактирование:
Сверху