О Битрикс

Изменить внешний вид свойств предложений выводимых с помощью скрипта в теге dl product-item-detail-properties

Верстка вывода свойств предложений в шаблоне template.php компонента cataog.element выглядит следующим образом:

 <dl class="product-item-detail-properties" id="<?=$itemIds['DISPLAY_PROP_DIV']?>"></dl> 

Данные формируются с помощью скрипта  в script.js: 

BX.adjust(this.obSkuProps, {style: {display: ''}, html: this.offers[index].DISPLAY_PROPERTIES}); 

Откуда же берется this.offers[index].DISPLAY_PROPERTIES, который включает в себя теги <dt> и <dd>?

Эта верстка формируется там же в шаблоне, в переменной $current в цикле:

foreach ($jsOffer['DISPLAY_PROPERTIES'] as $property){
$current = '<dt>'.$property['NAME'].'</dt><dd>'.(
is_array($property['VALUE'])
? implode(' / ', $property['VALUE'])
: $property['VALUE']
).'</dd>';
$strAllProps .= $current;

if (isset($arParams['MAIN_BLOCK_OFFERS_PROPERTY_CODE'][$property['CODE']]))
{
$strMainProps .= $current;
}
}

Значение этой переменной записывается в $strAllProps, а та в свою очередь в:

$jsOffer['DISPLAY_PROPERTIES'] = $strAllProps;
$jsOffer['DISPLAY_PROPERTIES_MAIN_BLOCK'] = $strMainProps;

То есть поменяв верстку, записываемую в current, можно изменить внешний вид свойств торговых предложений.

Конкретно в своем случае я изменила ее так:

foreach ($jsOffer['DISPLAY_PROPERTIES'] as $property)
{
if($property['CODE'] == "Zagruzit_maket") {
foreach ($fullOffer["PROPERTIES"]["Zagruzit_maket"]['VALUE'] as $key=>$value) {
$current .= '<div><a target="_blank" href="'.$value.'">'.$fullOffer['PROPERTIES']["Zagruzit_maket"]['DESCRIPTION'][$key].'</a></div>';
}
}
else {
$current = '<dt>'.$property['NAME'].'</dt><dd>'.(
is_array($property['VALUE'])
? implode(' / ', $property['VALUE'])
: $property['VALUE']
).'</dd>';
}
$strAllProps .= $current;
if (isset($arParams['MAIN_BLOCK_OFFERS_PROPERTY_CODE'][$property['CODE']]))
{
$strMainProps .= $current;
}
}

То есть, если это свойство с кодом Zagruzit_maket, то верстка меняется. Использован массив $fullOffer для получения описания DESCRIPTION и значения свойства в нужном формате.


сайт на Bitrix

Территориально я нахожусь в Санкт-Петербурге, но могу и готова работать со всеми, вне зависимости от вашего местоположения. Вы можете написать мне через форму обратной связи, либо связаться через социальные сети. Ознакомиться с портфолио можно здесь и здесь.

Социальные сети

Рандом новостей