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

Чтение значения свойств информационного блока.

00 голосов
4
Добрый день.

Весь день провел за чтением документации, но так и не понял, как в шаблоне компонента «Информационные блоки» обратится к пользовательским свойствам элемента (т.е. к полям созданным во вкладке «Свойства»).

Пример кода:

Код
<?
  if(CModule::IncludeModule("iblock")) {
    $items = GetIBlockElementListEx("events", "action", Array(),
                                    Array("DATE_ACTIVE_FROM"=>"DESC", "SORT"=>"ASC", "NAME" => "ASC"), 1,
                                    Array("=PROPERTY_actionMain_VALUE"=>"1"));

    while($arItem = $items->GetNext()):
    ?>
          <h1><a href="<?echo $arItem["DETAIL_PAGE_URL"]?>"><?echo $arItem["NAME"];?></a></h1>
          <p class="city"><?echo $arItem["[B]Не могу понять, как прочитать пользовательское свойство с кодом «city» или id равным 5-ти[/B]"]?></p>
    <?
    endwhile;
  }
?>


Я нашел только GetProperty(), но при использовании этого метода приходится писать очень много кода.
спросил 22 Июнь, 13 от Sawok (160 баллов)

4 Ответы

00 голосов
Код
<?
$arSelect = Array(
       "ID", 
                 "NAME", 
                 "DATE_ACTIVE_FROM"
                 );
$arFilter = Array(
       "IBLOCK_ID"   => $IBLOCK_ID, 
                 "ACTIVE_DATE" => "Y", 
                 "ACTIVE"      => "Y"
                 );
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
  $arFields   = $ob-> GetFields();
  $arPriperty = $ob-> GetProperties();
  echo print_r($arPriperty); // массив свойст инфоблока
  echo print_r($arFields);   // массив полей элемента

}
?>

ответил 22 Июнь, 13 от Lekar (2,220 баллов)
00 голосов
Добрый день,

Подобная тема уже поднималась:
http://www.1c-bitrix.ru/support/forum/forum7/topic9375/message54103/?phrase_id=836209#message54103
ответил 14 Июль, 13 от JIETYHOK (2,260 баллов)
00 голосов
Цитата
Михаил Митрофанов пишет:
Добрый день,

Подобная тема уже поднималась:
http://www.1c-bitrix.ru/support/forum...ssage54103


Не пускает.
ответил 18 Окт, 13 от Sawok (160 баллов)
00 голосов
Цитата
Рамиль Юналиев пишет:
Код
<?
...
?>



Спасибо. Очень помогли.

Я сделал так:

Код
<?
  if(CModule::IncludeModule("iblock")) {
    $items = GetIBlockElementListEx("events", "action", Array(),
                                    Array("DATE_ACTIVE_FROM"=>"DESC", "SORT"=>"ASC", "NAME" => "ASC"), 100,
                                    Array("=PROPERTY_actionMain_VALUE"=>"1"));

    while($arItem = $items->GetNextElement()):
    
      $arFields = $arItem->GetFields();
      $arProperties = $arItem->GetProperties();
      
    ?>
          <h1><a href="<?echo $arFields["DETAIL_PAGE_URL"]?>"><?echo $arFields["NAME"];?></a></h1>
          <p class="date"><?echo $arProperties["IBLOCK_ID"]?></p>
          <p class="date">состоится c&nbsp;<?echo $arProperties["date01"]["VALUE"];?>&nbsp;по&nbsp;<?echo $arProperties["date02"]["VALUE"];?> в&nbsp;городе <?echo $arProperties["city"]["VALUE"];?>.</p>
          <!-- состоится c&nbsp;20&nbsp;по&nbsp;24 октября в&nbsp;городе Электросталь.</p> -->
          <div class="logoMain" style="background: url('/img/bgEventMain.gif') repeat-x 0 0;">
            <img src="/img/logoEventMain.gif" />
          </div>
    <?
    endwhile;
  }
?>
ответил 20 Янв, 14 от Sawok (160 баллов)

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

0 голосов
3 ответов
0 голосов
3 ответов
спросил 23 Март, 14 от Naru (200 баллов)
0 голосов
0 ответов
спросил 07 Дек, 13 от Kania (5,180 баллов)
0 голосов
3 ответов
спросил 21 Июнь, 13 от rada (160 баллов)