Блог специалистов
03.12.2010

Работа со свойствами компонентов Битрикс

Свойства элементов Битрикса - очень большая часть в разработке сайта на данной системе управления. Хочу поделится несколькими нужными моментами в работе с ними. 

1. Выводит ключи по которым доступны необходимые данные компонента: 
Код <pre><?print_r($arResult);?></pre>


Выводит ключи по которым доступны необходимые данные элемента на странице списка элементов компонента. 
Код <pre><?print_r($arElement);?></pre>



2. Выводит свойство на странице элемента компонента, если это не массив: 
Код <?php if ($arResult["PROPERTIES"]["gorod"]["VALUE"]) {?>  <strong>Город:</strong> <?= $arResult["PROPERTIES"]["gorod"]["VALUE"]." "; ?><br />  <?php } else { ?><?php }?>

Для вывода свойства элемента на странице списка элементов компонента используется $arResult

Для вывода свойства Новости на главной использовался вот такой код: 
Код <?= $arItem["PROPERTIES"]["gorod"]["VALUE"]."&nbsp"; ?>




2.1. Если свойство в виде массива данных (будет разделен  / ): 
Код <?php if ($arResult["PROPERTIES"]["TIP"]["VALUE"]) {?>  <strong>Тип:</strong> <? if(is_array($arResult["PROPERTIES"]["TIP"]["VALUE"]))  echo implode(" / ", $arResult["PROPERTIES"]["TIP"]["VALUE"]);  else  echo $arResult["PROPERTIES"]["TIP"]["VALUE"];?><br />  <?php } else { ?> <?php }?>



2.3. Если свойство в виде массива фотографий: 
Код <?php if ($arResult["PROPERTIES"]["foto_nar"]["VALUE"]) {?>  <?if(count($arResult["PROPERTIES"]["foto_nar"]["VALUE"])>0):?>  <div style="float:left;">  <table width="180px" cellpadding="0" cellspacing="0">  <tr><td height="30px">  <strong>Фотографии:</strong>  </td></tr>  <?foreach($arResult["PROPERTIES"]["foto_nar"]["VALUE"] as $PHOTO):?>  <tr><td valign="top" height="160px">  <div class="crop"><a class="highslide" onclick="return hs.expand(this)" title="<?=$arResult["NAME"]?>" href="<?=CFile::GetPath($PHOTO); ?>"><img border="0" src="<?=CFile::GetPath($PHOTO); ?>" width="300px" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" /></a></div> </td></tr>  <?endforeach?>  </table>  </div>  <?endif?>  <?php } else { ?><?php }?>

Пример в виде таблицы. В примере используется еще галерея и стиль CROP, но не обращайте на них внимания, это сделано уже для себя, т.к. часто их использую. 

3. Выводит ссылку на файл свойства типа "файл": 
Код <?=CFile::GetPath($arElement["PROPERTIES"]["foto1"]["VALUE"]); ?>



4. Выводит фото раздела компонента: 
Код <img style="max-width:300px" src="<?=$arResult["PICTURE"]["SRC"]?>" title="<?=$arResult["NAME"]?>" />



5. Выводит описание раздела компонента: 
Код <?=$arResult["DESCRIPTION"]?>



6. Выводит массив свойства "Файл" с описанием к ним. Для этого предварительно в свойствах "Файл" ставится галочка "Выводить поле для описания значения:"
<?php if ($arItem["PROPERTIES"]["D_F_1"]["VALUE"]) {?>   <?if(count($arItem["PROPERTIES"]["D_F_1"]["VALUE"])>0):?>     <h6>Декоры:</h6>       <?foreach($arItem["PROPERTIES"]["D_F_1"]["VALUE"] as $PHOTO => $val):?>       <a href="<?=CFile::GetPath($val); ?>" class="highslide " onclick="return hs.expand (this, { wrapperClassName: 'wide-border'})">       <img style="margin-top: 10px" width="100" height="100" src="<?=CFile::GetPath($val); ?>" alt=      "<?=$arItem["PROPERTIES"]["D_F_1"]["DESCRIPTION"][$PHOTO];?>" /></a><br><br>       <?=$arItem["PROPERTIES"]["D_F_1"]["DESCRIPTION"][$PHOTO];?>       <?endforeach?>   <?endif?> <?php }?>



7. Не множественное свойство "Привязка к элементу". Наш элемент имеет свойство PRICE типа "Привязка к элементам" и нам нужно вывести в нем свойство PRICE_DOWN от привязанного элемента. Для этого используем код ниже:
<?php if ($arResult["PROPERTIES"]["price"]["VALUE"]) {?> <? $arPrice = GetIBlockElement($arResult["PROPERTIES"]["price"]["VALUE"]); echo $arPrice["PROPERTIES"]["price_down"]["VALUE"]; ?> <?php }?>



8. Вывести текущую директорию из файла .section.php в шаблоне сайта:
<? include($_SERVER['DOCUMENT_ROOT'].$APPLICATION->GetCurDir().'.section.php'); print $sSectionName;?>



9. Условие, когда пользователь авторизован под Администратором:
<? if ($GLOBALS['USER']->IsAdmin()):?> <?endif?>



10. При выводе свойства или переменной меняем занчение какого-либо символа или кода на свой код:
<? $document = $arResult['PREVIEW_TEXT']; $search = array ("'#'"); $replace = array ("\" /></td><td>"); $text = preg_replace ($search, $replace, $document); ?>



11. Условие, если число не делится без остатка на 4:
<?if (fmod($i,4)){?>style="margin-right:8px;<?}?>



12. Выводим свойство, ограничивая количество символов до 13 штук:
<?=substr($arItem["PROPERTIES"]["TIP_DVIG"]["VALUE"], 0, 13);?>

Количество показов: 30148




Возврат к списку