Модуль OpenGraph для Битрикс. Быстрая и автоматическая интеграция
24 сентября 2017
Автор: dev2fun
На неделе команда Dev2Fun выпустила новое обновление (1.1.0), которое сильно усовершенствовало модуль.
Всем кто использует версию 1.0.7 и младше, рекомендуем обновиться.
Миграция с 1.0.x на 1.1.x
Миграция происходит при обновлении автоматически.
Внимание! В модуле закончена поддержка php5.3 и младше.
Что нового
Пути до страниц указывать от корня.
Пример 1:
Задача:
Нужно запретить вывод мета-тегов OpenGraph для страницы "/catalog/auto/audi/a8/", а также запретить вывод для главной страницы.
Решение:
Указываем в поле "catalog/auto/audi/a8/", а в другом поле "index" (index, от корня, это ключевое значение, которое модуль воспримет за главную страницу).
Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input
Поля которые не выводятся, но значения проставляются автоматически:
Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input
Поля которые не выводятся, но значения проставляются автоматически:
Как интегрировать поддержку OpenGraph
Мы сделали автоматический вывод Open Graph для:
Способ #1
Указать на нужных страницах названия полей добавляя впереди "og:"
Примеры:
Переписать поле og:title
Установить значение в og:image
Установить любое своё свойство, допустим og:custom
Предварительно нужно проверить добавлено ли поддержка custom в настройках модуля, если нет, то добавить
Если нужно сделать установку значений из элементов и разделов, то необходимо прописывать в result_modifier.php используемого шаблона.
После чего сбросить кэш.
Способ #2
Этот способ наиболее проще первого, но, в данной версии, представляет меньше гибкости.
Этот способ мы сделали для более удобной интеграции Open Graph в компонентах.
Необходимо в result_modifier.php или component_epilog.php прописать вызов метода:
Где $refIf - идентификатор элемента или раздела
Где $type - тип объекта element или section.
element - вывод для элементов инфоблока
section - вывод для разделов инфоблока
В результате result_modifier.php должно получиться следующее:
Для компонента bitrix:news.detail
Для компонента bitrix:news.list
Всем кто использует версию 1.0.7 и младше, рекомендуем обновиться.
Миграция с 1.0.x на 1.1.x
Миграция происходит при обновлении автоматически.
Внимание! В модуле закончена поддержка php5.3 и младше.
Что нового
- Добавлен функционал страниц исключений вывода OpenGraph
Пути до страниц указывать от корня.
Пример 1:
Задача:
Нужно запретить вывод мета-тегов OpenGraph для страницы "/catalog/auto/audi/a8/", а также запретить вывод для главной страницы.
Решение:
Указываем в поле "catalog/auto/audi/a8/", а в другом поле "index" (index, от корня, это ключевое значение, которое модуль воспримет за главную страницу).
[IMG ID=6186405file]
- Добавлена возможность указать OpenGraph в элементах инфоблока
[IMG ID=6186407file]
Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input
Поля которые не выводятся, но значения проставляются автоматически:
- url - текущая отображаемая страница
- image:width - ширина картинки, которая сейчас в og:image
- image:type - тип картинки (png,jpg, etc.), которая сейчас в og:image
- image:height - высота картинки, которая сейчас в og:image
- site_name - название сайта из настроек сайта
- Добавлена возможность указать OpenGraph в разделах инфоблока
[IMG ID=6186457file]
Выводятся все поля, которые указаны в настройках модуля.
Поле description - выводится как textarea
Поле image- выводится как fileinput
Все остальные поля выводятся, как input
Поля которые не выводятся, но значения проставляются автоматически:
- url - текущая отображаемая страница
- image:width - ширина картинки, которая сейчас в og:image
- image:type - тип картинки (png,jpg, etc.), которая сейчас в og:image
- image:height - высота картинки, которая сейчас в og:image
- site_name - название сайта из настроек сайта
- Добавлена настройка вывода OpenGraph полей в элементах и разделах
[IMG ID=6186471file]
- Добавлена загрузка картинки для OpenGraph, по умолчанию
[IMG ID=6186477file]
Как интегрировать поддержку OpenGraph
Мы сделали автоматический вывод Open Graph для:
- title - из заголовка страница
- description - из описания страницы
- url - текущая страница
- site_name - название из настроек сайта
- type - по умолчанию website
Способ #1
Указать на нужных страницах названия полей добавляя впереди "og:"
Примеры:
Переписать поле og:title
$APPLICATION->SetPageProperty('og:title','Новое значение'); // или // $APPLICATION->SetDirProperty('og:title','Новое значение'); |
Установить значение в og:image
$APPLICATION->SetPageProperty('og:image','http://rockisfest.ru/upload/resize_cache/iblock/5a9/380_9999_1/5a9163ca1aca97d620d6640dd271a7f6.jpg'); // или // $APPLICATION->SetDirProperty('og:image','http://rockisfest.ru/upload/resize_cache/iblock/5a9/380_9999_1/5a9163ca1aca97d620d6640dd271a7f6.jpg'); |
Установить любое своё свойство, допустим og:custom
Предварительно нужно проверить добавлено ли поддержка custom в настройках модуля, если нет, то добавить
$APPLICATION->SetPageProperty('og:custom','Новое значение'); // или // $APPLICATION->SetDirProperty('og:custom','Новое значение'); |
Если нужно сделать установку значений из элементов и разделов, то необходимо прописывать в result_modifier.php используемого шаблона.
После чего сбросить кэш.
Способ #2
Этот способ наиболее проще первого, но, в данной версии, представляет меньше гибкости.
Этот способ мы сделали для более удобной интеграции Open Graph в компонентах.
Необходимо в result_modifier.php или component_epilog.php прописать вызов метода:
\Dev2fun\Module\OpenGraph::Show($refId,$type); |
Где $refIf - идентификатор элемента или раздела
Где $type - тип объекта element или section.
element - вывод для элементов инфоблока
section - вывод для разделов инфоблока
В результате result_modifier.php должно получиться следующее:
Для компонента bitrix:news.detail
\Dev2fun\Module\OpenGraph::Show($arResult['ID'],'element'); |
Для компонента bitrix:news.list
\Dev2fun\Module\OpenGraph::Show($arResult['ID'],'section'); |
Статья полезна для