У Битрикса с этим небольшая проблема. Если нужно получить ТОЛЬКО имя элемента, использовать GetList или тот же GetByID слишком жирно.
Поскольку все элементы хранятся в одной таблице, странно, что Битрикс не добавили метод получения только имени по ID вместо тяжелого GetList.
Для решения, можно использовать следующий код:
Файл /bitrix/php_interface/init.php или /local/php_interface/init.php:
(редактор почему-то ставит пробелы в sql-запросе в словах SELECT и FR OM)
И в result_modifier.phpили шаблоне уже получать:
Поскольку все элементы хранятся в одной таблице, странно, что Битрикс не добавили метод получения только имени по ID вместо тяжелого GetList.
Для решения, можно использовать следующий код:
Файл /bitrix/php_interface/init.php или /local/php_interface/init.php:
Код |
---|
class ExtraElement { public static function getElementNameByID($id) { global $DB; $sql = "SEL ECT `NAME` FR OM `b_iblock_element` WH ERE `ID` = $id LIMIT 1"; $res = $DB->Query($sql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); $arResult = $res->GetNext(); if (isset($arResult['NAME'])) return $arResult['NAME']; else return false; } } |
И в result_modifier.php
Код |
---|
echo ExtraElement::getElementNameByID($ELEMENT_ID); |