Open Graph - быстро, легко и автоматически

16

Разработчик: Dev2Fun

Установлено: Более 1000

Обновлено: 06.02.2023

Адаптирован под мобильные устройства

Совместим с редакциями Битрикс: «Первый сайт» / «Старт» / «Стандарт» / «Малый бизнес» / «Бизнес» / «Энтерпрайз» / «Корпоративный портал» / «Интернет-магазин + CRM» /

Модуль позволяет автоматизировать и удобно управлять протоколом Open Graph
Если у вас истекла лицензия Битрикса, то можете скачать модуль с github.


Что делает модуль:

Модуль автоматически добавляет:
  • og:title - из title страницы
  • og:description - из description страницы
  • og:url - текущая страница
  • og:site_name - название сайта
  • og:image - картинка из текущего элемента или раздела
  • og:image:type - mime-type картинки
  • og:image:width - ширина картинки
  • og:image:height - высота картинки
  • og:image:secure_url - ссылка при https
  • любое другое свойство вам нужно указать в настройках
Также модуль:
  • Выводит у элементов и разделов Open Graph поля, для заполнения.
  • Позволяет задать общую картинку для Open Graph.
  • Кэширует данные, тем самым не нагружая сайт лишними запросами.
  • Позволяет добавить страницы-исключения.
  • Автоматически определяет og:image
  • Позволяет задать максимальный размер для og:image и ресайзить картинки "на лету"
  • Позволяет задать порядок применения алгоритмов присваивания значений в Open Graph
  • Позволяет легко настроить Open Graph
Присутствуют настройки:
  • время жизни кэша
  • страницы исключений
  • вывод таба с Open Graph полями в элементах
  • вывод таба с Open Graph полями в разделах
  • установка картинки, по умолчанию
Можно настраивать параметры выше как угодно и добавлять свои параметры взятые с оф.сайта. Читайте ниже.

Кому пригодится:

Подойдет всем.
Если возникнет сложность в настройке, мы вам поможем!

Как пользоваться:

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

По умолчанию порядок таков:
  • og_fields (Данные из полей OpenGraph элементов/разделов) - поиск значений в полях во вкладке OpenGraph у элементов и разделов
  • iblock_fields (Данные из полей элементов/разделов) - пустые значения заполняются данными из полей iblock у элементов и разделов
  • prop_fields (Данные из SetPageProperty/SetDirProperty) - пустые значения заполняются данными из указанных свойствах страниц (SetPageProperty или SetDirProperty)
  • default (Данные из алгоритма "по умолчанию") - оставшиеся пустые значения заполняются данными по старому алгоритму
Уменьшение размеров (resize) - вы можете включить автоматическое уменьшение размеров картинок. Также вы можете указать максимальную ширину/высоту и выбрать 1 из 3 стандартных алгоритмов ресайза.


Картинка по умолчанию - указывается в админке. Выводится при отсутствии картинки в свойства og:image.

Страницы исключений - пути до страниц от корня сайта, на которых мета-данные Open Graph выводиться не должны. Указывать со всеми расширениями, без GET-параметров. Если нужно исключить главную страницу сайта, то прописываем index.

Обозначение свойств в админке у элементов и разделов - на странице редактирования элементов тебе можно заполнять Open Graph поля. (Вкладка "Настройки Open Graph")

og:title: Если не задан, то подставится значение из "Названия элемента" (NAME).
og:description: Если не задан, то подставится значение из "Краткое описание" (PREVIEW_TEXT), если оно путо, то значение из "Детальное описание" (DETAIL_TEXT). Внимание: Автоматическое ограничение кол-ва символов в 121 символ.
og:image: Если у вас указана активность параметра og:image и вы не укажите картинку для og:image, то по умолчанию подставится картинка из PREVIEW_PICTURE, если она не указана, то подставится картинка из DETAIL_PICTURE.

Свойства, которые не доступны для пользовательского редактирования:
  • og:url
  • og:site_name
  • og:image:type
  • og:image:width
  • og:image:height
  • og:image:secure_url
Все остальные свойства указываются в настройках и выводятся.

Как вывести OpenGraph у элементов (точная интеграция):
Вам необходимо прописать в result_modifier.php шаблона используемого компонента следующее:
// подгружаем все модуль и все его классы
\Bitrix\Main\Loader::includeModule("dev2fun.opengraph");
\Dev2fun\Module\OpenGraph::Show($arResult["ID"],"element"); 
// где arResult["ID"] - идентификатор элемента
// где element - тип, т.к. мы выводим для элемента, поэтому element

