Заголовок страницы и хлебные крошки в коде шаблона
Заголовок и цепочка навигации
В процедурном шаблоне удобнее оперировать объектом главного модуля: имя заголовка, которое подхватят $APPLICATION->ShowTitle() в header.php и типовые компоненты, задаётся вызовом SetTitle. Параллельно имеет смысл синхронизировать последний пункт «хлебных крошек»: для этого служит AddChainItem — текст виден в шаблоне компонента breadcrumb.
Типичный фрагмент после того, как вы уже получили свойства или имя сущности (переменные переименованы произвольно):
$APPLICATION->SetTitle($catalogItemProps['DISPLAY_NAME']);
$APPLICATION->AddChainItem($catalogItemProps['DISPLAY_NAME'], '');
echo htmlspecialcharsbx($APPLICATION->GetTitle());Второй аргумент AddChainItem — ссылка: пустая строка или отсутствие URL означает, что элемент цепочки относится к текущей странице и обычно рендерится без тега <a>. Порядок вызовов относительно компонента, который сам выставляет заголовок, лучше согласовать явно (кто последний записал — того заголовок и увидят в шапке).
Отдача ответа 404
Если элемент не найден, не всегда достаточно вывести текст «нет такой страницы»: поисковикам и счётчикам нужен корректный статус HTTP. В Битрикс для этого принято выставить статус и константу, затем подключить штатную страницу ошибки из корня сайта.
CHTTP::SetStatus('404 Not Found');
if (!defined('ERROR_404')) {
define('ERROR_404', 'Y');
}
require $_SERVER['DOCUMENT_ROOT'] . '/404.php';Сайты с разными языками
На мультиязыковой конфигурации иногда нужно ограничить материал по коду сайта (SITE_ID): сначала проверка кода сайта, затем тот же сценарий 404.
if (SITE_ID !== 'ru') {
CHTTP::SetStatus('404 Not Found');
if (!defined('ERROR_404')) {
define('ERROR_404', 'Y');
}
require $_SERVER['DOCUMENT_ROOT'] . '/404.php';
return;
}Кратко
SetTitle/GetTitle— связка заголовка с шаблоном;AddChainItemдаёт понятную цепочку для навигации.- Для ошибки «не найдено» нужны статус 404 и подключение
404.php, а не только текст в теле страницы. - Проверка
SITE_IDперед ответом 404 удобна, когда материал разрешён не на всех языковых версиях.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии