Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/components/bitrix/catalog.item/templates/store_v3/
Upload File :
Current File : /var/www/homesaver/www/bitrix/components/bitrix/catalog.item/templates/store_v3/template.php

<?php

use Bitrix\Main;
use Bitrix\Main\Localization\Loc;

if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
	die();
}

/**
 * @var array $arParams
 * @var array $arResult
 * @var CBitrixComponentTemplate $this
 * @var string $templateFolder
 * @var CBitrixComponent $component
 */

$this->setFrameMode(true);

if (isset($arResult['ITEM']))
{
	$messages = [
		'CLOSE_BTN' => Loc::getMessage('CT_BCI_TPL_MESS_CLOSE_BTN_TITLE')
	];

	$item = $arResult['ITEM'];
	$areaId = $arResult['AREA_ID'];
	$itemIds = [
		'ID' => $areaId,
		'NAME' => $areaId.'_name',
		'POPUP' => $areaId.'_popup',
		'PREBUY' => $areaId.'_prebuy',
		'PICT_SLIDER' => $areaId.'_pict_slider',
		'STICKER_ID' => $areaId.'_sticker',
		'SECOND_STICKER_ID' => $areaId.'_secondsticker',
		'QUANTITY' => $areaId.'_quantity',
		'QUANTITY_COUNTER' => $areaId.'_counter',
		'QUANTITY_DOWN' => $areaId.'_quant_down',
		'QUANTITY_UP' => $areaId.'_quant_up',
		'QUANTITY_MEASURE' => $areaId.'_quant_measure',
		'QUANTITY_MEASURE_CONTAINER' => $areaId.'_quant_measure_container',
		'QUANTITY_LIMIT' => $areaId.'_quant_limit',
		'BUY_LINK' => $areaId.'_buy_link',
		'ADD_BASKET_LINK' => $areaId.'_add_basket_link',
		'BASKET_ACTIONS' => $areaId.'_basket_actions',
		'NOT_AVAILABLE_MESS' => $areaId.'_not_avail',
		'SUBSCRIBE_LINK' => $areaId.'_subscribe',
		'COMPARE_LINK' => $areaId.'_compare_link',
		'PRICE' => $areaId.'_price',
		'PRICE_TWIN' => $areaId.'_price_twin',
		'BLOCK_PRICE_OLD' => $areaId.'_block_price',
		'BLOCK_PRICE_OLD_TWIN' => $areaId.'_block_price_twin',
		'PRICE_OLD' => $areaId.'_price_old',
		'PRICE_OLD_TWIN' => $areaId.'_price_old_twin',
		'PRICE_DISCOUNT' => $areaId.'_price_discount',
		'PRICE_DISCOUNT_TWIN' => $areaId.'_price_discount_twin',
		'PRICE_TOTAL' => $areaId.'_price_total',
		'PROP_DIV' => $areaId.'_sku_tree',
		'PROP' => $areaId.'_prop_',
		'DISPLAY_PROP_DIV' => $areaId.'_sku_prop',
		'BASKET_PROP_DIV' => $areaId.'_basket_prop',
	];
	$itemIds['PREBUY_OPEN_BTN'] = $itemIds['PREBUY'].'_open_btn';
	$itemIds['PREBUY_OVERLAY'] = $itemIds['PREBUY'].'_overlay';
	$itemIds['PREBUY_CONTAINER'] = $itemIds['PREBUY'].'_container';
	$itemIds['PREBUY_SWIPE_BTN'] = $itemIds['PREBUY'].'_swipe_btn';
	$itemIds['PREBUY_CLOSE_BTN'] = $itemIds['PREBUY'].'_close_btn';
	$itemIds['PREBUY_NAME'] = $itemIds['PREBUY'].'_name';
	$itemIds['PREBUY_PICT'] = $itemIds['PREBUY'].'_pict';

	$obName = 'ob'.preg_replace("/[^a-zA-Z0-9_]/", "x", $areaId);

	$productTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != ''
		? $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
		: $item['NAME'];

	$imgTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] != ''
		? $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']
		: $item['NAME'];

	$resizedSlider = [
		'X' => [],
		'X2' => [],
	];

	foreach ($item['MORE_PHOTO'] as $morePhoto)
	{
		if ($morePhoto['ID'] === 0)
		{
			$photoFile = $morePhoto;
		}
		else
		{
			$photoFile = $morePhoto['ID'];
		}
		$xResizedImage = \CFile::ResizeImageGet(
			$photoFile,
			[
				'width' => 410,
				'height' => 410,
			],
			BX_RESIZE_IMAGE_PROPORTIONAL,
			true
		);

		$x2ResizedImage = \CFile::ResizeImageGet(
			$photoFile,
			[
				'width' => 820,
				'height' => 820,
			],
			BX_RESIZE_IMAGE_PROPORTIONAL,
			true
		);

		$xResizedImage['src'] = \Bitrix\Iblock\Component\Tools::getImageSrc([
			'SRC' => $xResizedImage['src']
		]);
		$x2ResizedImage['src'] = \Bitrix\Iblock\Component\Tools::getImageSrc([
			'SRC' => $x2ResizedImage['src']
		]);

		$resizedSlider['X'][] = [
			'ID' => $morePhoto['ID'],
			'SRC' => $xResizedImage['src'],
			'WIDTH' => $xResizedImage['width'],
			'HEIGHT' => $xResizedImage['height'],
		];
		$resizedSlider['X2'][] = [
			'ID' => $morePhoto['ID'],
			'SRC' => $x2ResizedImage['src'],
			'WIDTH' => $x2ResizedImage['width'],
			'HEIGHT' => $x2ResizedImage['height'],
		];
	}

	$jsParams = [
		'PRODUCT_TYPE' => $item['PRODUCT']['TYPE'],
		'SHOW_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'],
		'SITE_ID' => $component->getSiteId(),
		'SHOW_ABSENT' => true, // are you sure
		'SECOND_PICT' => $item['SECOND_PICT'], // are you sure
		'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'] === 'Y',
		'SHOW_MAX_QUANTITY' => 'N', // $arParams['SHOW_MAX_QUANTITY'],
		'RELATIVE_QUANTITY_FACTOR' => $arParams['RELATIVE_QUANTITY_FACTOR'],
		'SHOW_SKU_PROPS' => false, // overwrite later
		'USE_SUBSCRIBE' => false, // from $arParams
		'ADD_TO_BASKET_ACTION' => $arParams['ADD_TO_BASKET_ACTION'], // need to change string to array
		'SHOW_CLOSE_POPUP' => $arParams['SHOW_CLOSE_POPUP'] === 'Y',
		'DISPLAY_COMPARE' => false, // $arParams['DISPLAY_COMPARE'],
		'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'],
		'USE_OFFER_NAME' => $arParams['USE_OFFER_NAME'] === 'Y',
		'BIG_DATA' => $item['BIG_DATA'],
		'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'],
		'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'],
		'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'],
		'BRAND_PROPERTY' => (!empty($item['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']])
			? $item['DISPLAY_PROPERTIES'][$arParams['BRAND_PROPERTY']]['DISPLAY_VALUE']
			: null
		),
		'VISUAL' => [
			'ID' => $itemIds['ID'],
			'NAME' => $itemIds['NAME'],
			'PICT_SLIDER_ID' => $itemIds['PICT_SLIDER'],

			'PRICE_ID' => $itemIds['PRICE'],
			'PRICE_TWIN_ID' => $itemIds['PRICE_TWIN'],

			'BUY_ID' => $itemIds['BUY_LINK'],
			'ADD_BASKET_ID' => $itemIds['ADD_BASKET_LINK'],

			'PREBUY' => $itemIds['PREBUY'],
			'PREBUY_SWIPE_BTN' => $itemIds['PREBUY_SWIPE_BTN'],
			'PREBUY_CLOSE_BTN' => $itemIds['PREBUY_CLOSE_BTN'],
			'PREBUY_OPEN_BTN' => $itemIds['PREBUY_OPEN_BTN'],
			'PREBUY_OVERLAY' => $itemIds['PREBUY_OVERLAY'],
			'PREBUY_CONTAINER' => $itemIds['PREBUY_CONTAINER'],
			'PREBUY_NAME' => $itemIds['PREBUY_NAME'],
			'PREBUY_PICT' => $itemIds['PREBUY_PICT'],

			// two next rows need refactor
			'BASKET_ACTIONS_ID' => $itemIds['BASKET_ACTIONS'],
			'NOT_AVAILABLE_MESS' => $itemIds['NOT_AVAILABLE_MESS'],
		],
		'PRODUCT' => [
			'ID' => $item['ID'],
			'NAME' => $productTitle,
			'DETAIL_PAGE_URL' => $item['DETAIL_PAGE_URL'],
			'MORE_PHOTO' => $item['MORE_PHOTO'],
			'MORE_PHOTO_COUNT' => $item['MORE_PHOTO_COUNT'],
			'RESIZED_SLIDER' => $resizedSlider,
		],
		'BASKET' => [
			'ADD_PROPS' => $arParams['ADD_PROPERTIES_TO_BASKET'] === 'Y',
			'QUANTITY' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
			'PROPS' => $arParams['PRODUCT_PROPS_VARIABLE'],
			'BASKET_URL' => $arParams['~BASKET_URL'],
			'ADD_URL_TEMPLATE' => $arParams['~ADD_URL_TEMPLATE'],
			'BUY_URL_TEMPLATE' => $arParams['~BUY_URL_TEMPLATE'],
		],
	];

	unset($xResizedImage, $x2ResizedImage, $resizedSlider);

	if ($jsParams['SHOW_QUANTITY'])
	{
		$jsParams['VISUAL']['QUANTITY_ID'] = $itemIds['QUANTITY'];
		$jsParams['VISUAL']['QUANTITY_UP_ID'] = $itemIds['QUANTITY_UP'];
		$jsParams['VISUAL']['QUANTITY_COUNTER_ID'] = $itemIds['QUANTITY_COUNTER'];
		$jsParams['VISUAL']['QUANTITY_DOWN_ID'] = $itemIds['QUANTITY_DOWN'];
		$jsParams['VISUAL']['QUANTITY_MEASURE'] = $itemIds['QUANTITY_MEASURE'];
		$jsParams['VISUAL']['QUANTITY_MEASURE_CONTAINER'] = $itemIds['QUANTITY_MEASURE_CONTAINER'];

		$jsParams['VISUAL']['PRICE_TOTAL_ID'] = $itemIds['PRICE_TOTAL'];

		if ($jsParams['SHOW_MAX_QUANTITY'] === 'Y')
		{
			$jsParams['VISUAL']['QUANTITY_LIMIT'] = $itemIds['QUANTITY_LIMIT'];
		}
	}

	if ($jsParams['SHOW_OLD_PRICE'])
	{
		$jsParams['VISUAL']['BLOCK_PRICE_OLD_ID'] = $itemIds['BLOCK_PRICE_OLD'];
		$jsParams['VISUAL']['BLOCK_PRICE_OLD_TWIN_ID'] = $itemIds['BLOCK_PRICE_OLD_TWIN'];
		$jsParams['VISUAL']['PRICE_OLD_ID'] = $itemIds['PRICE_OLD'];
		$jsParams['VISUAL']['PRICE_OLD_TWIN_ID'] = $itemIds['PRICE_OLD_TWIN'];
		$jsParams['VISUAL']['PRICE_DISCOUNT_ID'] = $itemIds['PRICE_DISCOUNT'];
		$jsParams['VISUAL']['PRICE_DISCOUNT_TWIN_ID'] = $itemIds['PRICE_DISCOUNT_TWIN'];
	}

	if ($jsParams['DISPLAY_COMPARE'])
	{
		$jsParams['VISUAL']['COMPARE_LINK_ID'] = $itemIds['COMPARE_LINK'];
	}

	if ($jsParams['USE_SUBSCRIBE'])
	{
		$jsParams['VISUAL']['SUBSCRIBE_ID'] = $itemIds['SUBSCRIBE_LINK'];
	}

	$templateData = [
		'JS_OBJ' => $obName,
		'ITEM' => [
			'ID' => $item['ID'],
			'IBLOCK_ID' => $item['IBLOCK_ID'],
		],
	];
	$documentRoot = Main\Application::getDocumentRoot();
	$file = new Main\IO\File($documentRoot.$templateFolder.'/'.
		(isset($item['PRODUCT']['USE_OFFERS']) && $item['PRODUCT']['USE_OFFERS']
			? 'sku.php'
			: 'simple.php'
		)
	);
	if ($file->isExists())
	{
		/** @noinspection PhpIncludeInspection */
		include($file->getPath());
	}

	if ($jsParams['DISPLAY_COMPARE'])
	{
		$jsParams['COMPARE'] = [
			'COMPARE_URL_TEMPLATE' => $arParams['~COMPARE_URL_TEMPLATE'],
			'COMPARE_DELETE_URL_TEMPLATE' => $arParams['~COMPARE_DELETE_URL_TEMPLATE'],
			'COMPARE_PATH' => $arParams['COMPARE_PATH'],
		];
	}

	if ($jsParams['BIG_DATA'])
	{
		$jsParams['PRODUCT']['RCM_ID'] = $item['RCM_ID'];
	}

	$jsParams['IS_FACEBOOK_CONVERSION_CUSTOMIZE_PRODUCT_EVENT_ENABLED'] =
		$arResult['IS_FACEBOOK_CONVERSION_CUSTOMIZE_PRODUCT_EVENT_ENABLED']
	;

	?>
	<script>
		var <?=$obName?> = new JCCatalogItem(<?=CUtil::PhpToJSObject($jsParams, false, true)?>);
	</script>
	<?php
}