Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Плагин вывода og:image на основе дополнительного поля

Discussion in 'Модули DLE' started by iroder, Aug 20, 2022.

20.08.22 в 21:36
27.10.22 в 15:27
13
1,432
1
  1. TopicStarter Overlay
    iroder

    iroder Бывалый

    Joined:
    Jun 7, 2015
    Messages:
    266
    Best Answers:
    0
    Ratings:
    +35 / 12 / -0
    1613737772_2021-02-19_15-27-36.png

    Разметка Open Graph уже реализована в движке DLE и работает правильно, но только до тех пор, пока вы используете вставку картинок в тело новости. Если в вашей публикации картинки выводятся через дополнительные поля - то метатег og:image предназначенный для вывода ссылки на изображение оказывается пустым. И при репостинге ссылок на вашу страницу сайты не отображается картинка с сайта. Для исправления этой проблемы подойдет плагин Своя картинка в og:image в полной новости

    1613738291_2021-02-19_15-36-07.png

    В данном случае нас интересует только og:image

    og:image — здесь указываем, какую картинку нужно подтянуть к публикации при репосте. В атрибуте content указывается URL изображения. Обратите внимание! При использовании разметки изображение может даже не находиться в статье или на странице. Его можно разместить в любой директории сайта, а в теге og:image указать ссылку на него. При репосте соцсети проигнорируют картинки на странице, а подтянут указанное изображение из нужной директории.

    Плагин позволяющий указать название свое дополнительного поля для использования в разметке og:image основан на примере с форума поддержки https://forum.dle-news.ru/topic/72594

    Но вместо ручной правки исходником нами добавлена возможность указывать название своего поля через стандартный интерфейс админки сайта.

    Перейдите в раздел Настройки скрипта -> Настройки системы -> Новости
    в нем найдите пункт Указать название дополнительного поля картинки для og:images

    1613738506_2021-02-19_15-39-51.png
     

    Attached Files:

    • Нравится Нравится x 1
  2. TopicStarter Overlay
    iroder

    iroder Бывалый

    Joined:
    Jun 7, 2015
    Messages:
    266
    Best Answers:
    0
    Ratings:
    +35 / 12 / -0
    кто установит дайте знать пожалуйста, у меня в место постеров no_image.jpg выводит
     
  3. makatelem

    makatelem Бывалый

    Joined:
    Jan 8, 2019
    Messages:
    287
    Best Answers:
    0
    Ratings:
    +67 / 7 / -0
    Так же (DLE 15.2)
     
  4. Slavchik

    Slavchik Новичок

    Joined:
    Feb 18, 2018
    Messages:
    41
    Best Answers:
    0
    Ratings:
    +11 / 2 / -0
     
  5. makatelem

    makatelem Бывалый

    Joined:
    Jan 8, 2019
    Messages:
    287
    Best Answers:
    0
    Ratings:
    +67 / 7 / -0
    Slavchik Это совсем другое.
     
  6. TopicStarter Overlay
    iroder

    iroder Бывалый

    Joined:
    Jun 7, 2015
    Messages:
    266
    Best Answers:
    0
    Ratings:
    +35 / 12 / -0
    а он прав оказываеться. я короче удалил модуль и сделал так.
    в main в до </head> поставил

    Code:
        <meta property="og:image" content="{THEME}/images/main.jpg">
    это чтоб когда деляться главной страницой сайта своя картинка выходила.
    потом зашел в доп поле постера и поменял все там на это

    Снимок экрана 2022-08-21 120821.jpg
    везьде где [xfvalue_poster] меняешь его на [xfvalue_image_url_poster]
    и все норм.
     
  7. Олег Lego

    Олег Lego Местный

    Joined:
    May 11, 2020
    Messages:
    2,012
    Best Answers:
    1
    Ratings:
    +493 / 217 / -0
    Вообще нет такого пункта в настройках ))
    [​IMG]

    А, всё, нашёл. После установки модуля чекбоксы нужно включить.
    Но всё равно ошибка модуля. DLE 15.1


    Имя файла: engine/modules/show.full.php
    Ошибка: Не удалось найти код:
    if ( count($images) ) {
    $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
    $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
    }

    В 15.1 код немного другой
    PHP:
    if ( count($images) ) {
                
    $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
                
    $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
                
    $schema_images $images;   
            }
    и там схемаорг добавлена.
    После добавления этого плагина эта строка же не будет уже работать ?
     
    #7 Олег Lego, Aug 22, 2022
    Last edited: Aug 22, 2022
  8. Олег Lego

    Олег Lego Местный

    Joined:
    May 11, 2020
    Messages:
    2,012
    Best Answers:
    1
    Ratings:
    +493 / 217 / -0
    Сделал так:

    Найти:

    PHP:
    if ( count($images) ) {
                
    $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
                
    $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
                
    $schema_images $images;   
            }
    Заменить на:

    PHP:
    $xfieldsdata xfieldsdataload$row['xfields'] );
    // если указано название доп.поля в переменной og_images_alter
    if (isset($xfieldsdata['{$config["og_images_alter"]}'])) {
        
    $soctimage explode('|'$xfieldsdata['{$config["og_images_alter"]}']);
        
    // если оно больше 1 - ищем его в папке загрузок
        
    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;
        
    // если картинок 0 - считаем пустым
        
    if (count($socimgarticle)) {
            
    $socimgarticle str_replace("/thumbs/""/"$images[0]);
            
    $socimgarticle str_replace("/medium/""/"$social_tags['image']);
        }
        
    // иначе $socimgarticle = {THEME}/dleimages/no_image.jpg
        
    else {
            
    $socimgarticle $config['http_home_url']. 'templates/' .$config['skin'].'/dleimages/no_image.jpg';
        }
    }
    $social_tags['image'] = $socimgarticle;
    $schema_images $images;
     
  9. Ботяра

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    0
    Best Answers:
    54
    Ratings:
    +711 / 74 / -0
    2022-08-22_22-45-02.png
    и какой ещё плагин или хак нужен для этого, когда всё есть уже в коробочном варианте? при создании доп поля выбираешь этот пункт и всё нормально выводится!
     
  10. Олег Lego

    Олег Lego Местный

    Joined:
    May 11, 2020
    Messages:
    2,012
    Best Answers:
    1
    Ratings:
    +493 / 217 / -0
    Таки не все модули проставляют в загружаемое изображение. Тот же алоха, он у меня основной, и проставляет только в текстовое поле. Так что ...
     
  11. Ботяра

    Забанен

    Joined:
    Oct 10, 2015
    Messages:
    0
    Best Answers:
    54
    Ratings:
    +711 / 74 / -0
    тогда fullstory metatags на помощь придёт. в полной новости вписываешь нужный код og:image и будет выводить вместо стандартной дле-шной.
     
  12. wawe

    PRO Users

    Joined:
    Jan 23, 2017
    Messages:
    3,557
    Best Answers:
    6
    Ratings:
    +1,581 / 410 / -0
    Кто подскажет как поправить ?
    DLE 15.2
    Вывод постеров - [xfvalue_poster]

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

    Нужно поправить что-бы выводило в разметку - доп полем [xfvalue_poster]
     

    Attached Files:

  13. Lover

    Lover Новичок

    Joined:
    Jan 5, 2018
    Messages:
    40
    Best Answers:
    0
    Ratings:
    +2 / 0 / -0
    [xfvalue_image_description_X]

    Данный тег может использоваться только если дополнительное поле имеет тип "Изображение". Тег выводит только описание для загруженного изображения, где "х" это имя дополнительного поля.
     
  14. Meddah Sid Ali

    Meddah Sid Ali Зелёный

    Joined:
    Nov 9, 2021
    Messages:
    4
    Best Answers:
    0
    Ratings:
    +1 / 1 / -0
    how its working on dle 15.2 !!
     
Яндекс.Метрика