Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Тема в разделе "Модули DLE", создана пользователем iroder, 20 авг 2022.

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

    iroder Бывалый

    Сообщения:
    266
    Симпатии:
    26
    Лучших ответов:
    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
     

    Вложения:

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

    iroder Бывалый

    Сообщения:
    266
    Симпатии:
    26
    Лучших ответов:
    0
    кто установит дайте знать пожалуйста, у меня в место постеров no_image.jpg выводит
     
  3. makatelem

    makatelem Бывалый

    Сообщения:
    287
    Симпатии:
    20
    Лучших ответов:
    0
    Так же (DLE 15.2)
     
  4. Slavchik

    Slavchik Новичок

    Сообщения:
    41
    Симпатии:
    5
    Лучших ответов:
    0
     
  5. makatelem

    makatelem Бывалый

    Сообщения:
    287
    Симпатии:
    20
    Лучших ответов:
    0
    Slavchik Это совсем другое.
     
  6. TopicStarter Overlay
    iroder

    iroder Бывалый

    Сообщения:
    266
    Симпатии:
    26
    Лучших ответов:
    0
    а он прав оказываеться. я короче удалил модуль и сделал так.
    в main в до </head> поставил

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

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

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

    Сообщения:
    2.014
    Симпатии:
    239
    Лучших ответов:
    1
    Вообще нет такого пункта в настройках ))
    [​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;   
            }
    и там схемаорг добавлена.
    После добавления этого плагина эта строка же не будет уже работать ?
     
    Последнее редактирование: 22 авг 2022
  8. Олег Lego

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

    Сообщения:
    2.014
    Симпатии:
    239
    Лучших ответов:
    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;   
            }
    Заменить на:

    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. Ботяра

    Ботяра Забанен

    Сообщения:
    0
    Симпатии:
    0
    Лучших ответов:
    54
    2022-08-22_22-45-02.png
    и какой ещё плагин или хак нужен для этого, когда всё есть уже в коробочном варианте? при создании доп поля выбираешь этот пункт и всё нормально выводится!
     
  10. Олег Lego

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

    Сообщения:
    2.014
    Симпатии:
    239
    Лучших ответов:
    1
    Таки не все модули проставляют в загружаемое изображение. Тот же алоха, он у меня основной, и проставляет только в текстовое поле. Так что ...
     
  11. Ботяра

    Ботяра Забанен

    Сообщения:
    0
    Симпатии:
    0
    Лучших ответов:
    54
    тогда fullstory metatags на помощь придёт. в полной новости вписываешь нужный код og:image и будет выводить вместо стандартной дле-шной.
     
  12. wawe

    wawe PRO Users

    Сообщения:
    3.557
    Симпатии:
    802
    Лучших ответов:
    6
    Кто подскажет как поправить ?
    DLE 15.2
    Вывод постеров - [xfvalue_poster]

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

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

    Вложения:

    • Screenshot.png
      Screenshot.png
      Размер файла:
      4,1 КБ
      Просмотров:
      29
  13. Lover

    Lover Новичок

    Сообщения:
    40
    Симпатии:
    1
    Лучших ответов:
    0
    [xfvalue_image_description_X]

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

    Meddah Sid Ali Зелёный

    Сообщения:
    4
    Симпатии:
    0
    Лучших ответов:
    0
    how its working on dle 15.2 !!