Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании новости, они выводятся все вместе- списком. Но можно вывести их независимо друг от друга.
Для этого достаточно в шаблоне bitrix:news.detail вписать
<? echo $arResult['DISPLAY_PROPERTIES']['ATTRIBUTE']['DISPLAY_VALUE'];?>
Где: 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>
Множественное свойство типа список:
<?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 $что_нибудь_понятное;?>" />
Изображение торгового предложения
<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?>
<?endforeach;?>
Вывести множественное свойство типа файл, со всей информацией о файле: размер, название, транслитированное название, тип файла- в отдельной заметке.
Вывести колличество комментариев к элементу в списке новостей битрикс:
<?=(strlen($arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"]) > 0 ? $arItem["PROPERTIES"]["FORUM_MESSAGE_CNT"]["VALUE"] : "0");?>
Вывести и отресайзить детальную картинку товара знаная ID товара (или элемента)
<?
$res = CIBlockElement::GetByID($arItem["ITEM_ID"]);
if($ar_res = $res->GetNext()){
$img = CFile::ShowImage($ar_res["DETAIL_PICTURE"], 50, 50, "border=0", "", true);}
?>
<div class="bx_image" style="background-image: url('<?=$img?>')"></div>
Немного не в тему но может пригодиться: вывести колличество просмотров элемента инфоблока (с новостями точно работает):
// К парметру вывода компанента добавить:
"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;?>
Вывести любое множественное свойство:
<?foreach($arResult["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
<? if($pid =="MATERIAL"):?>
<li><b><?=$arProperty["NAME"]?>:</b> <?
if(is_array($arProperty["DISPLAY_VALUE"])):
echo implode(" / ", $arProperty["DISPLAY_VALUE"]);
elseif($pid=="MANUAL"):
?><a href="<?=$arProperty["VALUE"]?>"><?=GetMessage("CATALOG_DOWNLOAD")?></a><?
else:
echo $arProperty["DISPLAY_VALUE"];?>
<?endif?></li>
<?endif;?>
<?endforeach;?>
Вывести теги с отправкой на страницу поиска
Вывести теги с отправкой на страницу поиска
<?
$arrTags = explode(',', $arResult["TAGS"]);
$count = count($arrTags);
$i = 0;
foreach($arrTags as $value):
$i++;
$value = trim($value);
echo ' <a href="/search/?tags='.str_replace(' ', '+', $value).'">'.$value.' </a>';
endforeach;
?>
Вывести дату создания элемента в правильном формате "22 января 2015"
<?
$arParams["DATE_CREATE"]="j F Y";
echo CIBlockFormatProperties::DateFormat($arParams["DATE_CREATE"], MakeTimeStamp($arItem["DATE_CREATE"], CSite::GetDateFormat()));
?>
Вывести количество просмотров элемента инфоблока. Если просмотров нет, вывести 0
<?if (strlen($arItem['SHOW_COUNTER'])>0):?>
<?=$arItem['SHOW_COUNTER']?>
<?else:?>
0
<?endif;?>
Вывести количество комментариев к элементу инфоблока. Если просмотров нет, вывести 0
<?if (strlen($arResult['DISPLAY_PROPERTIES']['BLOG_COMMENTS_CNT']['DISPLAY_VALUE'])>0):?>
<?echo $arResult['DISPLAY_PROPERTIES']['BLOG_COMMENTS_CNT']['DISPLAY_VALUE'];?>
<?else:?>
0
<?endif;?>
Вывести путь к файлу из пользовательского поля раздела инфоблока в catalog.section.list
Для этого создаем два пользовательских поле типа Файл и даем им коды UF_FILE и UF_SECOND_FILE. В шаблоне catalog.section.list создаем файл result_modifier.php с содержимым:
$db_list = CIBlockSection::GetList(Array($by=>$order),
$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"],
"ID"=>$arResult['SECTIONS']), true,
$arSelect=Array("UF_FILE", "UF_SECOND_FILE"));
while($ar_result = $db_list->GetNext()) {
$arResult["UF_FILE"][$ar_result["ID"]] = CFile::GetPath($ar_result["UF_FILE"]);
$arResult["UF_SECOND_FILE"][$ar_result["ID"]] = CFile::GetPath($ar_result["UF_SECOND_FILE"]);
}
В нужном месте шаблона catalog.section.list выводим пути к этим файлам (могут быть картинкой, файлом, чем угодно)
$arResult['UF_FILE'][$arSection['ID']];
$arResult['UF_SECOND_FILE'][$arSection['ID']];