Блог

30.09.2016

Выводим свойства в Битрикс (кастомизация)

Если у инфоблока несколько свойств, то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.

Для этого достаточно в шаблоне bitrix:news.detail вписать

 <? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>

Где: DISPLAY_PROPERTIES - название свойства ATTRIBUTE - код свойства

Чтобы вывести и название и значение свойства есть вариант:

<? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']){?> //если не пустое
 <?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название
 <?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение
 <?}?> 

Чтобы вывести ссылку:

  <? if ( $arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"] > 0 ) : ?>
  <? echo '<a href="'.CFile::GetPath($arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"]).'">Скачать книгу</a> '; ?>
  <? endif; ?>

Чтобы вывести свойство типа строка в режиме html:

<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['~VALUE'];?>

Что бы вевести свойство типа html/text:

<?=htmlspecialcharsBack($arResult["PROPERTIES"]["Название свойства"]["VALUE"]["TEXT"])?>

Свойство список в виде select

<select>
  <option>Выберите</option>
  <?$i=0;foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $arRazmer):?>
  <option><?=$arRazmer?></option>
  <?endforeach;?>
  </select> 

Вывести свойство файл-изображение как изображение а не ссылку на загрузку:

<?$что_нибудь_понятное = CFile::GetPath($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"]);?>
  <img src="<?echo $что_нибудь_понятное;?>" />

Вывести колличество комментариев к элементу в списке новостей битрикс:

<?=(strlen($arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"]) > 0 ? $arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"] : "0");?>

Немного не в тему но может пригодиться: вывести колличество просмотров элемента инфоблока (с новостями точно работает):

К парметру вывода компанента добавить:
  "LIST_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",),
  "DETAIL_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",),
  В нужном месте шаблона вставить
  <?=$arItem['SHOW_COUNTER']?> - для списка новостей
  <?=$arResult['SHOW_COUNTER']?> - для детальной новости

Немного костыльный, но однако способ: как вывести ссылку на детальный просмотр и изображение связанного элемента каталога. Для примера, имеем инфоблок с товарами и инфоблок с брендами. Нужно на странице бренда вывести все связанные элементы с ссылкой на детальный просмотр и картинку товара.

<?if(count($arResult["LINKED_ELEMENTS"])>0):?>
  <b>Товары этого бренда в нашем каталоге:</b>
  <?foreach($arResult["LINKED_ELEMENTS"] as $arElement):?>
  //это ссылка на детальный просмотр
  <a href="<?=$arElement["DETAIL_PAGE_URL"]?>">
  <?=$arElement["NAME"]?>
  </a>
  //это картинка превью товара
  <?
  $res = CIBlockElement::GetByID($arElement["ID"]);
  if($ar_res = $res->GetNext())
  echo CFile::ShowImage($ar_res['PREVIEW_PICTURE'], 200, 200, "border=0", "", true);
  ?>
  <?endforeach;?>
  <?endif?>

Название: Выводим свойства в Битрикс (кастомизация)
Картинка для анонса: 
Детальное описание: 

Для этого достаточно в шаблоне bitrix:news.detail вписать

 <? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>

Где: DISPLAY_PROPERTIES - название свойства ATTRIBUTE - код свойства

Чтобы вывести и название и значение свойства есть вариант:

<? if ($arResult["DISPLAY_PROPERTIES"]['СВОЙСТВО']){?> //если не пустое
 <?=$arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['NAME']?> //вывести название
 <?echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> //и значение
 <?}?> 

Чтобы вывести ссылку:

  <? if ( $arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"] > 0 ) : ?>
  <? echo '<a href="'.CFile::GetPath($arItem["PROPERTIES"]["СВОЙСТВО"]["VALUE"]).'">Скачать книгу</a> '; ?>
  <? endif; ?>

Чтобы вывести свойство типа строка в режиме html:

<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['~VALUE'];?>

Что бы вевести свойство типа html/text:

<?=htmlspecialcharsBack($arResult["PROPERTIES"]["Название свойства"]["VALUE"]["TEXT"])?>

Свойство список в виде select

<select>
  <option>Выберите</option>
  <?$i=0;foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $arRazmer):?>
  <option><?=$arRazmer?></option>
  <?endforeach;?>
  </select> 

Вывести свойство файл-изображение как изображение а не ссылку на загрузку:

<?$что_нибудь_понятное = CFile::GetPath($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"]);?>
  <img src="<?echo $что_нибудь_понятное;?>" />

Вывести колличество комментариев к элементу в списке новостей битрикс:

<?=(strlen($arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"]) > 0 ? $arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"] : "0");?>

Немного не в тему но может пригодиться: вывести колличество просмотров элемента инфоблока (с новостями точно работает):

К парметру вывода компанента добавить:
  "LIST_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",),
  "DETAIL_FIELD_CODE" => array(0=>"SHOW_COUNTER",1=>"",),
  В нужном месте шаблона вставить
  <?=$arItem['SHOW_COUNTER']?> - для списка новостей
  <?=$arResult['SHOW_COUNTER']?> - для детальной новости

Немного костыльный, но однако способ: как вывести ссылку на детальный просмотр и изображение связанного элемента каталога. Для примера, имеем инфоблок с товарами и инфоблок с брендами. Нужно на странице бренда вывести все связанные элементы с ссылкой на детальный просмотр и картинку товара.

<?if(count($arResult["LINKED_ELEMENTS"])>0):?>
  <b>Товары этого бренда в нашем каталоге:</b>
  <?foreach($arResult["LINKED_ELEMENTS"] as $arElement):?>
  //это ссылка на детальный просмотр
  <a href="<?=$arElement["DETAIL_PAGE_URL"]?>">
  <?=$arElement["NAME"]?>
  </a>
  //это картинка превью товара
  <?
  $res = CIBlockElement::GetByID($arElement["ID"]);
  if($ar_res = $res->GetNext())
  echo CFile::ShowImage($ar_res['PREVIEW_PICTURE'], 200, 200, "border=0", "", true);
  ?>
  <?endforeach;?>
  <?endif?>

Детальная картинка: 
Начало активности (дата): 30.09.2016 11:05:17
Дата создания: 30.09.2016 11:05:38
Кем создан (ID): 1
Кем создан (имя): (admin) Виталий Элс

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

Хотите посотрудничать? Contact Us

Подписаться на обновления

Согласен