Yandex Metrika
sanches.free

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

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии