Решение, как узнать 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 "Элемент с указанным символьным кодом не найден.";
}Новый комментарийДобавить комментарийНовый комментарий отправлен на модерациюПохожие решения:
Запрет на удаление элементов инфоблока
Количество элементов инфоблока (API)
Получить элемент по ID (API) Понравилось решение?
Создано: 03.11.2024 Просмотров: 492Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии