Как получить информацию о текущем разделе (описание, фото) в комплексном компоненте 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) для безопасности.

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

Теги:  Битрикс

Интернет-магазин от 120 000 руб., срок от 4 недель

Платформа для продажи товаров или услуг. Включает интерактивные формы обратной связи в каждой карточке товара, а также множество статичных и динамичных разделов.

Корпоративный сайт от 60 000 руб., срок от 3 недель

Готовый информационный ресурс, включающий лицензию на 1С-Битрикс «Стандарт», технологию «Композитный сайт».

Лендинг от 25 000 руб., срок от 2 недель

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