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

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

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

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

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

    iroder Бывалый

    Регистрация:
    7 июн 2015
    Сообщения:
    265
    Лучших ответов:
    0
    Рейтинги:
    +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
     

    Вложения:

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

    iroder Бывалый

    Регистрация:
    7 июн 2015
    Сообщения:
    265
    Лучших ответов:
    0
    Рейтинги:
    +35 / 12 / -0
    кто установит дайте знать пожалуйста, у меня в место постеров no_image.jpg выводит
     
  3. makatelem

    makatelem Бывалый

    Регистрация:
    8 янв 2019
    Сообщения:
    287
    Лучших ответов:
    0
    Рейтинги:
    +67 / 7 / -0
    Так же (DLE 15.2)
     
  4. Slavchik

    Slavchik Новичок

    Регистрация:
    18 фев 2018
    Сообщения:
    42
    Лучших ответов:
    0
    Рейтинги:
    +11 / 2 / -0
     
  5. makatelem

    makatelem Бывалый

    Регистрация:
    8 янв 2019
    Сообщения:
    287
    Лучших ответов:
    0
    Рейтинги:
    +67 / 7 / -0
    Slavchik Это совсем другое.
     
  6. TopicStarter Overlay
    iroder

    iroder Бывалый

    Регистрация:
    7 июн 2015
    Сообщения:
    265
    Лучших ответов:
    0
    Рейтинги:
    +35 / 12 / -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 Местный

    Регистрация:
    11 май 2020
    Сообщения:
    1.928
    Лучших ответов:
    1
    Рейтинги:
    +479 / 208 / -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, 22 авг 2022
    Последнее редактирование: 22 авг 2022
  8. Олег Lego

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

    Регистрация:
    11 май 2020
    Сообщения:
    1.928
    Лучших ответов:
    1
    Рейтинги:
    +479 / 208 / -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. byroot

    Забанен

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

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

    Регистрация:
    11 май 2020
    Сообщения:
    1.928
    Лучших ответов:
    1
    Рейтинги:
    +479 / 208 / -0
    Таки не все модули проставляют в загружаемое изображение. Тот же алоха, он у меня основной, и проставляет только в текстовое поле. Так что ...
     
  11. byroot

    Забанен

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

    PRO Users

    Регистрация:
    23 янв 2017
    Сообщения:
    3.555
    Лучших ответов:
    6
    Рейтинги:
    +1.579 / 410 / -0
    Кто подскажет как поправить ?
    DLE 15.2
    Вывод постеров - [xfvalue_poster]

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

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

    Вложения:

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

    Lover Новичок

    Регистрация:
    5 янв 2018
    Сообщения:
    40
    Лучших ответов:
    0
    Рейтинги:
    +2 / 0 / -0
    [xfvalue_image_description_X]

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

    Meddah Sid Ali Зелёный

    Регистрация:
    9 ноя 2021
    Сообщения:
    4
    Лучших ответов:
    0
    Рейтинги:
    +1 / 1 / -0
    how its working on dle 15.2 !!
     
Яндекс.Метрика