Решение, как узнать 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)