Блог разработчика 1С-Битрикс

Как получить информацию о текущем разделе (описание, фото) в комплексном компоненте bitrix:catalog в section.php

Для получения информации о текущем разделе каталога в компоненте bitrix:catalog в файле section.php, вы можете использовать классы и методы, предусмотренные инфраструктурой Bitrix. Вот основные шаги и пример кода, как это можно сделать:

Как получить информацию от текущем разделе в section.php
  1. Получение ID текущего раздела:

    Обычно ID текущего раздела не доступен в переменной $arResult['ID'], но может быть получен из $arResult['VARIABLES']['SECTION_CODE'].

  2. Использование SectionTable для получения данных:

    Вы можете использовать класс SectionTable для извлечения информации о разделе.

<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Loader;
use Bitrix\Iblock;

Loader::includeModule("iblock");

$arResult['SECTION_ID'] = CIBlockFindTools::GetSectionID(
	$arResult['VARIABLES']['SECTION_ID'],
	$arResult['VARIABLES']['SECTION_CODE'],
	array('IBLOCK_ID' => $arParams['IBLOCK_ID'])
);

$sectionId = $arResult['SECTION_ID']; // Идентификатор текущего раздела

// Проверяем, задан ли ID
if ($sectionId > 0) {
    // Получение информации о разделе
    $sectionInfo = Iblock\SectionTable::getList(array(
        'filter' => array('ID' => $sectionId),
        'select' => array(
            'ID',
            'NAME',
            'DESCRIPTION',
            'PICTURE'
        )
    ))->fetch();

    // Обработка изображения
    if ($sectionInfo['PICTURE']) {
        $sectionInfo['PICTURE'] = CFile::GetFileArray($sectionInfo['PICTURE']);
    }

    // Вывод описания
    if ($sectionInfo) {
        // Выводим название и описание раздела
        echo "<h1>" . htmlspecialchars($sectionInfo['NAME']) . "</h1>";
        echo "<p>" . htmlspecialchars($sectionInfo['DESCRIPTION']) . "</p>";

        // Вывод изображения
        if ($sectionInfo['PICTURE']) {
            echo '<img src="' . htmlspecialchars($sectionInfo['PICTURE']['SRC']) . '" alt="' . htmlspecialchars($sectionInfo['NAME']) . '">';
        }
    }
}
?>

Объяснение кода:

  • Подключение модуля: Сначала нужно подключить модуль iblock, без этого работа с инфоблоками будет невозможна.
  • Получение ID раздела: Сначала получаем ID нашего раздела. Для этого воспользуемся очень классом CIBlockFindTools и его методом GetSectionID.
  • Запрос к базе данных: С помощью класса SectionTable вы получаете данные из инфоблока о конкретном разделе.
  • Обработка изображения: Если привязано изображение, его нужно получить через CFile::GetFileArray.
  • Вывод данных: Информация о разделе выводится в HTML, с некоторой обработкой для экранирования (через htmlspecialchars) для безопасности.

Учтите, что этот код — упрощенный пример. На практике вам, возможно, нужны дополнительные поля и особенности вывода, которые зависят от ваших настроек и структуры проекта.

Теги: bitrix:catalog, текущий раздел, информация о разделе, фото раздела, описание раздела, section.php в Битрикс, комплексный компонент, вывод информации о разделе, разработка на Битрикс, PHP для Битрикс.


Валерий Макеев
09.09.2025 13:49
Этот код получает данные текущего раздела каталога (название, описание и изображение) и выводит их в виде HTML-разметки, используя как ID так и символьный код раздела.
Код
<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Loader;

Loader::includeModule("iblock");

$sectionId = (int)$arResult['VARIABLES']['SECTION_ID'];
if ($sectionId <= 0 && $arResult['VARIABLES']['SECTION_CODE']) {
    $res = CIBlockSection::GetList([], ['CODE' => $arResult['VARIABLES']['SECTION_CODE']], false, ['ID']);
    if ($section = $res->Fetch()) {
        $sectionId = (int)$section['ID'];
    }
}

if ($sectionId > 0) {
    $dbSection = CIBlockSection::GetByID($sectionId);
    if ($section = $dbSection->GetNext()) {
        if ($section['PICTURE']) {
            $section['PICTURE'] = CFile::GetFileArray($section['PICTURE']);
        }
        
        echo '<div class="section-info">';
        echo '<h1>' . htmlspecialchars($section['NAME']) . '</h1>';
        echo '<div class="description">' . $section['DESCRIPTION'] . '</div>';
        if ($section['PICTURE']) {
            echo '<img src="' . $section['PICTURE']['SRC'] . '" alt="' . htmlspecialchars($section['NAME']) . '">';
        }
        echo '</div>';
    }
}
?>

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Аутсорсинг

готов помочь, если нет времени

договорная

Могу взять на себя работы по full-stack

* на основе готовой верстки

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.

Разработка интернет-магазина с готовой версткой

от 4 недель

от 90 000 рублей

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.