Документация Сотбит: Микроразметка Schema.org. Установка обработчика
Установка обработчика
Модуль построен таким образом, что без обработчика не генерируется json+ld. И не важно собирает он информацию по странице или нет.
Рассмотрим добавление обработчика данных на примере шаблона «1С-Битрикс: Управление сайтом».
В примере ниже применяется обработчик для сбора данных о хлебных крошках на текущей странице. В этом случае в настройках модуля потребуется только указать обязательное поле названия и маску URL.
Если же Вы захотите формировать хлебные крошки вручную, то в этом случае обработчик все равно нужен, но он не будет собирать информацию по странице в автоматическом режиме.
Добавление кода обработчика «BreadcrumbList»
Обработчик «BreadcrumbList», как правило, размещают на все страницы сайта. Для этого не нужно вручную добавлять его в файлы каждой страницы, нужно разместить его в файл, который автоматически отрабатывается на всех страницах сайта. Рекомендуем Вам разместить код в подвал сайта.
Чтобы это сделать нужно:
- Открыть файл генерирующий подвал сайта. Для «1С-Битрикс: Управление сайтом» это [Файлы и папки//bitrix/templates/eshop_bootstrap_green/footer.php]
- Нажать правой кнопкой мыши на файл и выбрать пункт меню «Редактировать как РНР».
- Вставить код обработки данных «BreadcrumbList» перед закрывающим тегом </body>.
 
<?
//Schema org breadcrumb
if(\Bitrix\Main\Loader::includeModule('sotbit.schemaorg') && (strpos($APPLICATION->GetCurPage(), "bitrix") === false) ) {
    Sotbit\Schemaorg\EventHandlers::makeContent($APPLICATION->GetCurPage(false), 'breadcrumblist');
    $data = SchemaMain::getData();
    if($data) {
        foreach ($data as $k => &$dat) {
            if ($dat['@type'] == 'breadcrumblist') {
                $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
                if(!empty($APPLICATION->arAdditionalChain)) {
                    $arChain = $APPLICATION->arAdditionalChain;
                    foreach ($arChain as $key => $item) {
                        unlink($dat['itemListElement'][$key]);
                        $dat['itemListElement'][$key]['@type'] = "ListItems";
                        $dat['itemListElement'][$key]['name'] = $item['TITLE'];
                        $dat['itemListElement'][$key]['item'] = $protocol . $_SERVER['SERVER_NAME'] . $item['LINK'];
                        $dat['itemListElement'][$key]['position'] = $key + 1;
                    }
                }
                SchemaMain::setData($data);
            }
        }
    }
}
?>
		Добавление кода обработчика «Product»
Обработчик «Product», как правило, размещают на детальных страницах товаров. Рекомендуем Вам разместить код в компонент генерирующий детальные страницы товаров. Чтобы это сделать нужно:
- Перейти к эпилогу шаблона компонента детальной страницы товара. Для интернет-магазина это путь [Файлы и папки//bitrix/components/bitrix/catalog.element/templates/.default/component_epilog.php]
- Нажать правой кнопкой мыши на файл и выбрать пункт меню «Редактировать как РНР».
- Вставить код обработки данных микро-разметки типа «Product» перед закрывающим тегом </body>.
<?
if( BitrixMainLoader::includeModule('sotbit.schemaorg') && strpos($APPLICATION->GetCurPage(), "bitrix") === false ) {
   SotbitSchemaorgEventHandlers::makeContent($APPLICATION->GetCurPage(false), 'Product');
   $data = SchemaMain::getData();
   SchemaMain::setData($data);
}
?>
		Добавление кода обработчика «LocalBusiness»
Обработчик «LocalBusiness», как правило, размещают на всех страницах сайта. Рекомендуем Вам разместить код в подвал сайта как в примере обработчика «BreadCrumbs». Чтобы это сделать нужно:
- Открыть файл генерирующий подвал сайта. Для «1С-Битрикс: Управление сайтом» это путь [Файлы и папки/bitrix/templates/ eshop_bootstrap_green/footer.php]
- Нажать правой кнопкой мыши на файл и выбрать пункт меню «Редактировать как РНР».
- Вставить код обработки данных «LocalBusiness» перед закрывающим тегом </body>.
<?
if( \Bitrix\Main\Loader::includeModule('sotbit.schemaorg') && (strpos($APPLICATION->GetCurPage(), "bitrix") === false) ) {
   Sotbit\Schemaorg\EventHandlers::makeContent($APPLICATION->GetCurPage(false), 'localbusiness');
   $data = SchemaMain::getData();
   if(is_array($data)){
       SchemaMain::setData($data);
   }
}
?>
		 
    Вступайте в сообщество Сотбит!
Задавайте вопросы, делитесь опытом и находите ответы вместе с другими участниками.
Свяжитесь с нами
Заполните простую форму, чтобы обсудить ваш проект
