Skip to content

Instantly share code, notes, and snippets.

@MaxwellRU
Last active January 25, 2024 14:00
Show Gist options
  • Save MaxwellRU/ff5a16531b13283c078c237e8f830ff9 to your computer and use it in GitHub Desktop.
Save MaxwellRU/ff5a16531b13283c078c237e8f830ff9 to your computer and use it in GitHub Desktop.
Название раздела и элемента в хлебных крошках, вместо SEO поля. Bitrix

Не забываем подключать файл в шаблоне хлебных крошек.

Для этого в самом начале шаблона, сразу после подключения пролога, добавляем строчку:

include_once 'result_modifier.php';
<?if(!defined('B_PROLOG_INCLUDED') && B_PROLOG_INCLUDED !== true) die();?>
<? global $APPLICATION;
// Подменяем название раздела в хлебных крошках.
for ($i=1; $i < count($arResult); $i++) {
// Разбираем путь до раздела в массив. Отбрасывая пустые элементы.
if ($arResult[$i]['LINK']) {
$section_url = array_values(array_filter(explode('/', $arResult[$i]['LINK']), function($element) { return !empty($element); }));
} else {
$section_url = '';
$element_url = array_values(array_filter(explode('/', $APPLICATION->GetCurDir()), function($element) { return !empty($element); }));
}
// Если мы в разделе
if (count($section_url) > 2) {
// Берём последний элемент массива. Это и есть символьный код раздела.
$section_code = array_pop($section_url);
//Используем метод для определения id раздела по его символьному коду.
$section_id = CIBlockFindTools::GetSectionID($sid, $section_code);
if($section_id && $section_id != 0) {
//Получаем название раздела из его свойств по id раздела.
$res = CIBlockSection::GetByID($section_id);
if($ar_res = $res->GetNext()) {
$section_name = $ar_res['NAME'];
}
// Подменяем название пункта хлебных крошек.
$arResult[$i]['TITLE'] = $section_name;
}
}
// Если мы в элементе
if (count($element_url) > 2) {
$parent_url = array_values(array_filter(explode('/', $arResult[$i-1]['LINK']), function($element) { return !empty($element); }));
// $parent_code = array_pop($parent_url);
for ($p=1; $p < count($parent_url); $p++) {
$parent_code = $parent_url[$p];
//Используем метод для определения id раздела родителя по его символьному коду.
$parent_id = CIBlockFindTools::GetSectionID($id, $parent_code);
$parent_res = CIBlockSection::GetByID($parent_id);
if($parent_ar_res = $parent_res->GetNext()) {
$parent_name = $parent_ar_res['NAME'];
}
}
// Берём последний элемент массива элемента. Это и есть символьный код элемента.
$element_code = array_pop($element_url);
//Используем метод для определения id раздела по его символьному коду.
$element_id = CIBlockFindTools::GetElementID($id, $element_code, $parent_id, $parent_code);
if($element_id && $element_id != 0) {
//Получаем название элемента из его свойств по id элемента.
$res = CIBlockElement::GetByID($element_id);
if($ar_res = $res->GetNext()) {
$element_name = $ar_res['NAME'];
}
// Подменяем название пункта хлебных крошек.
$arResult[$i]['TITLE'] = $element_name;
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment