При постоянном использовании модуля обнаружилась такая проблема: часто бывает нужно разместить плагины внутри закешированных шаблонов компонентов, и т.к. при отображении из кеша компонент не вызывается, код заголовка при этом не подключается.
Решение этой проблемы достаточно простое:[spoiler]
Страница в Marketplace:
Справка:
Руководство по быстрому старту:
Решение этой проблемы достаточно простое:[spoiler]
- Скопируем шаблон компонента "grain:plugin.group" в шаблон сайта по умолчанию под именем "only_head" (скопируем содержимое папки "/bitrix/components/grain/plugin.group/templates/.default/" в папку "/bitrix/templates/.default/components/grain/plugin.group/only_head/" )
- Отредактируем шаблон (файл "/bitrix/templates/.default/components/grain/plugin.group/only_head/template.php" ), оставим в нем только подключение кода заголовка:

- Разместим компонент с нашим шаблоном "only_head" в шаблоне сайта в файле "header.php" сразу после тега "<body>", указав ID нужной группы плагинов:или несколько идентификаторов конкретных плагинов (что в данном случае может оказаться предпочтительнее):
<?$APPLICATION->IncludeComponent( "grain:plugin.group", "only_head", Array( "GROUP_ID" => "like", ) );?>
Данный код лучше всего размещать сразу после тега "<body>", т.к. если код заголовка подключается не в области "<head>" страницы (у плагина установлена галочка "<body>" ), то он будет выведен напрямую, без использования функции $APPLICATION->AddHeadScript(). К тому же Facebook, например, рекомендует размещать общий код для всех плагинов именно сразу после тега "<body>", поэтому данный способ будет наиболее правильным, даже если Вы не планируете размещать плагины внутри закешированных компонентов.<?$APPLICATION->IncludeComponent( "grain:plugin.group", "only_head", Array( "PLUGIN_ID" => Array("facebook_like","vk_like","twitter_tweet") ) );?>
Страница в Marketplace:
Справка:
Руководство по быстрому старту: