Не раз приходилось сталкиваться с задачей, когда нужно было вывести свойство инфоблока
Для шаблона компонента bitrix:news.detail
Где:
DISPLAY_PROPERTIES — название свойства
ATTRIBUTE — код свойства
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>
Для вывода название и значение свойств:
<? 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'];?>
Вывод свойство в режиме text:
<?=htmlspecialcharsBack($arResult["PROPERTIES"]["Название свойства"]["VALUE"]["TEXT"])?>
Вывод свойство в виде select [список]
<select> <option>Выберите</option> <?$i=0;foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $arRazmer):?> <option><?=$arRazmer?></option> <?endforeach;?> </select>
Множественное свойство типа список:
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <?if($pid =="ATT_COMPANY"): ?> <li><span>Арендодатель:</span> <?echo $arProperty["DISPLAY_VALUE"];?></li> <?endif?> <?endforeach;?>
Вывести список связанных элементов, привязка к элементам в виде списка
<?foreach($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"] as $analog):?> <?$res = CIBlockElement::GetByID($analog);?> <?if($ar_res = $res->GetNext())?> <li><b><a href='<?=$ar_res["DETAIL_PAGE_URL"];?>'><?=$ar_res["NAME"];?></a></b></li> <?endforeach;?>
Вывести свойство файл-изображение как изображение а не ссылку на загрузку:
<?$что_нибудь_понятное = CFile::GetPath($arResult["PROPERTIES"]["СВОЙСТВО"]["VALUE"]);?> <img src="<?echo $что_нибудь_понятное;?>" />
Изображение предварительный просмотр [preview picture]:
1<img src="<?=CFile::GetPath($arOffer["PREVIEW_PICTURE"])?>">
Свойство типа файл с ссылкой на загрузку файла:
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?> <? if($pid =="СВОЙСТВА_АТРИБУТ"): ?> <li> <b>Дополнительные файлы</b> <?if(is_array($arProperty["DISPLAY_VALUE"])): echo implode($arProperty["DISPLAY_VALUE"]); elseif($pid=="MANUAL"): ?> <a href="<?=$arProperty["VALUE"]?>">Скачать</a> <?else: echo $arProperty["DISPLAY_VALUE"];?> <?endif?> </li> <?endif?>
Вывести кол. комментариев к элементу:
<?=(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?>
Привязка к Google карте
<? $arProperty = $arResult["DISPLAY_PROPERTIES"]; ?> <? if (isset($arProperty['СВОЙСТВО'])):?> <? $arPos = explode(",", $arProperty['СВОЙСТВО']['VALUE']);?> <?$APPLICATION->IncludeComponent("bitrix:map.google.view", ".default", array( "INIT_MAP_TYPE" => "MAP", "MAP_DATA" => serialize(array( 'google_lat' => $arPos[0], 'google_lon' => $arPos[1], 'google_scale' => 13, 'PLACEMARKS' => array ( array( 'TEXT' => $arProperty["СВОЙСТВО_ГОРОД"]["VALUE"].", ".$arProperty["СВОЙСТВО_АДРЕС"]["VALUE"], 'LON' => $arPos[1], 'LAT' => $arPos[0], ), ), )), "MAP_WIDTH" => "600", "MAP_HEIGHT" => "600", "CONTROLS" => array( "SMALL_ZOOM_CONTROL", "SCALELINE" ), "OPTIONS" => array( "ENABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING", "ENABLE_KEYBOARD" ), "MAP_ID" => "" ), false );?> <?endif;?>