Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Ссылка и название раздела в списке новостей Битрикс

Просмотров: 16066 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новость в компоненте "списк новостей" Битрикс, и ссылку на этот раздел на сайте. Можно воспользоваться массивом $arItem.

У компонента news.detail есть массив $arResult, в котором уже лежит IBLOCK_SECTION_ID текущего элемента. Осталось получить по нему название и символьный код раздела.

В result_modifier.php шаблона

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

/** @var array $arResult */

$sectionId = (int)$arResult["IBLOCK_SECTION_ID"];

if ($sectionId > 0) {
    $rsSection = CIBlockSection::GetList(
        [],
        ["ID" => $sectionId],
        false,
        ["ID", "NAME", "CODE", "IBLOCK_SECTION_ID"]
    );

    if ($section = $rsSection->GetNext()) {
        $arResult["SECTION_NAME"] = $section["NAME"];
        $arResult["SECTION_CODE"] = $section["CODE"];

        // Собираем URL раздела
        $arResult["SECTION_URL"] = !empty($section["CODE"])
            ? $arResult["SECTION_URL"] // если уже есть в компоненте
            : "/content/?SECTION_ID=" . $sectionId; // fallback
    }
}

В template.php шаблона

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

<?php if ($arResult["SECTION_NAME"]): ?>
    Раздел: <a href="<?= $arResult["SECTION_URL"] ?>"><?= $arResult["SECTION_NAME"] ?></a>
<?php endif; ?>

<h1><?= $arResult["NAME"] ?></h1>

Вариант покороче — прямо в template.php

Поскольку запрос всего один (не N+1), можно и в шаблоне, но в result_modifier.php аккуратнее:

<?php
$res = CIBlockSection::GetByID($arResult["IBLOCK_SECTION_ID"]);
if ($ar_res = $res->GetNext()):
?>
    Раздел: <a href="/content/<?= $ar_res["CODE"] ?>/"><?= $ar_res["NAME"] ?></a>
<?php endif ?>

Важно

  • Если используете ЧПУ (CODE в адресе) — ссылка собирается через CODE
  • Если без ЧПУ — подставляйте ID раздела
  • Для детальной страницы N+1 не проблема (элемент один), но подготовка данных в result_modifier.php — правильная практика: шаблон остаётся тупым, логика в одном месте

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

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

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

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

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

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

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс