Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как получить имя элемента по ID?

00 голосов
3
У меня имеется инфоблок, в котором есть свойство - "привязка к элементам", в которое заносится ID`шник из другого инфоблока.
В шаблоне вывода списка первого инфоблока я получаю ID записи из второго, но, не могу понять, как мне по ID получить и имя?
спросил 24 Сен, 13 от Snezhka (2,240 баллов)

3 Ответы

00 голосов
На примере стандартного компонента news.list
Способ 1. В результат по умолчанию приходит название связанного элемента, обрамленное ссылкой. В цикле шаблона компонента можно ее убрать и получить "чистое" имя
Код
<?echo strip_tags($arItem["DISPLAY_PROPERTIES"]["MY_PROPERTY"]["DISPLAY_VALUE"])?>

Способ 2. В result_modifier.php шаблона компонента вытаскиваем необходимое поле элементов
Код
foreach($arResult["ITEMS"] as $key => $arItem):
   if($arItem["PROPERTIES"]["MY_PROPERTY"]["VALUE"]):
      $obElement = CIBlockElement::GetByID($arItem["PROPERTIES"]["MY_PROPERTY"]["VALUE"]);
      if($arEl = $obElement->GetNext())
           $arResult["ITEMS"][$key]["PROPERTIES"]["MY_PROPERTY"]["REAL_NAME"] = $arEl["NAME"];
   endif;
endforeach;

MY_PROPERTY - код свойства
ответил 02 Окт, 13 от Ahbar (820 баллов)
00 голосов
Первый вариант не дает результата.
А второй - не очень понял, каким образом получить доступ к переменной в шаблоне компонента?
ответил 02 Янв, 14 от Snezhka (2,240 баллов)
00 голосов
В шаблоне, там где, Вы выводите ID связанного элементы инфоблока(тот что в свойстве хранится), нужно сделать что-то такое:

Код
<?
 $obElement = CIBlockElement::GetByID("Здесь ID элемента");
 if($arEl = $obElement->GetNext())
   echo arEl["NAME"];
?>


Но так делать не правильно. Этот код должен находиться в компоненте. а NAME надо передавать в шаблон через $arResult.
ответил 18 Апр, 14 от Zyxy (180 баллов)

Похожие вопросы

0 голосов
4 ответов
0 голосов
2 ответов
0 голосов
1 ответ
спросил 11 Авг, 14 от beatsspam (440 баллов)
0 голосов
2 ответов
спросил 22 Июнь, 14 от beatsspam (440 баллов)
0 голосов
1 ответ
спросил 21 Июнь, 13 от WelMax (430 баллов)