Узнать ID элемента по URL в Битрикс

Решение, как узнать ID элемента по URL из адресной строки из любого файла, например /catalog/custom.php в 1С-Битрикс
Чтобы узнать ID элемента по URL в Битриксе, можно использовать метод CIBlockElement::GetList и фильтровать по свойству CODE. В Bitrix API это делается примерно так:
Решение:
<?php
use Bitrix\Main\Loader;
Loader::includeModule("iblock");

// Получаем текущий URL из адресной строки
$currentUrl = $_SERVER["REQUEST_URI"];

// Разбираем URL и извлекаем путь без GET-параметров
$parsedUrl = parse_url($currentUrl);
$path = $parsedUrl['path'];

// Разделяем путь на части, чтобы извлечь символьный код
$parts = explode('/', trim($path, '/'));
$elementCode = end($parts); // Берем последний сегмент пути как символьный код элемента

// Выводим отладочную информацию
echo "URL: " . $currentUrl . "<br>";
echo "Код элемента: " . $elementCode . "<br>";

// Указываем ID инфоблока
$iblockId = 11; // Замените на ID вашего инфоблока

// Настраиваем выборку и фильтр для поиска элемента
$arSelect = ["ID", "NAME"];
$arFilter = [
    "IBLOCK_ID" => $iblockId,
    "ACTIVE" => "Y",
    "CODE" => $elementCode
];

// Выполняем запрос к инфоблоку
$res = CIBlockElement::GetList([], $arFilter, false, false, $arSelect);

if ($element = $res->Fetch()) {
    echo "ID элемента: " . $element["ID"];
} else {
    echo "Элемент с указанным символьным кодом не найден.";
}

Комментарии (0)

Похожие решения:
Создано: 03.11.2024
Просмотров: 1