Рассмотрим добавление обработчика данных на примере шаблона «1С-Битрикс: Управление сайтом».
В примере ниже применяется обработчик для сбора данных о хлебных крошках на текущей странице. В этом случае в настройках модуля потребуется только указать обязательное поле названия и маску URL.
Если же Вы захотите формировать хлебные крошки вручную, то в этом случае обработчик все равно нужен, но он не будет собирать информацию по странице в автоматическом режиме.
Обработчик «BreadcrumbList», как правило, размещают на все страницы сайта. Для этого не нужно вручную добавлять его в файлы каждой страницы, нужно разместить его в файл, который автоматически отрабатывается на всех страницах сайта. Рекомендуем Вам разместить код в подвал сайта.
Чтобы это сделать нужно:
<?
//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», как правило, размещают на детальных страницах товаров. Рекомендуем Вам разместить код в компонент генерирующий детальные страницы товаров. Чтобы это сделать нужно:
<?
if( BitrixMainLoader::includeModule('sotbit.schemaorg') && strpos($APPLICATION->GetCurPage(), "bitrix") === false ) {
SotbitSchemaorgEventHandlers::makeContent($APPLICATION->GetCurPage(false), 'Product');
$data = SchemaMain::getData();
SchemaMain::setData($data);
}
?>
Обработчик «LocalBusiness», как правило, размещают на всех страницах сайта. Рекомендуем Вам разместить код в подвал сайта как в примере обработчика «BreadCrumbs». Чтобы это сделать нужно:
<?
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);
}
}
?>