Возникла необходимость создания и вывода 2-х свойств "привязка к элементам".
Задача. Необходимо вывести в карточке товара услугу, она заведена у нас как товар(свойство USTANOVKA), и вывести список привязанных товаров другого инфоблока (свойство RASHODNIKI). При этом у всех элементов должна быть показана цена и кнопочка купить.
Редактируем файл result_modifier.php комплексного компонента catalog, в нем catalog.element
/* --- */
$ids = $arResult[ 'PROPERTIES' ][ 'RASHODNIKI' ][ 'VALUE' ];
if( $arResult[ 'PROPERTIES' ][ 'USTANOVKA' ][ 'VALUE' ] > 0 ) :
$ids[] = $arResult[ 'PROPERTIES' ][ 'USTANOVKA' ][ 'VALUE' ];
endif;
if( count( $ids ) > 0 ) :
$filter = array(
'ID' => $ids,
'ACTIVE' => 'Y'
);
$select = array(
'ID',
'NAME',
'DETAIL_PAGE_URL',
'PREVIEW_PICTURE'
);
$list = CIBlockElement::GetList( false, $filter, false, false, $select );
while( $el = $list -> GetNext() ) :
if( $el[ 'PREVIEW_PICTURE' ] > 0 ) :
$el[ 'PREVIEW_PICTURE' ] = CFile::GetPath( $el[ 'PREVIEW_PICTURE' ] );
endif;
$price = CCatalogProduct::GetOptimalPrice( $el[ 'ID' ] );
$el[ 'PRICE' ] = FormatCurrency( $price[ 'PRICE' ][ 'PRICE' ], CCurrency::GetBaseCurrency() );
$el[ 'BUY_LINK' ] = $APPLICATION -> GetCurPageParam( $arParams[ 'ACTION_VARIABLE' ] .'=ADD2BASKET&' .$arParams[ 'PRODUCT_ID_VARIABLE' ] .'=' .$el[ 'ID' ], array( $arParams[ 'PRODUCT_ID_VARIABLE' ], $arParams[ 'ACTION_VARIABLE' ] ) );
if( in_array( $el[ 'ID' ], $arResult[ 'PROPERTIES' ][ 'RASHODNIKI' ][ 'VALUE' ] ) ) :
$arResult[ 'ELEMENT' ][ 'RASHODNIKI' ][] = $el;
else :
$arResult[ 'ELEMENT' ][ 'USTANOVKA' ] = $el;
endif;
endwhile;
endif;
/* --- */
Добавим вывод свойств в шаблон вывода карточки товара template.php или component_epilog.phpif( count( $arResult[ 'RASHODNIKI' ] ) > 0 ) :
?>
<div id="content_4" class="tab_view">
<h3></h3>
<a href=""><img src="" style="float: left; margin-right: 10px;"></a>
<a href=""></a><br>
<br>
<a href="">Купить</a>
<br class="clear">
</div>
<div id="content_5" class="tab_view">
<h3></h3>
<a href=""><img src="" style="float: left; margin-right: 10px;"></a>
<a href=""></a><br>
<br>
<a href="">Купить</a>
</div>
Вот собственно и все.