Решение, как постить материал из поста Битрикс в любую социальную сеть, используя протокол Open Graph
Задача, сделать так, чтобы при добавлении новостей в Битрикс, в соцсети автоматически подгружалось необходимое изображение, заголовок и описание. Чтобы не приходилось каждый раз выбирать картинку вручную. Для решения этой задачи, существует Open Graph protocol.
Для выполнения задачи используем следующие мета-теги, которые нужно разместить между тегами <head>…</head>:
<meta property="og:title" content="Заголовок новости" /> <meta property="og:description" content="Текст анонса" /> <meta property="og:image" content="Путь к изображению анонса" />
1 В качестве примера возьмем шаблон компонента news.detail. В папку шаблона (к примеру .default) добавляем файл result_modifier.php со следующим кодом:
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); //Кэшируем необходимые нам ключи $arResult что бы можно было их использовать в component_epilog.php $this->__component->SetResultCacheKeys(array( "NAME", "PREVIEW_TEXT", "PREVIEW_PICTURE" ));?>
2 Далее создаем в этой же папке файл component_epilog.php с кодом:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $APPLICATION->AddHeadString('<meta property="og:title" content="' . $arResult["NAME"] . '" />'); $APPLICATION->AddHeadString('<meta property="og:description" content="' . $arResult["PREVIEW_TEXT"] . '" />'); $APPLICATION->AddHeadString('<meta property="og:image" content="' . $arResult["PREVIEW_PICTURE"]["SRC"] . '" />'); ?>
3 Не забудьте в настройках компонента выделить в пункте «Источник данных» — «Картинка для анонса»
4 Что бы мета-теги появились в исходном коде, в шаблоне сайта должна присутствовать функция $APPLICATION->ShowHeadStrings(); или $APPLICATION->ShowHead();