Здравствуйте, работаю с битрикс не так давно и по глупости в визуальном редакторе "поломал" код в catalog.element/template.php, получилось восстановить все, кроме свойств.
В редакторе товара в пункте "Торговые предложения" они отображаются, в пункте "Параметры" - нет.
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
use Bitrix\Main\Localization\Loc;
/**
* @global CMain $APPLICATION
* @var array $arParams
* @var array $arResult
* @var CatalogSectionComponent $component
* @var CBitrixComponentTemplate $this
* @var string $templateName
* @var string $componentPath
* @var string $templateFolder
*/
$this->setFrameMode(true);
$arParams['ADD_TO_BASKET_ACTION'] = ['ADD'];
$templateLibrary = array('popup', 'fx');
$currencyList = '';
if (!empty($arResult['CURRENCIES']))
{
$templateLibrary[] = 'currency';
$currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true);
}
$templateData = array(
'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
'TEMPLATE_LIBRARY' => $templateLibrary,
'CURRENCIES' => $currencyList,
'ITEM' => array(
'ID' => $arResult['ID'],
'IBLOCK_ID' => $arResult['IBLOCK_ID'],
'OFFERS_SELECTED' => $arResult['OFFERS_SELECTED'],
'JS_OFFERS' => $arResult['JS_OFFERS']
)
);
unset($currencyList, $templateLibrary);
$mainId = $this->GetEditAreaId($arResult['ID']);
$itemIds = array(
'ID' => $mainId,
'DISCOUNT_PERCENT_ID' => $mainId.'_dsc_pict',
'STICKER_ID' => $mainId.'_sticker',
'BIG_SLIDER_ID' => $mainId.'_big_slider',
'BIG_IMG_CONT_ID' => $mainId.'_bigimg_cont',
'SLIDER_CONT_ID' => $mainId.'_slider_cont',
'OLD_PRICE_ID' => $mainId.'_old_price',
'PRICE_ID' => $mainId.'_price',
'DISCOUNT_PRICE_ID' => $mainId.'_price_discount',
'PRICE_TOTAL' => $mainId.'_price_total',
'SLIDER_CONT_OF_ID' => $mainId.'_slider_cont_',
'QUANTITY_ID' => $mainId.'_quantity',
'QUANTITY_DOWN_ID' => $mainId.'_quant_down',
'QUANTITY_UP_ID' => $mainId.'_quant_up',
'QUANTITY_MEASURE' => $mainId.'_quant_measure',
'QUANTITY_LIMIT' => $mainId.'_quant_limit',
'BUY_LINK' => $mainId.'_buy_link',
'ADD_BASKET_LINK' => $mainId.'_add_basket_link',
'BASKET_ACTIONS_ID' => $mainId.'_basket_actions',
'NOT_AVAILABLE_MESS' => $mainId.'_not_avail',
'COMPARE_LINK' => $mainId.'_compare_link',
'TREE_ID' => $mainId.'_skudiv',
'DISPLAY_PROP_DIV' => $mainId.'_sku_prop',
'DESCRIPTION_ID' => $mainId.'_description',
'DISPLAY_MAIN_PROP_DIV' => $mainId.'_main_sku_prop',
'OFFER_GROUP' => $mainId.'_set_group_',
'BASKET_PROP_DIV' => $mainId.'_basket_prop',
'SUBSCRIBE_LINK' => $mainId.'_subscribe',
'TABS_ID' => $mainId.'_tabs',
'TAB_CONTAINERS_ID' => $mainId.'_tab_containers',
'SMALL_CARD_PANEL_ID' => $mainId.'_small_card_panel',
'TABS_PANEL_ID' => $mainId.'_tabs_panel'
);
$obName = $templateData['JS_OBJ'] = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $mainId);
$name = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
: $arResult['NAME'];
$title = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_TITLE'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_TITLE']
: $arResult['NAME'];
$alt = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_ALT'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_ALT']
: $arResult['NAME'];
$haveOffers = !empty($arResult['OFFERS']);
if ($haveOffers)
{
$actualItem = $arResult['OFFERS'][$arResult['OFFERS_SELECTED']] ?? reset($arResult['OFFERS']);
$showSliderControls = false;
foreach ($arResult['OFFERS'] as $offer)
{
if ($offer['MORE_PHOTO_COUNT'] > 1)
{
$showSliderControls = true;
break;
}
}
}
else
{
$actualItem = $arResult;
$showSliderControls = $arResult['MORE_PHOTO_COUNT'] > 1;
}
$skuProps = array();
$price = $actualItem['ITEM_PRICES'][$actualItem['ITEM_PRICE_SELECTED']];
$measureRatio = $actualItem['ITEM_MEASURE_RATIOS'][$actualItem['ITEM_MEASURE_RATIO_SELECTED']]['RATIO'];
$showDiscount = $price['PERCENT'] > 0;
if ($arParams['SHOW_SKU_DESCRIPTION'] === 'Y')
{
$skuDescription = false;
foreach ($arResult['OFFERS'] as $offer)
{
if ($offer['DETAIL_TEXT'] != '' || $offer['PREVIEW_TEXT'] != '')
{
$skuDescription = true;
break;
}
}
$showDescription = $skuDescription || !empty($arResult['PREVIEW_TEXT']) || !empty($arResult['DETAIL_TEXT']);
}
else
{
$showDescription = !empty($arResult['PREVIEW_TEXT']) || !empty($arResult['DETAIL_TEXT']);
}
$showBuyBtn = in_array('BUY', $arParams['ADD_TO_BASKET_ACTION']);
$buyButtonClassName = in_array('BUY', $arParams['ADD_TO_BASKET_ACTION_PRIMARY']) ? 'btn-primary' : 'btn-link';
$showAddBtn = in_array('ADD', $arParams['ADD_TO_BASKET_ACTION']);
$showButtonClassName = in_array('ADD', $arParams['ADD_TO_BASKET_ACTION_PRIMARY']) ? 'btn-primary' : 'btn-link';
$showSubscribe = $arParams['PRODUCT_SUBSCRIPTION'] === 'Y' && ($arResult['PRODUCT']['SUBSCRIBE'] === 'Y' || $haveOffers);
$arParams['MESS_BTN_BUY'] = $arParams['MESS_BTN_BUY'] ?: Loc::getMessage('CT_BCE_CATALOG_BUY');
$arParams['MESS_BTN_ADD_TO_BASKET'] = $arParams['MESS_BTN_ADD_TO_BASKET'] ?: Loc::getMessage('CT_BCE_CATALOG_ADD');
$arParams['MESS_NOT_AVAILABLE'] = $arParams['MESS_NOT_AVAILABLE'] ?: Loc::getMessage('CT_BCE_CATALOG_NOT_AVAILABLE');
$arParams['MESS_BTN_COMPARE'] = $arParams['MESS_BTN_COMPARE'] ?: Loc::getMessage('CT_BCE_CATALOG_COMPARE');
$arParams['MESS_PRICE_RANGES_TITLE'] = $arParams['MESS_PRICE_RANGES_TITLE'] ?: Loc::getMessage('CT_BCE_CATALOG_PRICE_RANGES_TITLE');
$arParams['MESS_DESCRIPTION_TAB'] = $arParams['MESS_DESCRIPTION_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_DESCRIPTION_TAB');
$arParams['MESS_PROPERTIES_TAB'] = $arParams['MESS_PROPERTIES_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_PROPERTIES_TAB');
$arParams['MESS_COMMENTS_TAB'] = $arParams['MESS_COMMENTS_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_COMMENTS_TAB');
$arParams['MESS_SHOW_MAX_QUANTITY'] = $arParams['MESS_SHOW_MAX_QUANTITY'] ?: Loc::getMessage('CT_BCE_CATALOG_SHOW_MAX_QUANTITY');
$arParams['MESS_RELATIVE_QUANTITY_MANY'] = $arParams['MESS_RELATIVE_QUANTITY_MANY'] ?: Loc::getMessage('CT_BCE_CATALOG_RELATIVE_QUANTITY_MANY');
$arParams['MESS_RELATIVE_QUANTITY_FEW'] = $arParams['MESS_RELATIVE_QUANTITY_FEW'] ?: Loc::getMessage('CT_BCE_CATALOG_RELATIVE_QUANTITY_FEW');
$HL_COLOR = getHLList(2);
?>
<?
if(empty($arResult['MORE_PHOTO'][0])){
$arResult['MORE_PHOTO'] = [['SRC' => '/images/no_photo.png']];
}
$APPLICATION->SetPageProperty("og_image", 'https://iparta.ru' . $arResult['MORE_PHOTO'][0]['SRC']);
?> <sc ript type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "<?= $name ?>",
"image": "https://iparta.ru<?= $arResult['MORE_PHOTO'][0]['SRC'] ?>",
"description": "Купить <?= $name ?> в интернет магазине iparta",
"gtin13": "<?= $arResult['PROPERTIES']['CML2_ARTICLE']['VALUE']; ?>",
"offers": {
"@type": "Offer",
"url": "https://iparta.ru<?= $_SERVER['REQUEST_URI']; ?>",
}
}
</sc ript>
<div class="wrap">
<div class="work">
<div class="product_container">
<div class="sidebar_s">
<div class="widget_s">
<div class="widget_title">
Бестселлеры
</div>
<?
include $_SERVER["DOCUMENT_ROOT"]."/catalog/_catalog_param.php";
global $arrFilter;
$_catalog_param = array_merge($_catalog_param, array(
"FILTER_NAME" => "arrFilter",
"SET_TITLE" => "N",
"ELEMENT_SORT_FIELD" => "RAND",
"PAGE_ELEMENT_COUNT" => "5",
"CARD_TYPE" => "widget_card"
));
?>
<?$APPLICATION->IncludeComponent(
"bitrix:catalog.section",
"catalog_widget",
$_catalog_param,
false,
array('HIDE_ICONS' => 'Y')
);?>
</div>
<div class="widget_s">
<div class="widget_title">
Новости
</div>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"w_news_block",
array(
"FILTER_NAME" => "arrFilter",
"IBLOCK_ID" => "1",
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
"NEWS_COUNT" => "3",
"PROPERTY_CODE" => array("*"),
"SET_BROWSER_TITLE" => "N",
"SET_TITLE" => "N",
"SORT_BY1" => "RAND",
"SORT_ORDER1" => "RAND"
),
false,
array('HIDE_ICONS' => 'Y')
);?>
</div>
</div>
<div class="product_inner" product_id="<?= $arResult['ID']; ?>">
<?$APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
"bootstrap_v4",
Array(
"PATH" => "",
"SITE_ID" => "s1",
"START_FROM" => "0"
)
);?>
<?
$this->AddEditAction($arResult['ID'], $arResult['EDIT_LINK'], CIBlock::GetArrayByID($arResult["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arResult['ID'], $arResult['DELETE_LINK'], CIBlock::GetArrayByID($arResult["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>
<div class="run_line">
<span><?echo \COption::GetOptionString( "askaron.settings", "UF_PRODUCT_INFO");?></span>
</div>
<div class="product_content js-product-content" id="<?=$this->GetEditAreaId($arResult['ID']);?>">
<div class="product_images <?=($arResult['PROPERTIES']['CATALOG_NEW']['VALUE'] == 'true' ? 'products_block_catalog_new' : '')?> <?=($arResult['PROPERTIES']['V_REESTRE_MINPROMTORGA']['VALUE'] == 'true' ? 'products_block_catalog_reestr' : '')?>">
<div class="product_image_show">
<?
if(!empty($arResult['MORE_PHOTO'])){
foreach ($arResult['MORE_PHOTO'] as $key => $photo){
$preview_picture = CFile::ResizeImageGet($photo['ID'], ['width'=>900, 'height'=>900], BX_RESIZE_IMAGE_PROPORTIONAL);
if(empty($preview_picture['src'])) $photo['SRC'] = TMPL_URL . '/css/images/no_photo.png';
else $photo['SRC'] = $preview_picture['src'];
?>
<div class="product_image_show_item"><img src="<?=$photo['SRC']?>" alt="<?=$alt?>">
<span class="product_like js-followers-btn <?=is_followers($arResult['ID']) ? 'active' : ''?>" product_id="<?=$arResult['ID']?>" title="В избранное"></span>
</div>
<?
}
}
?>
</div>
<div class="product_images_list_container">
<div class="product_images_list">
<?
if(!empty($arResult['MORE_PHOTO'])){
foreach ($arResult['MORE_PHOTO'] as $key => $photo){
$preview_picture = CFile::ResizeImageGet($photo['ID'], ['width'=>150, 'height'=>150], BX_RESIZE_IMAGE_PROPORTIONAL);
if(empty($preview_picture['src'])) $photo['SRC'] = TMPL_URL . '/css/images/no_photo.png';
else $photo['SRC'] = $preview_picture['src'];
?>
<div class="product_images_item" nostyle="background-image: url('<?=$photo['SRC']?>');"><img src="<?=$photo['SRC']?>"></div>
<?
}
}
?>
</div>
</div>
</div>
<div class="product_description">
<h1 class="product_title"><?=$name?></h1>
<? if(!empty($arResult['PROPERTIES']['CML2_ARTICLE']['VALUE'])){ ?>
<div class="product_art">
Артикул: <span><?=$arResult['PROPERTIES']['CML2_ARTICLE']['VALUE']?></span>
</div>
<? } ?>
<div class="product_price js-product-price" price="<?=$price['RATIO_PRICE']?>">
<? if($price['RATIO_PRICE'] > 0){ ?> <?=$price['PRINT_RATIO_PRICE']?>/<?=$arResult['ITEM_MEASURE']['TITLE']?> <? }else{ ?> <? } ?></div>
<div class="product_line">
<? if($price['RATIO_PRICE'] > 0){ ?>
<div class="value_line js-quantity-block">
<div class="value_btn minus js-btn-minus">
</div>
<input class="value_value js-inp-quantity js-product-quantity" type="text" value="1" />
<div class="value_btn plus js-btn-plus">
</div>
</div>
<button class="btn blue product_add js-buy-product">В корзину</button>
<? }else{ ?>
<? } ?>
</div>
<div class="ya-share2 fv-ya-share" data-curtain="" data-size="l" data-shape="round" no-data-color-scheme="whiteblack" data-limit="0" data-services="messenger,vkontakte,odnoklassniki,telegram,viber,whatsapp">
</div>
</div>
</div>
<div class="product_tabs">
<div class="product_tab_content open">
<? if($arResult['PROPERTIES']['SHOW_DESC_SITY']['VALUE'] == 'Да' && !empty($arResult['PROPERTIES']['DESC_PRODUCT_SITY']['VALUE'])){ ?>
<? $DETAIL_TEXT = $arResult['PROPERTIES']['DESC_PRODUCT_SITY']['~VALUE']['TEXT']; ?>
<? }else{ ?>
<? $DETAIL_TEXT = $arResult['DETAIL_TEXT']; ?>
<? } ?>
<?
$DETAIL_TEXT = str_replace(
[
'<!--PICTURE_BLOCK_1-->',
'<!--PICTURE_BLOCK_2-->',
'<!--PICTURE_BLOCK_3-->',
'<!--PICTURE_BLOCK_4-->',
],
[
'
<div class="row row-gallery">
<div class="col-sm-12">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-6">
</div>
<div class="col-sm-6">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
</div>
<div class="col-sm-4">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
</div>
',
],
$DETAIL_TEXT
);
foreach($arResult["PROPERTIES"]["MORE_PHOTO"]['VALUE'] as $image){
$href_picture = CFile::ResizeImageGet($image, ['width' => 1200, 'height' => 1200], BX_RESIZE_IMAGE_PROPORTIONAL);
$preview_picture = CFile::ResizeImageGet($image, ['width' => 600, 'height' => 600], BX_RESIZE_IMAGE_PROPORTIONAL);
$DETAIL_TEXT = preg_replace('/IMG_HREF/', $href_picture['src'], $DETAIL_TEXT, 1);
$DETAIL_TEXT = preg_replace('/IMG_SRC/', $preview_picture['src'], $DETAIL_TEXT, 1);
}
echo $DETAIL_TEXT;
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wrap wrap_cart_information">
<div class="work">
<div class="product_cart_information">
<div class="product_cart_information_block blue">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b1.php"
)
);?>
</div>
<div class="product_cart_information_block red">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b2.php"
)
);?>
</div>
<div class="product_cart_information_block call">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b3.php"
)
);?>
</div>
</div>
</div>
</div>
<?php
if ($haveOffers)
{
$offerIds = array();
$offerCodes = array();
$useRatio = $arParams['USE_RATIO_IN_RANGES'] === 'Y';
foreach ($arResult['JS_OFFERS'] as $ind => &$jsOffer)
{
$offerIds[] = (int)$jsOffer['ID'];
$offerCodes[] = $jsOffer['CODE'];
$fullOffer = $arResult['OFFERS'][$ind];
$measureName = $fullOffer['ITEM_MEASURE']['TITLE'];
$strAllProps = '';
$strMainProps = '';
$strPriceRangesRatio = '';
$strPriceRanges = '';
if ($arResult['SHOW_OFFERS_PROPS'])
{
if (!empty($jsOffer['DISPLAY_PROPERTIES']))
{
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;
}
}
unset($current);
}
}
if ($arParams['USE_PRICE_COUNT'] && count($jsOffer['ITEM_QUANTITY_RANGES']) > 1)
{
$strPriceRangesRatio = '('.Loc::getMessage(
'CT_BCE_CATALOG_RATIO_PRICE',
array('#RATIO#' => ($useRatio
? $fullOffer['ITEM_MEASURE_RATIOS'][$fullOffer['ITEM_MEASURE_RATIO_SELECTED']]['RATIO']
: '1'
).' '.$measureName)
).')';
foreach ($jsOffer['ITEM_QUANTITY_RANGES'] as $range)
{
if ($range['HASH'] !== 'ZERO-INF')
{
$itemPrice = false;
foreach ($jsOffer['ITEM_PRICES'] as $itemPrice)
{
if ($itemPrice['QUANTITY_HASH'] === $range['HASH'])
{
break;
}
}
if ($itemPrice)
{
$strPriceRanges .= '<dt>'.Loc::getMessage(
'CT_BCE_CATALOG_RANGE_FROM',
array('#FROM#' => $range['SORT_FROM'].' '.$measureName)
).' ';
if (is_infinite($range['SORT_TO']))
{
$strPriceRanges .= Loc::getMessage('CT_BCE_CATALOG_RANGE_MORE');
}
else
{
$strPriceRanges .= Loc::getMessage(
'CT_BCE_CATALOG_RANGE_TO',
array('#TO#' => $range['SORT_TO'].' '.$measureName)
);
}
$strPriceRanges .= '</dt><dd>'.($useRatio ? $itemPrice['PRINT_RATIO_PRICE'] : $itemPrice['PRINT_PRICE']).'</dd>';
}
}
}
unset($range, $itemPrice);
}
echo "<sc ript>console.log('Offer ID: {$jsOffer['ID']}, Properties: ', " . json_encode($jsOffer['DISPLAY_PROPERTIES']) . ");</sc ript>";
$jsOffer['DISPLAY_PROPERTIES'] = $strAllProps;
$jsOffer['DISPLAY_PROPERTIES_MAIN_BLOCK'] = $strMainProps;
$jsOffer['PRICE_RANGES_RATIO_HTML'] = $strPriceRangesRatio;
$jsOffer['PRICE_RANGES_HTML'] = $strPriceRanges;
}
$templateData['OFFER_IDS'] = $offerIds;
$templateData['OFFER_CODES'] = $offerCodes;
unset($jsOffer, $strAllProps, $strMainProps, $strPriceRanges, $strPriceRangesRatio, $useRatio);
$jsParams = array(
'CONFIG' => array(
'USE_CATALOG' => false,
'SHOW_QUANTITY' => false,
'SHOW_PRICE' => false,
'SHOW_DISCOUNT_PERCENT' => false,
'SHOW_OLD_PRICE' => false,
'USE_PRICE_COUNT' => false,
'DISPLAY_COMPARE' => false,
'SHOW_SKU_PROPS' => $arResult['SHOW_OFFERS_PROPS'],
'OFFER_GROUP' => $arResult['OFFER_GROUP'],
'MAIN_PICTURE_MODE' => false,
'ADD_TO_BASKET_ACTION' => false,
'SHOW_CLOSE_POPUP' => false,
'SHOW_MAX_QUANTITY' => false,
'RELATIVE_QUANTITY_FACTOR' => false,
'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
'USE_STICKERS' => false,
'USE_SUBSCRIBE' => false,
'SHOW_SLIDER' => false,
'SLIDER_INTERVAL' => false,
'ALT' => $alt,
'TITLE' => $title,
'MAGNIFIER_ZOOM_PERCENT' => 200,
'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'],
'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'],
'BRAND_PROPERTY' => !empty($arResult['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']])
? $arResult['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']]['DISPLAY_VALUE']: null,
'SHOW_SKU_DESCRIPTION' => $arParams['SHOW_SKU_DESCRIPTION'],
'DISPLAY_PREVIEW_TEXT_MODE' => $arParams['DISPLAY_PREVIEW_TEXT_MODE']
),
'PRODUCT_TYPE' => $arResult['PRODUCT']['TYPE'],
'VISUAL' => $itemIds,
'DEFAULT_PICTURE' => array(
'PREVIEW_PICTURE' => $arResult['DEFAULT_PICTURE'],
'DETAIL_PICTURE' => $arResult['DEFAULT_PICTURE']
),
'PRODUCT' => array(
'ID' => $arResult['ID'],
'ACTIVE' => $arResult['ACTIVE'],
'NAME' => $arResult['~NAME'],
'CATEGORY' => $arResult['CATEGORY_PATH'],
'DETAIL_TEXT' => $arResult['DETAIL_TEXT'],
'DETAIL_TEXT_TYPE' => $arResult['DETAIL_TEXT_TYPE'],
'PREVIEW_TEXT' => $arResult['PREVIEW_TEXT'],
'PREVIEW_TEXT_TYPE' => $arResult['PREVIEW_TEXT_TYPE']
),
'BASKET' => array(
'QUANTITY' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
'BASKET_URL' => $arParams['BASKET_URL'],
'SKU_PROPS' => $arResult['OFFERS_PROP_CODES'],
'ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'],
'BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE']
),
'OFFERS' => $arResult['JS_OFFERS'],
'OFFER_SELECTED' => $arResult['OFFERS_SELECTED'],
'TREE_PROPS' => $skuProps,
);
?> <sc ript>
var <?=$obName?> = new JCCatalogElement(<?=CUtil::PhpToJSObject($jsParams, false, true)?>);
</sc ript> <? } ?><br>
<sc ript type="text/javascript">
var catalogParams = <?php echo json_encode($_catalog_param); ?>;
console.log(catalogParams);
</sc ript>
В редакторе товара в пункте "Торговые предложения" они отображаются, в пункте "Параметры" - нет.
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
use Bitrix\Main\Localization\Loc;
/**
* @global CMain $APPLICATION
* @var array $arParams
* @var array $arResult
* @var CatalogSectionComponent $component
* @var CBitrixComponentTemplate $this
* @var string $templateName
* @var string $componentPath
* @var string $templateFolder
*/
$this->setFrameMode(true);
$arParams['ADD_TO_BASKET_ACTION'] = ['ADD'];
$templateLibrary = array('popup', 'fx');
$currencyList = '';
if (!empty($arResult['CURRENCIES']))
{
$templateLibrary[] = 'currency';
$currencyList = CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true);
}
$templateData = array(
'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
'TEMPLATE_LIBRARY' => $templateLibrary,
'CURRENCIES' => $currencyList,
'ITEM' => array(
'ID' => $arResult['ID'],
'IBLOCK_ID' => $arResult['IBLOCK_ID'],
'OFFERS_SELECTED' => $arResult['OFFERS_SELECTED'],
'JS_OFFERS' => $arResult['JS_OFFERS']
)
);
unset($currencyList, $templateLibrary);
$mainId = $this->GetEditAreaId($arResult['ID']);
$itemIds = array(
'ID' => $mainId,
'DISCOUNT_PERCENT_ID' => $mainId.'_dsc_pict',
'STICKER_ID' => $mainId.'_sticker',
'BIG_SLIDER_ID' => $mainId.'_big_slider',
'BIG_IMG_CONT_ID' => $mainId.'_bigimg_cont',
'SLIDER_CONT_ID' => $mainId.'_slider_cont',
'OLD_PRICE_ID' => $mainId.'_old_price',
'PRICE_ID' => $mainId.'_price',
'DISCOUNT_PRICE_ID' => $mainId.'_price_discount',
'PRICE_TOTAL' => $mainId.'_price_total',
'SLIDER_CONT_OF_ID' => $mainId.'_slider_cont_',
'QUANTITY_ID' => $mainId.'_quantity',
'QUANTITY_DOWN_ID' => $mainId.'_quant_down',
'QUANTITY_UP_ID' => $mainId.'_quant_up',
'QUANTITY_MEASURE' => $mainId.'_quant_measure',
'QUANTITY_LIMIT' => $mainId.'_quant_limit',
'BUY_LINK' => $mainId.'_buy_link',
'ADD_BASKET_LINK' => $mainId.'_add_basket_link',
'BASKET_ACTIONS_ID' => $mainId.'_basket_actions',
'NOT_AVAILABLE_MESS' => $mainId.'_not_avail',
'COMPARE_LINK' => $mainId.'_compare_link',
'TREE_ID' => $mainId.'_skudiv',
'DISPLAY_PROP_DIV' => $mainId.'_sku_prop',
'DESCRIPTION_ID' => $mainId.'_description',
'DISPLAY_MAIN_PROP_DIV' => $mainId.'_main_sku_prop',
'OFFER_GROUP' => $mainId.'_set_group_',
'BASKET_PROP_DIV' => $mainId.'_basket_prop',
'SUBSCRIBE_LINK' => $mainId.'_subscribe',
'TABS_ID' => $mainId.'_tabs',
'TAB_CONTAINERS_ID' => $mainId.'_tab_containers',
'SMALL_CARD_PANEL_ID' => $mainId.'_small_card_panel',
'TABS_PANEL_ID' => $mainId.'_tabs_panel'
);
$obName = $templateData['JS_OBJ'] = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $mainId);
$name = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
: $arResult['NAME'];
$title = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_TITLE'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_TITLE']
: $arResult['NAME'];
$alt = !empty($arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_ALT'])
? $arResult['IPROPERTY_VALUES']['ELEMENT_DETAIL_PICTURE_FILE_ALT']
: $arResult['NAME'];
$haveOffers = !empty($arResult['OFFERS']);
if ($haveOffers)
{
$actualItem = $arResult['OFFERS'][$arResult['OFFERS_SELECTED']] ?? reset($arResult['OFFERS']);
$showSliderControls = false;
foreach ($arResult['OFFERS'] as $offer)
{
if ($offer['MORE_PHOTO_COUNT'] > 1)
{
$showSliderControls = true;
break;
}
}
}
else
{
$actualItem = $arResult;
$showSliderControls = $arResult['MORE_PHOTO_COUNT'] > 1;
}
$skuProps = array();
$price = $actualItem['ITEM_PRICES'][$actualItem['ITEM_PRICE_SELECTED']];
$measureRatio = $actualItem['ITEM_MEASURE_RATIOS'][$actualItem['ITEM_MEASURE_RATIO_SELECTED']]['RATIO'];
$showDiscount = $price['PERCENT'] > 0;
if ($arParams['SHOW_SKU_DESCRIPTION'] === 'Y')
{
$skuDescription = false;
foreach ($arResult['OFFERS'] as $offer)
{
if ($offer['DETAIL_TEXT'] != '' || $offer['PREVIEW_TEXT'] != '')
{
$skuDescription = true;
break;
}
}
$showDescription = $skuDescription || !empty($arResult['PREVIEW_TEXT']) || !empty($arResult['DETAIL_TEXT']);
}
else
{
$showDescription = !empty($arResult['PREVIEW_TEXT']) || !empty($arResult['DETAIL_TEXT']);
}
$showBuyBtn = in_array('BUY', $arParams['ADD_TO_BASKET_ACTION']);
$buyButtonClassName = in_array('BUY', $arParams['ADD_TO_BASKET_ACTION_PRIMARY']) ? 'btn-primary' : 'btn-link';
$showAddBtn = in_array('ADD', $arParams['ADD_TO_BASKET_ACTION']);
$showButtonClassName = in_array('ADD', $arParams['ADD_TO_BASKET_ACTION_PRIMARY']) ? 'btn-primary' : 'btn-link';
$showSubscribe = $arParams['PRODUCT_SUBSCRIPTION'] === 'Y' && ($arResult['PRODUCT']['SUBSCRIBE'] === 'Y' || $haveOffers);
$arParams['MESS_BTN_BUY'] = $arParams['MESS_BTN_BUY'] ?: Loc::getMessage('CT_BCE_CATALOG_BUY');
$arParams['MESS_BTN_ADD_TO_BASKET'] = $arParams['MESS_BTN_ADD_TO_BASKET'] ?: Loc::getMessage('CT_BCE_CATALOG_ADD');
$arParams['MESS_NOT_AVAILABLE'] = $arParams['MESS_NOT_AVAILABLE'] ?: Loc::getMessage('CT_BCE_CATALOG_NOT_AVAILABLE');
$arParams['MESS_BTN_COMPARE'] = $arParams['MESS_BTN_COMPARE'] ?: Loc::getMessage('CT_BCE_CATALOG_COMPARE');
$arParams['MESS_PRICE_RANGES_TITLE'] = $arParams['MESS_PRICE_RANGES_TITLE'] ?: Loc::getMessage('CT_BCE_CATALOG_PRICE_RANGES_TITLE');
$arParams['MESS_DESCRIPTION_TAB'] = $arParams['MESS_DESCRIPTION_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_DESCRIPTION_TAB');
$arParams['MESS_PROPERTIES_TAB'] = $arParams['MESS_PROPERTIES_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_PROPERTIES_TAB');
$arParams['MESS_COMMENTS_TAB'] = $arParams['MESS_COMMENTS_TAB'] ?: Loc::getMessage('CT_BCE_CATALOG_COMMENTS_TAB');
$arParams['MESS_SHOW_MAX_QUANTITY'] = $arParams['MESS_SHOW_MAX_QUANTITY'] ?: Loc::getMessage('CT_BCE_CATALOG_SHOW_MAX_QUANTITY');
$arParams['MESS_RELATIVE_QUANTITY_MANY'] = $arParams['MESS_RELATIVE_QUANTITY_MANY'] ?: Loc::getMessage('CT_BCE_CATALOG_RELATIVE_QUANTITY_MANY');
$arParams['MESS_RELATIVE_QUANTITY_FEW'] = $arParams['MESS_RELATIVE_QUANTITY_FEW'] ?: Loc::getMessage('CT_BCE_CATALOG_RELATIVE_QUANTITY_FEW');
$HL_COLOR = getHLList(2);
?>
<?
if(empty($arResult['MORE_PHOTO'][0])){
$arResult['MORE_PHOTO'] = [['SRC' => '/images/no_photo.png']];
}
$APPLICATION->SetPageProperty("og_image", 'https://iparta.ru' . $arResult['MORE_PHOTO'][0]['SRC']);
?> <sc ript type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "<?= $name ?>",
"image": "https://iparta.ru<?= $arResult['MORE_PHOTO'][0]['SRC'] ?>",
"description": "Купить <?= $name ?> в интернет магазине iparta",
"gtin13": "<?= $arResult['PROPERTIES']['CML2_ARTICLE']['VALUE']; ?>",
"offers": {
"@type": "Offer",
"url": "https://iparta.ru<?= $_SERVER['REQUEST_URI']; ?>",
}
}
</sc ript>
<div class="wrap">
<div class="work">
<div class="product_container">
<div class="sidebar_s">
<div class="widget_s">
<div class="widget_title">
Бестселлеры
</div>
<?
include $_SERVER["DOCUMENT_ROOT"]."/catalog/_catalog_param.php";
global $arrFilter;
$_catalog_param = array_merge($_catalog_param, array(
"FILTER_NAME" => "arrFilter",
"SET_TITLE" => "N",
"ELEMENT_SORT_FIELD" => "RAND",
"PAGE_ELEMENT_COUNT" => "5",
"CARD_TYPE" => "widget_card"
));
?>
<?$APPLICATION->IncludeComponent(
"bitrix:catalog.section",
"catalog_widget",
$_catalog_param,
false,
array('HIDE_ICONS' => 'Y')
);?>
</div>
<div class="widget_s">
<div class="widget_title">
Новости
</div>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"w_news_block",
array(
"FILTER_NAME" => "arrFilter",
"IBLOCK_ID" => "1",
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
"NEWS_COUNT" => "3",
"PROPERTY_CODE" => array("*"),
"SET_BROWSER_TITLE" => "N",
"SET_TITLE" => "N",
"SORT_BY1" => "RAND",
"SORT_ORDER1" => "RAND"
),
false,
array('HIDE_ICONS' => 'Y')
);?>
</div>
</div>
<div class="product_inner" product_id="<?= $arResult['ID']; ?>">
<?$APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
"bootstrap_v4",
Array(
"PATH" => "",
"SITE_ID" => "s1",
"START_FROM" => "0"
)
);?>
<?
$this->AddEditAction($arResult['ID'], $arResult['EDIT_LINK'], CIBlock::GetArrayByID($arResult["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arResult['ID'], $arResult['DELETE_LINK'], CIBlock::GetArrayByID($arResult["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>
<div class="run_line">
<span><?echo \COption::GetOptionString( "askaron.settings", "UF_PRODUCT_INFO");?></span>
</div>
<div class="product_content js-product-content" id="<?=$this->GetEditAreaId($arResult['ID']);?>">
<div class="product_images <?=($arResult['PROPERTIES']['CATALOG_NEW']['VALUE'] == 'true' ? 'products_block_catalog_new' : '')?> <?=($arResult['PROPERTIES']['V_REESTRE_MINPROMTORGA']['VALUE'] == 'true' ? 'products_block_catalog_reestr' : '')?>">
<div class="product_image_show">
<?
if(!empty($arResult['MORE_PHOTO'])){
foreach ($arResult['MORE_PHOTO'] as $key => $photo){
$preview_picture = CFile::ResizeImageGet($photo['ID'], ['width'=>900, 'height'=>900], BX_RESIZE_IMAGE_PROPORTIONAL);
if(empty($preview_picture['src'])) $photo['SRC'] = TMPL_URL . '/css/images/no_photo.png';
else $photo['SRC'] = $preview_picture['src'];
?>
<div class="product_image_show_item"><img src="<?=$photo['SRC']?>" alt="<?=$alt?>">
<span class="product_like js-followers-btn <?=is_followers($arResult['ID']) ? 'active' : ''?>" product_id="<?=$arResult['ID']?>" title="В избранное"></span>
</div>
<?
}
}
?>
</div>
<div class="product_images_list_container">
<div class="product_images_list">
<?
if(!empty($arResult['MORE_PHOTO'])){
foreach ($arResult['MORE_PHOTO'] as $key => $photo){
$preview_picture = CFile::ResizeImageGet($photo['ID'], ['width'=>150, 'height'=>150], BX_RESIZE_IMAGE_PROPORTIONAL);
if(empty($preview_picture['src'])) $photo['SRC'] = TMPL_URL . '/css/images/no_photo.png';
else $photo['SRC'] = $preview_picture['src'];
?>
<div class="product_images_item" nostyle="background-image: url('<?=$photo['SRC']?>');"><img src="<?=$photo['SRC']?>"></div>
<?
}
}
?>
</div>
</div>
</div>
<div class="product_description">
<h1 class="product_title"><?=$name?></h1>
<? if(!empty($arResult['PROPERTIES']['CML2_ARTICLE']['VALUE'])){ ?>
<div class="product_art">
Артикул: <span><?=$arResult['PROPERTIES']['CML2_ARTICLE']['VALUE']?></span>
</div>
<? } ?>
<div class="product_price js-product-price" price="<?=$price['RATIO_PRICE']?>">
<? if($price['RATIO_PRICE'] > 0){ ?> <?=$price['PRINT_RATIO_PRICE']?>/<?=$arResult['ITEM_MEASURE']['TITLE']?> <? }else{ ?> <? } ?></div>
<div class="product_line">
<? if($price['RATIO_PRICE'] > 0){ ?>
<div class="value_line js-quantity-block">
<div class="value_btn minus js-btn-minus">
</div>
<input class="value_value js-inp-quantity js-product-quantity" type="text" value="1" />
<div class="value_btn plus js-btn-plus">
</div>
</div>
<button class="btn blue product_add js-buy-product">В корзину</button>
<? }else{ ?>
<? } ?>
</div>
<div class="ya-share2 fv-ya-share" data-curtain="" data-size="l" data-shape="round" no-data-color-scheme="whiteblack" data-limit="0" data-services="messenger,vkontakte,odnoklassniki,telegram,viber,whatsapp">
</div>
</div>
</div>
<div class="product_tabs">
- Описание
<?/*?> - Условия работы<?*/?>
<div class="product_tab_content open">
<? if($arResult['PROPERTIES']['SHOW_DESC_SITY']['VALUE'] == 'Да' && !empty($arResult['PROPERTIES']['DESC_PRODUCT_SITY']['VALUE'])){ ?>
<? $DETAIL_TEXT = $arResult['PROPERTIES']['DESC_PRODUCT_SITY']['~VALUE']['TEXT']; ?>
<? }else{ ?>
<? $DETAIL_TEXT = $arResult['DETAIL_TEXT']; ?>
<? } ?>
<?
$DETAIL_TEXT = str_replace(
[
'<!--PICTURE_BLOCK_1-->',
'<!--PICTURE_BLOCK_2-->',
'<!--PICTURE_BLOCK_3-->',
'<!--PICTURE_BLOCK_4-->',
],
[
'
<div class="row row-gallery">
<div class="col-sm-12">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-6">
</div>
<div class="col-sm-6">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
</div>
<div class="col-sm-4">
</div>
</div>
',
'
<div class="row row-gallery">
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
<div class="col-sm-3">
</div>
</div>
',
],
$DETAIL_TEXT
);
foreach($arResult["PROPERTIES"]["MORE_PHOTO"]['VALUE'] as $image){
$href_picture = CFile::ResizeImageGet($image, ['width' => 1200, 'height' => 1200], BX_RESIZE_IMAGE_PROPORTIONAL);
$preview_picture = CFile::ResizeImageGet($image, ['width' => 600, 'height' => 600], BX_RESIZE_IMAGE_PROPORTIONAL);
$DETAIL_TEXT = preg_replace('/IMG_HREF/', $href_picture['src'], $DETAIL_TEXT, 1);
$DETAIL_TEXT = preg_replace('/IMG_SRC/', $preview_picture['src'], $DETAIL_TEXT, 1);
}
echo $DETAIL_TEXT;
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wrap wrap_cart_information">
<div class="work">
<div class="product_cart_information">
<div class="product_cart_information_block blue">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b1.php"
)
);?>
</div>
<div class="product_cart_information_block red">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b2.php"
)
);?>
</div>
<div class="product_cart_information_block call">
<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."include/product_cart_information_b3.php"
)
);?>
</div>
</div>
</div>
</div>
<?php
if ($haveOffers)
{
$offerIds = array();
$offerCodes = array();
$useRatio = $arParams['USE_RATIO_IN_RANGES'] === 'Y';
foreach ($arResult['JS_OFFERS'] as $ind => &$jsOffer)
{
$offerIds[] = (int)$jsOffer['ID'];
$offerCodes[] = $jsOffer['CODE'];
$fullOffer = $arResult['OFFERS'][$ind];
$measureName = $fullOffer['ITEM_MEASURE']['TITLE'];
$strAllProps = '';
$strMainProps = '';
$strPriceRangesRatio = '';
$strPriceRanges = '';
if ($arResult['SHOW_OFFERS_PROPS'])
{
if (!empty($jsOffer['DISPLAY_PROPERTIES']))
{
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;
}
}
unset($current);
}
}
if ($arParams['USE_PRICE_COUNT'] && count($jsOffer['ITEM_QUANTITY_RANGES']) > 1)
{
$strPriceRangesRatio = '('.Loc::getMessage(
'CT_BCE_CATALOG_RATIO_PRICE',
array('#RATIO#' => ($useRatio
? $fullOffer['ITEM_MEASURE_RATIOS'][$fullOffer['ITEM_MEASURE_RATIO_SELECTED']]['RATIO']
: '1'
).' '.$measureName)
).')';
foreach ($jsOffer['ITEM_QUANTITY_RANGES'] as $range)
{
if ($range['HASH'] !== 'ZERO-INF')
{
$itemPrice = false;
foreach ($jsOffer['ITEM_PRICES'] as $itemPrice)
{
if ($itemPrice['QUANTITY_HASH'] === $range['HASH'])
{
break;
}
}
if ($itemPrice)
{
$strPriceRanges .= '<dt>'.Loc::getMessage(
'CT_BCE_CATALOG_RANGE_FROM',
array('#FROM#' => $range['SORT_FROM'].' '.$measureName)
).' ';
if (is_infinite($range['SORT_TO']))
{
$strPriceRanges .= Loc::getMessage('CT_BCE_CATALOG_RANGE_MORE');
}
else
{
$strPriceRanges .= Loc::getMessage(
'CT_BCE_CATALOG_RANGE_TO',
array('#TO#' => $range['SORT_TO'].' '.$measureName)
);
}
$strPriceRanges .= '</dt><dd>'.($useRatio ? $itemPrice['PRINT_RATIO_PRICE'] : $itemPrice['PRINT_PRICE']).'</dd>';
}
}
}
unset($range, $itemPrice);
}
echo "<sc ript>console.log('Offer ID: {$jsOffer['ID']}, Properties: ', " . json_encode($jsOffer['DISPLAY_PROPERTIES']) . ");</sc ript>";
$jsOffer['DISPLAY_PROPERTIES'] = $strAllProps;
$jsOffer['DISPLAY_PROPERTIES_MAIN_BLOCK'] = $strMainProps;
$jsOffer['PRICE_RANGES_RATIO_HTML'] = $strPriceRangesRatio;
$jsOffer['PRICE_RANGES_HTML'] = $strPriceRanges;
}
$templateData['OFFER_IDS'] = $offerIds;
$templateData['OFFER_CODES'] = $offerCodes;
unset($jsOffer, $strAllProps, $strMainProps, $strPriceRanges, $strPriceRangesRatio, $useRatio);
$jsParams = array(
'CONFIG' => array(
'USE_CATALOG' => false,
'SHOW_QUANTITY' => false,
'SHOW_PRICE' => false,
'SHOW_DISCOUNT_PERCENT' => false,
'SHOW_OLD_PRICE' => false,
'USE_PRICE_COUNT' => false,
'DISPLAY_COMPARE' => false,
'SHOW_SKU_PROPS' => $arResult['SHOW_OFFERS_PROPS'],
'OFFER_GROUP' => $arResult['OFFER_GROUP'],
'MAIN_PICTURE_MODE' => false,
'ADD_TO_BASKET_ACTION' => false,
'SHOW_CLOSE_POPUP' => false,
'SHOW_MAX_QUANTITY' => false,
'RELATIVE_QUANTITY_FACTOR' => false,
'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
'USE_STICKERS' => false,
'USE_SUBSCRIBE' => false,
'SHOW_SLIDER' => false,
'SLIDER_INTERVAL' => false,
'ALT' => $alt,
'TITLE' => $title,
'MAGNIFIER_ZOOM_PERCENT' => 200,
'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'],
'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'],
'BRAND_PROPERTY' => !empty($arResult['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']])
? $arResult['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']]['DISPLAY_VALUE']: null,
'SHOW_SKU_DESCRIPTION' => $arParams['SHOW_SKU_DESCRIPTION'],
'DISPLAY_PREVIEW_TEXT_MODE' => $arParams['DISPLAY_PREVIEW_TEXT_MODE']
),
'PRODUCT_TYPE' => $arResult['PRODUCT']['TYPE'],
'VISUAL' => $itemIds,
'DEFAULT_PICTURE' => array(
'PREVIEW_PICTURE' => $arResult['DEFAULT_PICTURE'],
'DETAIL_PICTURE' => $arResult['DEFAULT_PICTURE']
),
'PRODUCT' => array(
'ID' => $arResult['ID'],
'ACTIVE' => $arResult['ACTIVE'],
'NAME' => $arResult['~NAME'],
'CATEGORY' => $arResult['CATEGORY_PATH'],
'DETAIL_TEXT' => $arResult['DETAIL_TEXT'],
'DETAIL_TEXT_TYPE' => $arResult['DETAIL_TEXT_TYPE'],
'PREVIEW_TEXT' => $arResult['PREVIEW_TEXT'],
'PREVIEW_TEXT_TYPE' => $arResult['PREVIEW_TEXT_TYPE']
),
'BASKET' => array(
'QUANTITY' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
'BASKET_URL' => $arParams['BASKET_URL'],
'SKU_PROPS' => $arResult['OFFERS_PROP_CODES'],
'ADD_URL_TEMPLATE' => $arResult['~ADD_URL_TEMPLATE'],
'BUY_URL_TEMPLATE' => $arResult['~BUY_URL_TEMPLATE']
),
'OFFERS' => $arResult['JS_OFFERS'],
'OFFER_SELECTED' => $arResult['OFFERS_SELECTED'],
'TREE_PROPS' => $skuProps,
);
?> <sc ript>
var <?=$obName?> = new JCCatalogElement(<?=CUtil::PhpToJSObject($jsParams, false, true)?>);
</sc ript> <? } ?><br>
<sc ript type="text/javascript">
var catalogParams = <?php echo json_encode($_catalog_param); ?>;
console.log(catalogParams);
</sc ript>