Yandex Metrika
sanches.free 1 просмотр

Заголовок страницы и хлебные крошки в коде шаблона

Заголовок и цепочка навигации

В процедурном шаблоне удобнее оперировать объектом главного модуля: имя заголовка, которое подхватят $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 дней гарантии