Как вывести OpenGraph у разделов (точная интеграция):
Вам необходимо прописать в result_modifier.php шаблона используемого компонента следующее:
// подгружаем все модуль и все его классы
\Bitrix\Main\Loader::includeModule("dev2fun.opengraph");
\Dev2fun\Module\OpenGraph::Show($arResult["ID"],"section"); 
// где arResult["ID"] - идентификатор раздела
// где section - тип, т.к. мы выводим для раздела, поэтому section

И обязательно сбросить кэш.

Поддержка установки Open Graph свойств с помощью SetPageProperty, SetDirProperty оставлена, но с пониженным приоритетом.

Логика: (данные записываются только если значение пусто)
  • поиск данных в элементах/разделах
  • поиск данных в SetPageProperty, SetDirProperty
  • установка данных из значений по умолчанию
  • заворачивание данных в мета-теги
  • вывод мета-тегов
Список событий:

название событияпередаваемые
переменные
описание
OnBeforeAddOpenGraph &$arSettings - массив настроек
&$cache_id - идентификатор кэша
Событие запускается перед запуском всех алгоритмов
OnAfterAddOgFields &ogValues - массив полей со значениямиСобытие запускается после алгоритма og_fields
OnAfterAddIBlockFields&ogValues - массив полей со значениямиСобытие запускается после алгоритма iblock_fields
OnAfterAddPropFields&ogValues - массив полей со значениямиСобытие запускается после алгоритма prop_fields
OnAfterAdd&ogValues - массив полей со значениямиСобытие запускается после всех алгоритмов
OnBeforeOutput&$arData - массив полей со значениямиСобытие запускается перед выводом свойств (не кэшируется!)


Если возникнет сложность в настройке, мы вам поможем!

Если есть нарекания или предложения по улучшению модуля пишите на почту техподдержки.

github
Поблагодарить автора
<b>Правила установки</b>:<br /><br /><ol><li>Проверить права у папки modules<br /><li>Установить модуль в административной панели.<br /><li>Прочитать сообщение<br /><li>Настроить модуль<br /><li>Сбросить кэш<br /><li>Поблагодарить автора <img src="/upload/main/smiles/3/bx_smile_smile.png" border="0" data-code=":)" data-definition="UHD" alt=":)" style="width:20px;height:20px;" title="С улыбкой" class="bx-smile" /><br /><li>Использовать.<br /></ol><a href="https://www.tinkoff.ru/cf/36wVfnMf7mo" target="_blank" >Поблагодарить автора</a><br />
<b>Автор</b>: darkfriend<div class="blog-post-quote" title="Цитата"><table class="blogquote"><tr><td>Коллеги, в связи с кризисом, с 23 апреля 2020 года для всех бесплатных модулей, бесплатная техническая поддержка упразднена.<br /><b>Если ваше обращение не об <u>ошибке в модуле</u> или <u>ошибке из-за модуля</u>, необходимо сделать <a href="https://yasobe.ru/na/thankyou_bitrix" target="_blank" >донат</a> от 1000 руб.</b><br />Вам нужно понимать, что каждое ваше обращение занимает время специалиста.<br />Просим проявить понимание и не нагружать службу просто так.<br />На многие ваши вопросы может ответить любой другой специалист по битриксу.<br /><br /><br />После того как вы сделали <a href="https://yasobe.ru/na/thankyou_bitrix" target="_blank" >донат</a> в заголовке письма укажите 4 последние цифры кошелька или карты с которой донатили.<br />Одно обращение один <a href="https://yasobe.ru/na/thankyou_bitrix" target="_blank" >донат</a>. Если вопрос в обращении закрылся, то для нового вопроса необходимо сделать <a href="https://www.tinkoff.ru/cf/36wVfnMf7mo" target="_blank" >донат</a>.<br /><br /><br /><b>Как сделать SUPER-обращение.</b><br />Делаете <a href="https://yasobe.ru/na/thankyou_bitrix" target="_blank" >донат</a> на 4000 руб и в заголовке к номеру (последние 4 цифры кошелька или карты) укажите слово SUPER.<br /><b><u>Такие обращения мы обработаем вне очереди.</u></b><br />Мы оказываем техническую поддержку по email.</td></tr></table></div><br />Контакты: <a href="mailto:support@dev2fun.com" target="_blank" >support@dev2fun.com</a><br /><br />Правила для письма: <br /><ol><li>В теме письма необходимо указать ID модуля<br /><li>В теле письма необходимо указать суть проблемы и описать ваши действия, которые к ней привели.<br /><li>Приложить скриншоты.<br /><li>Прислать доступы до админки и фтп (желательно)<br /></ol>Pre-base техподдержка осуществляется:<br /><br />В рабочие дни, со вторника по четверг.<br />С 11 до 16 (по мск)