Главная » Блог » Работа со свойствами компонентов Битрикс
Полезное

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

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

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);?>
Читать все статьи