@ -0,0 +1,814 @@ |
||||
<?php |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); |
||||
|
||||
/** |
||||
* @var string $componentPath |
||||
* @var string $componentName |
||||
*/ |
||||
|
||||
use Bitrix\Main\Loader; |
||||
use Bitrix\Main\ModuleManager; |
||||
use Bitrix\Main\Web\Json; |
||||
use Bitrix\Iblock; |
||||
|
||||
if (!Loader::includeModule('iblock')) |
||||
return; |
||||
|
||||
$boolCatalog = Loader::includeModule('catalog'); |
||||
CBitrixComponent::includeComponentClass($componentName); |
||||
|
||||
$usePropertyFeatures = Iblock\Model\PropertyFeature::isEnabledFeatures(); |
||||
|
||||
$iblockExists = (!empty($arCurrentValues['IBLOCK_ID']) && (int)$arCurrentValues['IBLOCK_ID'] > 0); |
||||
|
||||
$defaultValue = array('-' => GetMessage('CP_BCE_TPL_PROP_EMPTY')); |
||||
$arSKU = false; |
||||
$boolSKU = false; |
||||
|
||||
if ($boolCatalog && $iblockExists) |
||||
{ |
||||
$arSKU = CCatalogSku::GetInfoByProductIBlock($arCurrentValues['IBLOCK_ID']); |
||||
$boolSKU = !empty($arSKU) && is_array($arSKU); |
||||
} |
||||
|
||||
$arThemes = array(); |
||||
if (ModuleManager::isModuleInstalled('bitrix.eshop')) |
||||
{ |
||||
$arThemes['site'] = GetMessage('CP_BCE_TPL_THEME_SITE'); |
||||
} |
||||
|
||||
$arThemesList = array( |
||||
'blue' => GetMessage('CP_BCE_TPL_THEME_BLUE'), |
||||
'green' => GetMessage('CP_BCE_TPL_THEME_GREEN'), |
||||
'red' => GetMessage('CP_BCE_TPL_THEME_RED'), |
||||
'wood' => GetMessage('CP_BCE_TPL_THEME_WOOD'), |
||||
'yellow' => GetMessage('CP_BCE_TPL_THEME_YELLOW'), |
||||
'black' => GetMessage('CP_BCE_TPL_THEME_BLACK') |
||||
); |
||||
$dir = trim(preg_replace("'[\\\\/]+'", "/", __DIR__.'/themes/')); |
||||
if (is_dir($dir)) |
||||
{ |
||||
foreach ($arThemesList as $themeID => $themeName) |
||||
{ |
||||
if (!is_file($dir.$themeID.'/style.css')) |
||||
continue; |
||||
|
||||
$arThemes[$themeID] = $themeName; |
||||
} |
||||
} |
||||
|
||||
$documentRoot = Loader::getDocumentRoot(); |
||||
|
||||
$arTemplateParameters['TEMPLATE_THEME'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_TEMPLATE_THEME'), |
||||
'TYPE' => 'LIST', |
||||
'VALUES' => $arThemes, |
||||
'DEFAULT' => 'blue', |
||||
'ADDITIONAL_VALUES' => 'Y' |
||||
); |
||||
$arTemplateParameters['PRODUCT_INFO_BLOCK_ORDER'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_PRODUCT_INFO_BLOCK_ORDER'), |
||||
'TYPE' => 'CUSTOM', |
||||
'JS_FILE' => CatalogElementComponent::getSettingsScript($componentPath, 'dragdrop_order'), |
||||
'JS_EVENT' => 'initDraggableOrderControl', |
||||
'JS_DATA' => Json::encode(array( |
||||
'sku' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_SKU'), |
||||
'props' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_PROPS') |
||||
)), |
||||
'DEFAULT' => 'sku,props' |
||||
); |
||||
$arTemplateParameters['PRODUCT_PAY_BLOCK_ORDER'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_PRODUCT_PAY_BLOCK_ORDER'), |
||||
'TYPE' => 'CUSTOM', |
||||
'JS_FILE' => CatalogElementComponent::getSettingsScript($componentPath, 'dragdrop_order'), |
||||
'JS_EVENT' => 'initDraggableOrderControl', |
||||
'JS_DATA' => Json::encode(array( |
||||
'rating' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_RATING'), |
||||
'price' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_PRICE'), |
||||
'priceRanges' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_PRICE_RANGES'), |
||||
'quantityLimit' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY_LIMIT'), |
||||
'quantity' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY'), |
||||
'buttons' => GetMessage('CP_BCE_TPL_PRODUCT_BLOCK_BUTTONS') |
||||
)), |
||||
'DEFAULT' => 'rating,price,priceRanges,quantityLimit,quantity,buttons' |
||||
); |
||||
|
||||
$arAllPropList = array(); |
||||
$arFilePropList = $defaultValue; |
||||
$arListPropList = array(); |
||||
$arHighloadPropList = array(); |
||||
|
||||
if ($iblockExists) |
||||
{ |
||||
$rsProps = CIBlockProperty::GetList( |
||||
array('SORT' => 'ASC', 'ID' => 'ASC'), |
||||
array('IBLOCK_ID' => $arCurrentValues['IBLOCK_ID'], 'ACTIVE' => 'Y') |
||||
); |
||||
while ($arProp = $rsProps->Fetch()) |
||||
{ |
||||
$strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; |
||||
if ($arProp['CODE'] == '') |
||||
{ |
||||
$arProp['CODE'] = $arProp['ID']; |
||||
} |
||||
|
||||
$arAllPropList[$arProp['CODE']] = $strPropName; |
||||
|
||||
if ($arProp['PROPERTY_TYPE'] === 'F') |
||||
{ |
||||
$arFilePropList[$arProp['CODE']] = $strPropName; |
||||
} |
||||
|
||||
if ($arProp['PROPERTY_TYPE'] === 'L') |
||||
{ |
||||
$arListPropList[$arProp['CODE']] = $strPropName; |
||||
} |
||||
|
||||
if ($arProp['PROPERTY_TYPE'] === 'S' && $arProp['USER_TYPE'] === 'directory' && CIBlockPriceTools::checkPropDirectory($arProp)) |
||||
{ |
||||
$arHighloadPropList[$arProp['CODE']] = $strPropName; |
||||
} |
||||
} |
||||
|
||||
$arAllOfferPropList = array(); |
||||
$arTreeOfferPropList = $arFileOfferPropList = $defaultValue; |
||||
|
||||
if ($boolSKU) |
||||
{ |
||||
$rsProps = CIBlockProperty::GetList( |
||||
array('SORT' => 'ASC', 'ID' => 'ASC'), |
||||
array('IBLOCK_ID' => $arSKU['IBLOCK_ID'], 'ACTIVE' => 'Y') |
||||
); |
||||
while ($arProp = $rsProps->Fetch()) |
||||
{ |
||||
if ($arProp['ID'] == $arSKU['SKU_PROPERTY_ID']) |
||||
{ |
||||
continue; |
||||
} |
||||
|
||||
$arProp['USER_TYPE'] = (string)$arProp['USER_TYPE']; |
||||
$strPropName = '['.$arProp['ID'].']'.('' != $arProp['CODE'] ? '['.$arProp['CODE'].']' : '').' '.$arProp['NAME']; |
||||
|
||||
if ($arProp['CODE'] == '') |
||||
{ |
||||
$arProp['CODE'] = $arProp['ID']; |
||||
} |
||||
|
||||
$arAllOfferPropList[$arProp['CODE']] = $strPropName; |
||||
|
||||
if ($arProp['PROPERTY_TYPE'] === 'F') |
||||
{ |
||||
$arFileOfferPropList[$arProp['CODE']] = $strPropName; |
||||
} |
||||
|
||||
if ($arProp['MULTIPLE'] != 'N') |
||||
{ |
||||
continue; |
||||
} |
||||
|
||||
if ( |
||||
$arProp['PROPERTY_TYPE'] === 'L' |
||||
|| $arProp['PROPERTY_TYPE'] === 'E' |
||||
|| ( |
||||
$arProp['PROPERTY_TYPE'] === 'S' |
||||
&& $arProp['USER_TYPE'] === 'directory' |
||||
&& CIBlockPriceTools::checkPropDirectory($arProp) |
||||
) |
||||
) |
||||
{ |
||||
$arTreeOfferPropList[$arProp['CODE']] = $strPropName; |
||||
} |
||||
} |
||||
} |
||||
|
||||
$showedProperties = []; |
||||
if ($usePropertyFeatures) |
||||
{ |
||||
if ($iblockExists) |
||||
{ |
||||
$showedProperties = Iblock\Model\PropertyFeature::getDetailPageShowProperties( |
||||
$arCurrentValues['IBLOCK_ID'], |
||||
['CODE' => 'Y'] |
||||
); |
||||
if ($showedProperties === null) |
||||
$showedProperties = []; |
||||
} |
||||
} |
||||
else |
||||
{ |
||||
if (!empty($arCurrentValues['PROPERTY_CODE']) && is_array($arCurrentValues['PROPERTY_CODE'])) |
||||
{ |
||||
$showedProperties = $arCurrentValues['PROPERTY_CODE']; |
||||
} |
||||
} |
||||
if (!empty($showedProperties)) |
||||
{ |
||||
$selected = array(); |
||||
|
||||
foreach ($showedProperties as $code) |
||||
{ |
||||
if (isset($arAllPropList[$code])) |
||||
{ |
||||
$selected[$code] = $arAllPropList[$code]; |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['MAIN_BLOCK_PROPERTY_CODE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MAIN_BLOCK_PROPERTY_CODE'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'SIZE' => (count($selected) > 5 ? 8 : 3), |
||||
'VALUES' => $selected |
||||
); |
||||
} |
||||
unset($showedProperties); |
||||
|
||||
if ($boolSKU) |
||||
{ |
||||
$showedProperties = []; |
||||
if ($usePropertyFeatures) |
||||
{ |
||||
$showedProperties = Iblock\Model\PropertyFeature::getDetailPageShowProperties( |
||||
$arSKU['IBLOCK_ID'], |
||||
['CODE' => 'Y'] |
||||
); |
||||
if ($showedProperties === null) |
||||
$showedProperties = []; |
||||
} |
||||
else |
||||
{ |
||||
if (!empty($arCurrentValues['OFFERS_PROPERTY_CODE']) && is_array($arCurrentValues['OFFERS_PROPERTY_CODE'])) |
||||
{ |
||||
$showedProperties = $arCurrentValues['OFFERS_PROPERTY_CODE']; |
||||
} |
||||
} |
||||
|
||||
if (!empty($showedProperties)) |
||||
{ |
||||
$selected = array(); |
||||
|
||||
foreach ($showedProperties as $code) |
||||
{ |
||||
if (isset($arAllOfferPropList[$code])) |
||||
{ |
||||
$selected[$code] = $arAllOfferPropList[$code]; |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['MAIN_BLOCK_OFFERS_PROPERTY_CODE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MAIN_BLOCK_OFFERS_PROPERTY_CODE'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'SIZE' => (count($selected) > 5 ? 8 : 3), |
||||
'VALUES' => $selected |
||||
); |
||||
} |
||||
unset($showedProperties); |
||||
} |
||||
|
||||
$arTemplateParameters['ADD_PICT_PROP'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_ADD_PICT_PROP'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'N', |
||||
'ADDITIONAL_VALUES' => 'N', |
||||
'REFRESH' => 'N', |
||||
'DEFAULT' => '-', |
||||
'VALUES' => $arFilePropList |
||||
); |
||||
|
||||
$arTemplateParameters['LABEL_PROP'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_LABEL_PROP'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'ADDITIONAL_VALUES' => 'N', |
||||
'REFRESH' => 'Y', |
||||
'VALUES' => $arListPropList |
||||
); |
||||
|
||||
if (!empty($arCurrentValues['LABEL_PROP'])) |
||||
{ |
||||
if (!is_array($arCurrentValues['LABEL_PROP'])) |
||||
{ |
||||
$arCurrentValues['LABEL_PROP'] = array($arCurrentValues['LABEL_PROP']); |
||||
} |
||||
|
||||
$selected = array(); |
||||
foreach ($arCurrentValues['LABEL_PROP'] as $name) |
||||
{ |
||||
if (isset($arListPropList[$name])) |
||||
{ |
||||
$selected[$name] = $arListPropList[$name]; |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['LABEL_PROP_MOBILE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_LABEL_PROP_MOBILE'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'ADDITIONAL_VALUES' => 'N', |
||||
'REFRESH' => 'N', |
||||
'SIZE' => (count($selected) > 5 ? 8 : 3), |
||||
'VALUES' => $selected |
||||
); |
||||
unset($selected); |
||||
|
||||
$arTemplateParameters['LABEL_PROP_POSITION'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_LABEL_PROP_POSITION'), |
||||
'TYPE' => 'CUSTOM', |
||||
'JS_FILE' => CatalogElementComponent::getSettingsScript($componentPath, 'position'), |
||||
'JS_EVENT' => 'initPositionControl', |
||||
'JS_DATA' => Json::encode( |
||||
array( |
||||
'positions' => array( |
||||
'top-left', 'top-center', 'top-right', |
||||
'middle-left', 'middle-center', 'middle-right', |
||||
'bottom-left', 'bottom-center', 'bottom-right' |
||||
), |
||||
'className' => '' |
||||
) |
||||
), |
||||
'DEFAULT' => 'top-left' |
||||
); |
||||
} |
||||
|
||||
if ($boolSKU) |
||||
{ |
||||
$arTemplateParameters['OFFER_ADD_PICT_PROP'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_OFFER_ADD_PICT_PROP'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'N', |
||||
'ADDITIONAL_VALUES' => 'N', |
||||
'REFRESH' => 'N', |
||||
'DEFAULT' => '-', |
||||
'VALUES' => $arFileOfferPropList |
||||
); |
||||
if (!$usePropertyFeatures) |
||||
{ |
||||
$arTemplateParameters['OFFER_TREE_PROPS'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_OFFER_TREE_PROPS'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'ADDITIONAL_VALUES' => 'N', |
||||
'REFRESH' => 'N', |
||||
'DEFAULT' => '-', |
||||
'VALUES' => $arTreeOfferPropList |
||||
); |
||||
} |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['DISPLAY_NAME'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_DISPLAY_NAME'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'Y' |
||||
); |
||||
$arTemplateParameters['IMAGE_RESOLUTION'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_IMAGE_RESOLUTION'), |
||||
'TYPE' => 'LIST', |
||||
'VALUES' => array( |
||||
'16by9' => GetMessage('CP_BCE_TPL_IMAGE_RESOLUTION_16_BY_9'), |
||||
'1by1' => GetMessage('CP_BCE_TPL_IMAGE_RESOLUTION_1_BY_1') |
||||
), |
||||
'DEFAULT' => '16by9' |
||||
); |
||||
$arTemplateParameters['SHOW_SLIDER'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SHOW_SLIDER'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'MULTIPLE' => 'N', |
||||
'REFRESH' => 'Y', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['SHOW_SLIDER']) && $arCurrentValues['SHOW_SLIDER'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['SLIDER_INTERVAL'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SLIDER_INTERVAL'), |
||||
'TYPE' => 'TEXT', |
||||
'MULTIPLE' => 'N', |
||||
'REFRESH' => 'N', |
||||
'DEFAULT' => '5000' |
||||
); |
||||
$arTemplateParameters['SLIDER_PROGRESS'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SLIDER_PROGRESS'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'MULTIPLE' => 'N', |
||||
'REFRESH' => 'N', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['DETAIL_PICTURE_MODE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_DETAIL_PICTURE_MODE'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'DEFAULT' => array('POPUP', 'MAGNIFIER'), |
||||
'VALUES' => array( |
||||
'POPUP' => GetMessage('DETAIL_PICTURE_MODE_POPUP'), |
||||
'MAGNIFIER' => GetMessage('DETAIL_PICTURE_MODE_MAGNIFIER') |
||||
) |
||||
); |
||||
$arTemplateParameters['ADD_DETAIL_TO_SLIDER'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_ADD_DETAIL_TO_SLIDER'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
$arTemplateParameters['DISPLAY_PREVIEW_TEXT_MODE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE'), |
||||
'TYPE' => 'LIST', |
||||
'VALUES' => array( |
||||
'H' => GetMessage('CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_HIDE'), |
||||
'E' => GetMessage('CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_EMPTY_DETAIL'), |
||||
'S' => GetMessage('CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_SHOW') |
||||
), |
||||
'DEFAULT' => 'E' |
||||
); |
||||
|
||||
if ($boolCatalog) |
||||
{ |
||||
$arTemplateParameters['PRODUCT_SUBSCRIPTION'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_PRODUCT_SUBSCRIPTION'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'Y' |
||||
); |
||||
$arTemplateParameters['SHOW_DISCOUNT_PERCENT'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SHOW_DISCOUNT_PERCENT'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'REFRESH' => 'Y', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['SHOW_DISCOUNT_PERCENT']) && $arCurrentValues['SHOW_DISCOUNT_PERCENT'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['DISCOUNT_PERCENT_POSITION'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_DISCOUNT_PERCENT_POSITION'), |
||||
'TYPE' => 'CUSTOM', |
||||
'JS_FILE' => CatalogElementComponent::getSettingsScript($componentPath, 'position'), |
||||
'JS_EVENT' => 'initPositionControl', |
||||
'JS_DATA' => Json::encode( |
||||
array( |
||||
'positions' => array( |
||||
'top-left', 'top-center', 'top-right', |
||||
'middle-left', 'middle-center', 'middle-right', |
||||
'bottom-left', 'bottom-center', 'bottom-right' |
||||
), |
||||
'className' => 'bx-pos-parameter-block-circle' |
||||
) |
||||
), |
||||
'DEFAULT' => 'bottom-right' |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['SHOW_OLD_PRICE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SHOW_OLD_PRICE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
$arTemplateParameters['SHOW_MAX_QUANTITY'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SHOW_MAX_QUANTITY'), |
||||
'TYPE' => 'LIST', |
||||
'REFRESH' => 'Y', |
||||
'MULTIPLE' => 'N', |
||||
'VALUES' => array( |
||||
'N' => GetMessage('CP_BCE_TPL_SHOW_MAX_QUANTITY_N'), |
||||
'Y' => GetMessage('CP_BCE_TPL_SHOW_MAX_QUANTITY_Y'), |
||||
'M' => GetMessage('CP_BCE_TPL_SHOW_MAX_QUANTITY_M') |
||||
), |
||||
'DEFAULT' => array('N'), |
||||
); |
||||
|
||||
if (isset($arCurrentValues['SHOW_MAX_QUANTITY'])) |
||||
{ |
||||
if ($arCurrentValues['SHOW_MAX_QUANTITY'] !== 'N') |
||||
{ |
||||
$arTemplateParameters['MESS_SHOW_MAX_QUANTITY'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY_DEFAULT') |
||||
); |
||||
} |
||||
|
||||
if ($arCurrentValues['SHOW_MAX_QUANTITY'] === 'M') |
||||
{ |
||||
$arTemplateParameters['RELATIVE_QUANTITY_FACTOR'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_RELATIVE_QUANTITY_FACTOR'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => '5' |
||||
); |
||||
$arTemplateParameters['MESS_RELATIVE_QUANTITY_MANY'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_RELATIVE_QUANTITY_FEW'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW_DEFAULT') |
||||
); |
||||
} |
||||
} |
||||
|
||||
$basketActions = array( |
||||
'BUY' => GetMessage('ADD_TO_BASKET_ACTION_BUY'), |
||||
'ADD' => GetMessage('ADD_TO_BASKET_ACTION_ADD') |
||||
); |
||||
$arTemplateParameters['ADD_TO_BASKET_ACTION'] = array( |
||||
'PARENT' => 'BASKET', |
||||
'NAME' => GetMessage('CP_BCE_TPL_ADD_TO_BASKET_ACTION'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'VALUES' => $basketActions, |
||||
'DEFAULT' => array('BUY'), |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (!empty($arCurrentValues['ADD_TO_BASKET_ACTION'])) |
||||
{ |
||||
$selected = array(); |
||||
|
||||
if (!is_array($arCurrentValues['ADD_TO_BASKET_ACTION'])) |
||||
{ |
||||
$arCurrentValues['ADD_TO_BASKET_ACTION'] = array($arCurrentValues['ADD_TO_BASKET_ACTION']); |
||||
} |
||||
|
||||
foreach ($arCurrentValues['ADD_TO_BASKET_ACTION'] as $action) |
||||
{ |
||||
if (isset($basketActions[$action])) |
||||
{ |
||||
$selected[$action] = $basketActions[$action]; |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['ADD_TO_BASKET_ACTION_PRIMARY'] = array( |
||||
'PARENT' => 'BASKET', |
||||
'NAME' => GetMessage('CP_BCE_TPL_ADD_TO_BASKET_ACTION_PRIMARY'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'Y', |
||||
'VALUES' => $selected, |
||||
'DEFAULT' => 'BUY', |
||||
'REFRESH' => 'N' |
||||
); |
||||
unset($selected); |
||||
} |
||||
|
||||
$arTemplateParameters['SHOW_CLOSE_POPUP'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_SHOW_CLOSE_POPUP'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['MESS_BTN_BUY'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_BTN_BUY'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_BTN_BUY_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_BTN_ADD_TO_BASKET'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_BTN_SUBSCRIBE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_BTN_SUBSCRIBE'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_BTN_SUBSCRIBE_DEFAULT') |
||||
); |
||||
|
||||
if (isset($arCurrentValues['DISPLAY_COMPARE']) && $arCurrentValues['DISPLAY_COMPARE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['MESS_BTN_COMPARE'] = array( |
||||
'PARENT' => 'COMPARE', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_BTN_COMPARE'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_BTN_COMPARE_DEFAULT') |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['MESS_NOT_AVAILABLE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_NOT_AVAILABLE'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_NOT_AVAILABLE_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_NOT_AVAILABLE_SERVICE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE_DEFAULT') |
||||
); |
||||
|
||||
$arTemplateParameters['USE_VOTE_RATING'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_USE_VOTE_RATING'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
if (isset($arCurrentValues['USE_VOTE_RATING']) && $arCurrentValues['USE_VOTE_RATING'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['VOTE_DISPLAY_AS_RATING'] = array( |
||||
'NAME' => GetMessage('CP_BCE_TPL_VOTE_DISPLAY_AS_RATING'), |
||||
'TYPE' => 'LIST', |
||||
'VALUES' => array( |
||||
'rating' => GetMessage('CP_BCE_TPL_VDAR_RATING'), |
||||
'vote_avg' => GetMessage('CP_BCE_TPL_VDAR_AVERAGE'), |
||||
), |
||||
'DEFAULT' => 'rating' |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['USE_COMMENTS'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_USE_COMMENTS'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['USE_COMMENTS']) && $arCurrentValues['USE_COMMENTS'] === 'Y') |
||||
{ |
||||
if (ModuleManager::isModuleInstalled('blog')) |
||||
{ |
||||
$arTemplateParameters['BLOG_USE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BLOG_USE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['BLOG_USE']) && $arCurrentValues['BLOG_USE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['BLOG_URL'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BLOG_URL'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => 'catalog_comments' |
||||
); |
||||
$arTemplateParameters['BLOG_EMAIL_NOTIFY'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BLOG_EMAIL_NOTIFY'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
} |
||||
} |
||||
|
||||
$boolRus = false; |
||||
$rsLangs = CLanguage::GetList('id', 'asc', array('ID' => 'ru','ACTIVE' => 'Y')); |
||||
if ($arLang = $rsLangs->Fetch()) |
||||
{ |
||||
$boolRus = true; |
||||
} |
||||
|
||||
if ($boolRus) |
||||
{ |
||||
$arTemplateParameters['VK_USE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_VK_USE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['VK_USE']) && $arCurrentValues['VK_USE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['VK_API_ID'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_VK_API_ID'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => 'API_ID' |
||||
); |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['FB_USE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_FB_USE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['FB_USE']) && $arCurrentValues['FB_USE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['FB_APP_ID'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_FB_APP_ID'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => '' |
||||
); |
||||
} |
||||
} |
||||
|
||||
if (ModuleManager::isModuleInstalled('highloadblock')) |
||||
{ |
||||
$arTemplateParameters['BRAND_USE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BRAND_USE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'DEFAULT' => 'N', |
||||
'REFRESH' => 'Y' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['BRAND_USE']) && $arCurrentValues['BRAND_USE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['BRAND_PROP_CODE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BRAND_PROP_CODE'), |
||||
'TYPE' => 'LIST', |
||||
'VALUES' => $arHighloadPropList, |
||||
'MULTIPLE' => 'Y', |
||||
'ADDITIONAL_VALUES' => 'Y' |
||||
); |
||||
} |
||||
} |
||||
|
||||
$arTemplateParameters['MESS_PRICE_RANGES_TITLE'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_PRICE_RANGES_TITLE'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_PRICE_RANGES_TITLE_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_DESCRIPTION_TAB'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_DESCRIPTION_TAB'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_DESCRIPTION_TAB_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_PROPERTIES_TAB'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_PROPERTIES_TAB'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_PROPERTIES_TAB_DEFAULT') |
||||
); |
||||
$arTemplateParameters['MESS_COMMENTS_TAB'] = array( |
||||
'PARENT' => 'VISUAL', |
||||
'NAME' => GetMessage('CP_BCE_TPL_MESS_COMMENTS_TAB'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => GetMessage('CP_BCE_TPL_MESS_COMMENTS_TAB_DEFAULT') |
||||
); |
||||
$arTemplateParameters['USE_ENHANCED_ECOMMERCE'] = array( |
||||
'PARENT' => 'ANALYTICS_SETTINGS', |
||||
'NAME' => GetMessage('CP_BCE_TPL_USE_ENHANCED_ECOMMERCE'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'REFRESH' => 'Y', |
||||
'DEFAULT' => 'N' |
||||
); |
||||
|
||||
if (isset($arCurrentValues['USE_ENHANCED_ECOMMERCE']) && $arCurrentValues['USE_ENHANCED_ECOMMERCE'] === 'Y') |
||||
{ |
||||
$arTemplateParameters['DATA_LAYER_NAME'] = array( |
||||
'PARENT' => 'ANALYTICS_SETTINGS', |
||||
'NAME' => GetMessage('CP_BCE_TPL_DATA_LAYER_NAME'), |
||||
'TYPE' => 'STRING', |
||||
'DEFAULT' => 'dataLayer' |
||||
); |
||||
$arTemplateParameters['BRAND_PROPERTY'] = array( |
||||
'PARENT' => 'ANALYTICS_SETTINGS', |
||||
'NAME' => GetMessage('CP_BCE_TPL_BRAND_PROPERTY'), |
||||
'TYPE' => 'LIST', |
||||
'MULTIPLE' => 'N', |
||||
'DEFAULT' => '', |
||||
'VALUES' => $defaultValue + $arAllPropList |
||||
); |
||||
} |
||||
|
||||
$arTemplateParameters['USE_RATIO_IN_RANGES'] = array( |
||||
'PARENT' => 'PRICES', |
||||
'NAME' => GetMessage('CP_BCE_TPL_USE_RATIO_IN_RANGES'), |
||||
'TYPE' => 'CHECKBOX', |
||||
'HIDDEN' => isset($arCurrentValues['USE_PRICE_COUNT']) && $arCurrentValues['USE_PRICE_COUNT'] === 'Y' ? 'N' : 'Y', |
||||
'DEFAULT' => 'Y' |
||||
); |
@ -0,0 +1,137 @@ |
||||
<?php |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) |
||||
{ |
||||
die(); |
||||
} |
||||
|
||||
use Bitrix\Main\Loader; |
||||
|
||||
/** |
||||
* @var array $templateData |
||||
* @var array $arParams |
||||
* @var string $templateFolder |
||||
* @global CMain $APPLICATION |
||||
*/ |
||||
|
||||
global $APPLICATION; |
||||
|
||||
if (isset($templateData['TEMPLATE_THEME'])) |
||||
{ |
||||
$APPLICATION->SetAdditionalCSS($templateFolder.'/themes/'.$templateData['TEMPLATE_THEME'].'/style.css'); |
||||
$APPLICATION->SetAdditionalCSS('/bitrix/css/main/themes/'.$templateData['TEMPLATE_THEME'].'/style.css', true); |
||||
} |
||||
|
||||
if (!empty($templateData['TEMPLATE_LIBRARY'])) |
||||
{ |
||||
$loadCurrency = false; |
||||
|
||||
if (!empty($templateData['CURRENCIES'])) |
||||
{ |
||||
$loadCurrency = Loader::includeModule('currency'); |
||||
} |
||||
|
||||
CJSCore::Init($templateData['TEMPLATE_LIBRARY']); |
||||
if ($loadCurrency) |
||||
{ |
||||
?> |
||||
<script> |
||||
BX.Currency.setCurrencies(<?=$templateData['CURRENCIES']?>);
|
||||
</script> |
||||
<?php |
||||
} |
||||
} |
||||
|
||||
if (isset($templateData['JS_OBJ'])) |
||||
{ |
||||
?> |
||||
<script> |
||||
BX.ready(BX.defer(function(){ |
||||
if (!!window.<?=$templateData['JS_OBJ']?>)
|
||||
{ |
||||
window.<?=$templateData['JS_OBJ']?>.allowViewedCount(true);
|
||||
} |
||||
})); |
||||
</script> |
||||
<?php |
||||
// check compared state |
||||
if ($arParams['DISPLAY_COMPARE']) |
||||
{ |
||||
$compared = false; |
||||
$comparedIds = array(); |
||||
$item = $templateData['ITEM']; |
||||
|
||||
if (!empty($_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']])) |
||||
{ |
||||
if (!empty($item['JS_OFFERS']) && is_array($item['JS_OFFERS'])) |
||||
{ |
||||
foreach ($item['JS_OFFERS'] as $key => $offer) |
||||
{ |
||||
if (array_key_exists($offer['ID'], $_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']]['ITEMS'])) |
||||
{ |
||||
if ($key == $item['OFFERS_SELECTED']) |
||||
{ |
||||
$compared = true; |
||||
} |
||||
|
||||
$comparedIds[] = $offer['ID']; |
||||
} |
||||
} |
||||
} |
||||
elseif (array_key_exists($item['ID'], $_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']]['ITEMS'])) |
||||
{ |
||||
$compared = true; |
||||
} |
||||
} |
||||
|
||||
if ($templateData['JS_OBJ']) |
||||
{ |
||||
?> |
||||
<script> |
||||
BX.ready(BX.defer(function(){ |
||||
if (!!window.<?=$templateData['JS_OBJ']?>)
|
||||
{ |
||||
window.<?=$templateData['JS_OBJ']?>.setCompared('<?=$compared?>');
|
||||
|
||||
<?php |
||||
if (!empty($comparedIds)): |
||||
?> |
||||
window.<?=$templateData['JS_OBJ']?>.setCompareInfo(<?=CUtil::PhpToJSObject($comparedIds, false, true)?>);
|
||||
<?php |
||||
endif; |
||||
?> |
||||
} |
||||
})); |
||||
</script> |
||||
<?php |
||||
} |
||||
} |
||||
|
||||
// select target offer |
||||
$request = Bitrix\Main\Application::getInstance()->getContext()->getRequest(); |
||||
$offerNum = false; |
||||
$offerId = (int)$this->request->get('OFFER_ID'); |
||||
$offerCode = $this->request->get('OFFER_CODE'); |
||||
|
||||
if ($offerId > 0 && !empty($templateData['OFFER_IDS']) && is_array($templateData['OFFER_IDS'])) |
||||
{ |
||||
$offerNum = array_search($offerId, $templateData['OFFER_IDS']); |
||||
} |
||||
elseif (!empty($offerCode) && !empty($templateData['OFFER_CODES']) && is_array($templateData['OFFER_CODES'])) |
||||
{ |
||||
$offerNum = array_search($offerCode, $templateData['OFFER_CODES']); |
||||
} |
||||
|
||||
if (!empty($offerNum)) |
||||
{ |
||||
?> |
||||
<script> |
||||
BX.ready(function(){ |
||||
if (!!window.<?=$templateData['JS_OBJ']?>)
|
||||
{ |
||||
window.<?=$templateData['JS_OBJ']?>.setOffer(<?=$offerNum?>);
|
||||
} |
||||
}); |
||||
</script> |
||||
<?php |
||||
} |
||||
} |
@ -0,0 +1,103 @@ |
||||
<? |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die(); |
||||
|
||||
if (!function_exists('getSliderForItem')) |
||||
{ |
||||
function getSliderForItem(&$item, $propertyCode, $addDetailToSlider) |
||||
{ |
||||
$result = array(); |
||||
|
||||
if (!empty($item) && is_array($item)) |
||||
{ |
||||
if ( |
||||
'' != $propertyCode && |
||||
isset($item['PROPERTIES'][$propertyCode]) && |
||||
'F' == $item['PROPERTIES'][$propertyCode]['PROPERTY_TYPE'] |
||||
) |
||||
{ |
||||
if ('MORE_PHOTO' == $propertyCode && isset($item['MORE_PHOTO']) && !empty($item['MORE_PHOTO'])) |
||||
{ |
||||
foreach ($item['MORE_PHOTO'] as &$onePhoto) |
||||
{ |
||||
$result[] = array( |
||||
'ID' => intval($onePhoto['ID']), |
||||
'SRC' => $onePhoto['SRC'], |
||||
'WIDTH' => intval($onePhoto['WIDTH']), |
||||
'HEIGHT' => intval($onePhoto['HEIGHT']) |
||||
); |
||||
} |
||||
unset($onePhoto); |
||||
} |
||||
else |
||||
{ |
||||
if ( |
||||
isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) && |
||||
!empty($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) |
||||
) |
||||
{ |
||||
$fileValues = ( |
||||
isset($item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']['ID']) ? |
||||
array(0 => $item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE']) : |
||||
$item['DISPLAY_PROPERTIES'][$propertyCode]['FILE_VALUE'] |
||||
); |
||||
foreach ($fileValues as &$oneFileValue) |
||||
{ |
||||
$result[] = array( |
||||
'ID' => intval($oneFileValue['ID']), |
||||
'SRC' => $oneFileValue['SRC'], |
||||
'WIDTH' => intval($oneFileValue['WIDTH']), |
||||
'HEIGHT' => intval($oneFileValue['HEIGHT']) |
||||
); |
||||
} |
||||
if (isset($oneFileValue)) |
||||
unset($oneFileValue); |
||||
} |
||||
else |
||||
{ |
||||
$propValues = $item['PROPERTIES'][$propertyCode]['VALUE']; |
||||
if (!is_array($propValues)) |
||||
$propValues = array($propValues); |
||||
|
||||
foreach ($propValues as &$oneValue) |
||||
{ |
||||
$oneFileValue = CFile::GetFileArray($oneValue); |
||||
if (isset($oneFileValue['ID'])) |
||||
{ |
||||
$result[] = array( |
||||
'ID' => intval($oneFileValue['ID']), |
||||
'SRC' => $oneFileValue['SRC'], |
||||
'WIDTH' => intval($oneFileValue['WIDTH']), |
||||
'HEIGHT' => intval($oneFileValue['HEIGHT']) |
||||
); |
||||
} |
||||
} |
||||
if (isset($oneValue)) |
||||
unset($oneValue); |
||||
} |
||||
} |
||||
} |
||||
if ($addDetailToSlider || empty($result)) |
||||
{ |
||||
if (!empty($item['DETAIL_PICTURE'])) |
||||
{ |
||||
if (!is_array($item['DETAIL_PICTURE'])) |
||||
$item['DETAIL_PICTURE'] = CFile::GetFileArray($item['DETAIL_PICTURE']); |
||||
if (isset($item['DETAIL_PICTURE']['ID'])) |
||||
{ |
||||
array_unshift( |
||||
$result, |
||||
array( |
||||
'ID' => intval($item['DETAIL_PICTURE']['ID']), |
||||
'SRC' => $item['DETAIL_PICTURE']['SRC'], |
||||
'WIDTH' => intval($item['DETAIL_PICTURE']['WIDTH']), |
||||
'HEIGHT' => intval($item['DETAIL_PICTURE']['HEIGHT']) |
||||
) |
||||
); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
return $result; |
||||
} |
||||
} |
||||
?> |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 959 B |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,125 @@ |
||||
<?php |
||||
$MESS["ADD_DETAIL_TO_SLIDER_TIP"] = "The detailed image will be shown with the other images in the product image slider."; |
||||
$MESS["ADD_PICT_PROP_TIP"] = "Additional images property for product"; |
||||
$MESS["ADD_TO_BASKET_ACTION_ADD"] = "Add to Cart"; |
||||
$MESS["ADD_TO_BASKET_ACTION_BUY"] = "Buy Now"; |
||||
$MESS["CP_BCE_TPL_ADD_DETAIL_TO_SLIDER"] = "Add detailed image to slider"; |
||||
$MESS["CP_BCE_TPL_ADD_PICT_PROP"] = "Additional image of main item"; |
||||
$MESS["CP_BCE_TPL_ADD_TO_BASKET_ACTION"] = "Show \"Add to Cart\" and \"Buy Now\" buttons"; |
||||
$MESS["CP_BCE_TPL_ADD_TO_BASKET_ACTION_PRIMARY"] = "Highlight Add to Cart and Buy buttons"; |
||||
$MESS["CP_BCE_TPL_BLOG_EMAIL_NOTIFY"] = "E-mail notification"; |
||||
$MESS["CP_BCE_TPL_BLOG_URL"] = "Blog name (Latin only)"; |
||||
$MESS["CP_BCE_TPL_BLOG_USE"] = "Use comments"; |
||||
$MESS["CP_BCE_TPL_BRAND_PROPERTY"] = "Brand property"; |
||||
$MESS["CP_BCE_TPL_BRAND_PROP_CODE"] = "Information block containing brand data"; |
||||
$MESS["CP_BCE_TPL_BRAND_USE"] = "Use \"Brands\" component"; |
||||
$MESS["CP_BCE_TPL_DATA_LAYER_NAME"] = "Data container name"; |
||||
$MESS["CP_BCE_TPL_DETAIL_PICTURE_MODE"] = "Detailed image view mode"; |
||||
$MESS["CP_BCE_TPL_DISCOUNT_PERCENT_POSITION"] = "Discount percent position"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_NAME"] = "Display element title"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE"] = "Show short description"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_EMPTY_DETAIL"] = "only if detailed description is missing"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_HIDE"] = "never"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_SHOW"] = "always"; |
||||
$MESS["CP_BCE_TPL_FB_APP_ID"] = "APP_ID"; |
||||
$MESS["CP_BCE_TPL_FB_USE"] = "Use Facebook"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION"] = "Product image aspect ratio"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION_1_BY_1"] = "1:1"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION_16_BY_9"] = "16:9"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP"] = "Product tag property"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP_MOBILE"] = "Product label properties for mobile devices"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP_POSITION"] = "Product label position"; |
||||
$MESS["CP_BCE_TPL_MAIN_BLOCK_OFFERS_PROPERTY_CODE"] = "Show SKU properties in the block on the image right"; |
||||
$MESS["CP_BCE_TPL_MAIN_BLOCK_PROPERTY_CODE"] = "Show properties in the block on the image right"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET"] = "\"Add to cart\" button text"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET_DEFAULT"] = "Add to cart"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_BUY"] = "\"Buy\" button text"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_BUY_DEFAULT"] = "Buy"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_COMPARE"] = "\"Compare\" button text"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_COMPARE_DEFAULT"] = "Compare"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_DETAIL_DEFAULT"] = "Details"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_SUBSCRIBE"] = "\"Notify when back in stock\" button text"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_SUBSCRIBE_DEFAULT"] = "Notify when back in stock"; |
||||
$MESS["CP_BCE_TPL_MESS_COMMENTS_TAB"] = "\"Comments\" tab text"; |
||||
$MESS["CP_BCE_TPL_MESS_COMMENTS_TAB_DEFAULT"] = "Comments"; |
||||
$MESS["CP_BCE_TPL_MESS_DESCRIPTION_TAB"] = "\"Description\" tab text"; |
||||
$MESS["CP_BCE_TPL_MESS_DESCRIPTION_TAB_DEFAULT"] = "Description"; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE"] = "Item not available message"; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE_DEFAULT"] = "Item not available"; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE"] = "Service unavailable message"; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE_DEFAULT"] = "Unavailable"; |
||||
$MESS["CP_BCE_TPL_MESS_PRICE_RANGES_TITLE"] = "Extended price block name"; |
||||
$MESS["CP_BCE_TPL_MESS_PRICE_RANGES_TITLE_DEFAULT"] = "Prices"; |
||||
$MESS["CP_BCE_TPL_MESS_PROPERTIES_TAB"] = "\"Properties\" tab text"; |
||||
$MESS["CP_BCE_TPL_MESS_PROPERTIES_TAB_DEFAULT"] = "Properties"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW"] = "Text for values less than calculated"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW_DEFAULT"] = "only a few left"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY"] = "Text for values greater than calculated"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY_DEFAULT"] = "in stock"; |
||||
$MESS["CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY"] = "Balance text"; |
||||
$MESS["CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY_DEFAULT"] = "Stock"; |
||||
$MESS["CP_BCE_TPL_OFFER_ADD_PICT_PROP"] = "Additional image property of SKU"; |
||||
$MESS["CP_BCE_TPL_OFFER_TREE_PROPS"] = "Properties for grouping of SKUs"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_BUTTONS"] = "Actions"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_COMPARE"] = "Compare"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PRICE"] = "Price"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PRICE_RANGES"] = "Price ranges"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PROPS"] = "Properties"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY"] = "Quantity"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY_LIMIT"] = "Balance"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_RATING"] = "Rating"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_SKU"] = "SKU"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_INFO_BLOCK_ORDER"] = "Product information block display order"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_PAY_BLOCK_ORDER"] = "Product purchase block display order"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_SUBSCRIPTION"] = "Enable back-in-stock notifications"; |
||||
$MESS["CP_BCE_TPL_PROP_EMPTY"] = "not selected"; |
||||
$MESS["CP_BCE_TPL_RELATIVE_QUANTITY_FACTOR"] = "Replace stock value if it exceeds"; |
||||
$MESS["CP_BCE_TPL_SHOW_BASIS_PRICE"] = "Show product item price"; |
||||
$MESS["CP_BCE_TPL_SHOW_CLOSE_POPUP"] = "Show \"Continue Shopping\" button in popup windows"; |
||||
$MESS["CP_BCE_TPL_SHOW_DISCOUNT_PERCENT"] = "Show discount value"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY"] = "Show product balance"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_M"] = "replace balance with text"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_N"] = "don't show"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_Y"] = "show real balance"; |
||||
$MESS["CP_BCE_TPL_SHOW_OLD_PRICE"] = "Show previous price"; |
||||
$MESS["CP_BCE_TPL_SHOW_SLIDER"] = "Show product slider"; |
||||
$MESS["CP_BCE_TPL_SLIDER_INTERVAL"] = "Slider update timeout, ms"; |
||||
$MESS["CP_BCE_TPL_SLIDER_PROGRESS"] = "Show progress bar"; |
||||
$MESS["CP_BCE_TPL_TEMPLATE_THEME"] = "Color theme"; |
||||
$MESS["CP_BCE_TPL_THEME_BLACK"] = "dark"; |
||||
$MESS["CP_BCE_TPL_THEME_BLUE"] = "blue (default theme)"; |
||||
$MESS["CP_BCE_TPL_THEME_GREEN"] = "green"; |
||||
$MESS["CP_BCE_TPL_THEME_RED"] = "red"; |
||||
$MESS["CP_BCE_TPL_THEME_SITE"] = "Use site theme (for bitrix.eshop)"; |
||||
$MESS["CP_BCE_TPL_THEME_WOOD"] = "wood"; |
||||
$MESS["CP_BCE_TPL_THEME_YELLOW"] = "yellow"; |
||||
$MESS["CP_BCE_TPL_USE_COMMENTS"] = "Enable product comments"; |
||||
$MESS["CP_BCE_TPL_USE_ENHANCED_ECOMMERCE"] = "Send data to Google Enhanced Ecommerce"; |
||||
$MESS["CP_BCE_TPL_USE_RATIO_IN_RANGES"] = "Use price range ratio"; |
||||
$MESS["CP_BCE_TPL_USE_VOTE_RATING"] = "Enable product rating"; |
||||
$MESS["CP_BCE_TPL_VDAR_AVERAGE"] = "average value"; |
||||
$MESS["CP_BCE_TPL_VDAR_RATING"] = "rating value"; |
||||
$MESS["CP_BCE_TPL_VK_API_ID"] = "API_ID"; |
||||
$MESS["CP_BCE_TPL_VK_USE"] = "Use VK"; |
||||
$MESS["CP_BCE_TPL_VOTE_DISPLAY_AS_RATING"] = "Show in rating "; |
||||
$MESS["DETAIL_PICTURE_MODE_GALLERY"] = "gallery"; |
||||
$MESS["DETAIL_PICTURE_MODE_MAGNIFIER"] = "zoom"; |
||||
$MESS["DETAIL_PICTURE_MODE_POPUP"] = "in popup window"; |
||||
$MESS["DISPLAY_PREVIEW_TEXT_MODE_TIP"] = "Use this option to specify how and if at all a short description can be shown on an item details page"; |
||||
$MESS["LABEL_PROP_TIP"] = "Product tag property"; |
||||
$MESS["MESS_BTN_ADD_TO_BASKET_TIP"] = "Text to display on button"; |
||||
$MESS["MESS_BTN_BUY_TIP"] = "Text to display on button"; |
||||
$MESS["MESS_BTN_COMPARE_TIP"] = "Text to display on button"; |
||||
$MESS["MESS_BTN_SUBSCRIBE_TIP"] = "Text to display on button"; |
||||
$MESS["MESS_NOT_AVAILABLE_TIP"] = "Item not available message"; |
||||
$MESS["OFFER_TREE_PROPS_TIP"] = "List of properties by which SKUs will be grouped and displayed"; |
||||
$MESS["PRODUCT_SUBSCRIPTION_TIP"] = "Enables the system to notify a customer of the new arrival of a previously out-of-stock item he or she took a particular interest in"; |
||||
$MESS["RELATIVE_QUANTITY_FACTOR_TIP"] = "This value is compared to the result of \"Quantity in stock\" / \"Unit ratio\""; |
||||
$MESS["SHOW_CLOSE_POPUP_TIP"] = "If checked, popup windows will show the \"Continue Shopping\" button"; |
||||
$MESS["SHOW_DISCOUNT_PERCENT_TIP"] = "If the discount is active, shows the discount percent value"; |
||||
$MESS["SHOW_MAX_QUANTITY_TIP"] = "Show total quantity if stock control is enabled for a product"; |
||||
$MESS["SHOW_OLD_PRICE_TIP"] = "If the discount is active, shows the previous price"; |
||||
$MESS["TEMPLATE_THEME_TIP"] = "Defines colors for rendering the website text and graphics. Blue theme is the default option."; |
||||
$MESS["USE_COMMENTS_TIP"] = "Show and use product comments"; |
||||
$MESS["USE_ENHANCED_ECOMMERCE_TIP"] = "This requires Google Analytics Enhanced Ecommerce options to be configured"; |
||||
$MESS["USE_VOTE_RATING_TIP"] = "Show and use product voting controls"; |
@ -0,0 +1,38 @@ |
||||
<?php |
||||
$MESS["CT_BCE_CATALOG_ADD"] = "Add to cart"; |
||||
$MESS["CT_BCE_CATALOG_ADD_TO_BASKET_OK"] = "Added to your shopping cart"; |
||||
$MESS["CT_BCE_CATALOG_BASKET_UNKNOWN_ERROR"] = "Unknown error adding an item to shopping cart"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_BASKET_REDIRECT"] = "View shopping cart"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_CLOSE"] = "Close"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_CLOSE_POPUP"] = "Continue shopping"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_COMPARE_REDIRECT"] = "Compare products"; |
||||
$MESS["CT_BCE_CATALOG_BTN_SEND_PROPS"] = "Select"; |
||||
$MESS["CT_BCE_CATALOG_BUY"] = "Buy"; |
||||
$MESS["CT_BCE_CATALOG_COMMENTARY"] = "Comments"; |
||||
$MESS["CT_BCE_CATALOG_COMMENTS_TAB"] = "Comments"; |
||||
$MESS["CT_BCE_CATALOG_COMPARE"] = "Compare"; |
||||
$MESS["CT_BCE_CATALOG_DESCRIPTION"] = "Description"; |
||||
$MESS["CT_BCE_CATALOG_DESCRIPTION_TAB"] = "Description"; |
||||
$MESS["CT_BCE_CATALOG_ECONOMY_INFO2"] = "Discount #ECONOMY#"; |
||||
$MESS["CT_BCE_CATALOG_GIFTS_MAIN_BLOCK_TITLE_DEFAULT"] = "Select a product and receive a gift"; |
||||
$MESS["CT_BCE_CATALOG_GIFT_BLOCK_TITLE_DEFAULT"] = "Select a gift for this product"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_OK"] = "Product has been added to comparison chart"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_TITLE"] = "Product comparison"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_UNKNOWN_ERROR"] = "Error adding the product to comparison chart"; |
||||
$MESS["CT_BCE_CATALOG_MESS_PRICE_TOTAL_PREFIX"] = "total"; |
||||
$MESS["CT_BCE_CATALOG_NOT_AVAILABLE"] = "not available from stock"; |
||||
$MESS["CT_BCE_CATALOG_NOT_AVAILABLE_SERVICE"] = "Unavailable"; |
||||
$MESS["CT_BCE_CATALOG_PRICE_RANGES_TITLE"] = "Prices"; |
||||
$MESS["CT_BCE_CATALOG_PRODUCT_GIFT_LABEL"] = "Gift"; |
||||
$MESS["CT_BCE_CATALOG_PROPERTIES"] = "Properties"; |
||||
$MESS["CT_BCE_CATALOG_PROPERTIES_TAB"] = "Properties"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_FROM"] = "from #FROM#"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_MORE"] = "and more"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_TO"] = "to #TO#"; |
||||
$MESS["CT_BCE_CATALOG_RATIO_PRICE"] = "price for #RATIO#"; |
||||
$MESS["CT_BCE_CATALOG_RELATIVE_QUANTITY_FEW"] = "only a few left"; |
||||
$MESS["CT_BCE_CATALOG_RELATIVE_QUANTITY_MANY"] = "in stock"; |
||||
$MESS["CT_BCE_CATALOG_SHOW_MAX_QUANTITY"] = "Stock"; |
||||
$MESS["CT_BCE_CATALOG_TITLE_BASKET_PROPS"] = "Item properties to pass to shopping cart"; |
||||
$MESS["CT_BCE_CATALOG_TITLE_ERROR"] = "Error"; |
||||
$MESS["CT_BCE_QUANTITY"] = "Quantity"; |
@ -0,0 +1,126 @@ |
||||
<?php |
||||
$MESS["CP_BCE_TPL_THEME_SITE"] = "Брать тему из настроек сайта (для решения bitrix.eshop)"; |
||||
$MESS["CP_BCE_TPL_THEME_BLUE"] = "синяя (тема по умолчанию)"; |
||||
$MESS["CP_BCE_TPL_THEME_GREEN"] = "зеленая"; |
||||
$MESS["CP_BCE_TPL_THEME_RED"] = "красная"; |
||||
$MESS["CP_BCE_TPL_THEME_WOOD"] = "дерево"; |
||||
$MESS["CP_BCE_TPL_THEME_YELLOW"] = "желтая"; |
||||
$MESS["CP_BCE_TPL_THEME_BLACK"] = "темная"; |
||||
$MESS["CP_BCE_TPL_PROP_EMPTY"] = "не выбрано"; |
||||
$MESS["CP_BCE_TPL_VDAR_RATING"] = "рейтинг"; |
||||
$MESS["CP_BCE_TPL_VDAR_AVERAGE"] = "среднее значение"; |
||||
$MESS["CP_BCE_TPL_TEMPLATE_THEME"] = "Цветовая тема"; |
||||
$MESS["CP_BCE_TPL_ADD_PICT_PROP"] = "Дополнительная картинка основного товара"; |
||||
$MESS["CP_BCE_TPL_MAIN_BLOCK_PROPERTY_CODE"] = "Свойства, отображаемые в блоке справа от картинки"; |
||||
$MESS["CP_BCE_TPL_MAIN_BLOCK_OFFERS_PROPERTY_CODE"] = "Свойства предложений, отображаемые в блоке справа от картинки"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP"] = "Свойство меток товара"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP_MOBILE"] = "Свойства меток товара, отображаемые на мобильных устройствах"; |
||||
$MESS["CP_BCE_TPL_LABEL_PROP_POSITION"] = "Расположение меток товара"; |
||||
$MESS["CP_BCE_TPL_OFFER_ADD_PICT_PROP"] = "Дополнительные картинки предложения"; |
||||
$MESS["CP_BCE_TPL_OFFER_TREE_PROPS"] = "Свойства для отбора предложений"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_NAME"] = "Выводить название элемента"; |
||||
$MESS["CP_BCE_TPL_USE_RATIO_IN_RANGES"] = "Учитывать коэффициенты для диапазонов цен"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION"] = "Соотношение сторон изображения товара"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION_16_BY_9"] = "16:9"; |
||||
$MESS["CP_BCE_TPL_IMAGE_RESOLUTION_1_BY_1"] = "1:1"; |
||||
$MESS["CP_BCE_TPL_SHOW_SLIDER"] = "Показывать слайдер для товаров"; |
||||
$MESS["CP_BCE_TPL_SLIDER_INTERVAL"] = "Интервал смены слайдов, мс"; |
||||
$MESS["CP_BCE_TPL_SLIDER_PROGRESS"] = "Показывать полосу прогресса"; |
||||
$MESS["CP_BCE_TPL_DETAIL_PICTURE_MODE"] = "Режим показа детальной картинки"; |
||||
$MESS["CP_BCE_TPL_ADD_DETAIL_TO_SLIDER"] = "Добавлять детальную картинку в слайдер"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE"] = "Показ описания для анонса"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_HIDE"] = "не показывать"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_SHOW"] = "показывать всегда"; |
||||
$MESS["CP_BCE_TPL_DISPLAY_PREVIEW_TEXT_MODE_EMPTY_DETAIL"] = "показывать, если детальное описание пусто"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_SUBSCRIPTION"] = "Разрешить оповещения для отсутствующих товаров"; |
||||
$MESS["CP_BCE_TPL_SHOW_DISCOUNT_PERCENT"] = "Показывать процент скидки"; |
||||
$MESS["CP_BCE_TPL_DISCOUNT_PERCENT_POSITION"] = "Расположение процента скидки"; |
||||
$MESS["CP_BCE_TPL_SHOW_OLD_PRICE"] = "Показывать старую цену"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY"] = "Показывать остаток товара"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_Y"] = "с отображением реального остатка"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_M"] = "с подменой остатка текстом"; |
||||
$MESS["CP_BCE_TPL_SHOW_MAX_QUANTITY_N"] = "не показывать"; |
||||
$MESS["CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY"] = "Текст для остатка"; |
||||
$MESS["CP_BCE_TPL_MESS_SHOW_MAX_QUANTITY_DEFAULT"] = "Наличие"; |
||||
$MESS["CP_BCE_TPL_RELATIVE_QUANTITY_FACTOR"] = "Значение, от которого происходит подмена"; |
||||
$MESS["RELATIVE_QUANTITY_FACTOR_TIP"] = "Сравнение происходит со значением, рассчитанным по формуле \"Доступное количество\"/\"Коэффициент единицы измерения\""; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY"] = "Текст для значения больше"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_MANY_DEFAULT"] = "много"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW"] = "Текст для значения меньше"; |
||||
$MESS["CP_BCE_TPL_MESS_RELATIVE_QUANTITY_FEW_DEFAULT"] = "мало"; |
||||
$MESS["CP_BCE_TPL_SHOW_BASIS_PRICE"] = "Показывать цену за единицу товара"; |
||||
$MESS["CP_BCE_TPL_ADD_TO_BASKET_ACTION"] = "Показывать кнопки добавления в корзину и покупки"; |
||||
$MESS["CP_BCE_TPL_ADD_TO_BASKET_ACTION_PRIMARY"] = "Выделять кнопки добавления в корзину и покупки"; |
||||
$MESS["CP_BCE_TPL_SHOW_CLOSE_POPUP"] = "Показывать кнопку продолжения покупок во всплывающих окнах"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_BUY"] = "Текст кнопки \"Купить\""; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET"] = "Текст кнопки \"Добавить в корзину\""; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_SUBSCRIBE"] = "Текст кнопки \"Уведомить о поступлении\""; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_COMPARE"] = "Текст кнопки \"Сравнить\""; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE"] = "Сообщение об отсутствии товара"; |
||||
$MESS['CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE'] = "Сообщение о недоступности услуги"; |
||||
$MESS["CP_BCE_TPL_MESS_PRICE_RANGES_TITLE"] = "Название блока c расширенными ценами"; |
||||
$MESS["CP_BCE_TPL_MESS_PRICE_RANGES_TITLE_DEFAULT"] = "Цены"; |
||||
$MESS["CP_BCE_TPL_MESS_DESCRIPTION_TAB"] = "Текст вкладки \"Описание\""; |
||||
$MESS["CP_BCE_TPL_MESS_DESCRIPTION_TAB_DEFAULT"] = "Описание"; |
||||
$MESS["CP_BCE_TPL_MESS_PROPERTIES_TAB"] = "Текст вкладки \"Характеристики\""; |
||||
$MESS["CP_BCE_TPL_MESS_PROPERTIES_TAB_DEFAULT"] = "Характеристики"; |
||||
$MESS["CP_BCE_TPL_MESS_COMMENTS_TAB"] = "Текст вкладки \"Комментарии\""; |
||||
$MESS["CP_BCE_TPL_MESS_COMMENTS_TAB_DEFAULT"] = "Комментарии"; |
||||
$MESS["CP_BCE_TPL_USE_VOTE_RATING"] = "Включить рейтинг товара"; |
||||
$MESS["CP_BCE_TPL_VOTE_DISPLAY_AS_RATING"] = "В качестве рейтинга показывать"; |
||||
$MESS["CP_BCE_TPL_USE_COMMENTS"] = "Включить отзывы о товаре"; |
||||
$MESS["CP_BCE_TPL_BLOG_USE"] = "Использовать комментарии"; |
||||
$MESS["CP_BCE_TPL_BLOG_URL"] = "Название блога латинскими буквами"; |
||||
$MESS["CP_BCE_TPL_BLOG_EMAIL_NOTIFY"] = "Уведомление по электронной почте"; |
||||
$MESS["CP_BCE_TPL_VK_USE"] = "Использовать Вконтакте"; |
||||
$MESS["CP_BCE_TPL_VK_API_ID"] = "Идентификатор приложения Вконтакте (API_ID)"; |
||||
$MESS["CP_BCE_TPL_FB_USE"] = "Использовать Facebook"; |
||||
$MESS["CP_BCE_TPL_FB_APP_ID"] = "Идентификатор приложения (APP_ID)"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_BUY_DEFAULT"] = "Купить"; |
||||
$MESS["CP_BCE_TPL_MESS_NOT_AVAILABLE_DEFAULT"] = "Нет в наличии"; |
||||
$MESS['CP_BCE_TPL_MESS_NOT_AVAILABLE_SERVICE_DEFAULT'] = "Недоступно"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_ADD_TO_BASKET_DEFAULT"] = "В корзину"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_SUBSCRIBE_DEFAULT"] = "Подписаться"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_COMPARE_DEFAULT"] = "Сравнить"; |
||||
$MESS["CP_BCE_TPL_MESS_BTN_DETAIL_DEFAULT"] = "Подробнее"; |
||||
$MESS["CP_BCE_TPL_BRAND_USE"] = "Использовать компонент \"Бренды\""; |
||||
$MESS["CP_BCE_TPL_BRAND_PROP_CODE"] = "Таблица с брендами"; |
||||
$MESS["DETAIL_PICTURE_MODE_POPUP"] = "всплывающее окно"; |
||||
$MESS["DETAIL_PICTURE_MODE_MAGNIFIER"] = "лупа"; |
||||
$MESS["DETAIL_PICTURE_MODE_GALLERY"] = "галерея"; |
||||
$MESS["ADD_TO_BASKET_ACTION_BUY"] = "покупки"; |
||||
$MESS["ADD_TO_BASKET_ACTION_ADD"] = "добавления в корзину"; |
||||
$MESS["TEMPLATE_THEME_TIP"] = "Цветовая тема для отображения. По умолчанию берется синяя тема."; |
||||
$MESS["ADD_PICT_PROP_TIP"] = "Свойство дополнительных картинок товара"; |
||||
$MESS["LABEL_PROP_TIP"] = "Свойство меток товара"; |
||||
$MESS["OFFER_TREE_PROPS_TIP"] = "Свойства, по значениям которых будут группироваться торговые предложения"; |
||||
$MESS["ADD_DETAIL_TO_SLIDER_TIP"] = "Детальная картинка выводится вместе с дополнительными в слайдере изображений товара"; |
||||
$MESS["DISPLAY_PREVIEW_TEXT_MODE_TIP"] = "Данная настройка позволяет указать, необходимо ли и когда выводить описание анонса на детальной странице элемента"; |
||||
$MESS["PRODUCT_SUBSCRIPTION_TIP"] = "Разрешить оповещать клиента, что интересующий его товар стал доступен к покупке"; |
||||
$MESS["SHOW_DISCOUNT_PERCENT_TIP"] = "Вывод процентного значения скидки, если скидка есть"; |
||||
$MESS["SHOW_OLD_PRICE_TIP"] = "Показывать старую цену, если есть скидка"; |
||||
$MESS["SHOW_MAX_QUANTITY_TIP"] = "Показывать общее количество, если для товара включен количественный учет"; |
||||
$MESS["SHOW_CLOSE_POPUP_TIP"] = "Если опция отмечена, во всплывающих окнах будет показана кнопка \"Продолжить покупки\""; |
||||
$MESS["MESS_BTN_BUY_TIP"] = "Какой текст выводить на кнопке"; |
||||
$MESS["MESS_BTN_ADD_TO_BASKET_TIP"] = "Какой текст выводить на кнопке"; |
||||
$MESS["MESS_BTN_SUBSCRIBE_TIP"] = "Какой текст выводить на кнопке"; |
||||
$MESS["MESS_BTN_COMPARE_TIP"] = "Какой текст выводить на кнопке"; |
||||
$MESS["MESS_NOT_AVAILABLE_TIP"] = "Сообщение об отсутствии товара и невозможности его купить"; |
||||
$MESS["USE_VOTE_RATING_TIP"] = "Включить рейтингование товара"; |
||||
$MESS["USE_COMMENTS_TIP"] = "Включить функционал отзывов о товаре"; |
||||
$MESS["CP_BCE_TPL_USE_ENHANCED_ECOMMERCE"] = "Включить отправку данных в электронную торговлю"; |
||||
$MESS["USE_ENHANCED_ECOMMERCE_TIP"] = "Требуется дополнительная настройка в Google Analytics Enhanced |
||||
Ecommerce и/или Яндекс.Метрике"; |
||||
$MESS["CP_BCE_TPL_DATA_LAYER_NAME"] = "Имя контейнера данных"; |
||||
$MESS["CP_BCE_TPL_BRAND_PROPERTY"] = "Свойство брендов"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_INFO_BLOCK_ORDER"] = "Порядок отображения блоков информации о товаре"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_PAY_BLOCK_ORDER"] = "Порядок отображения блоков покупки товара"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_RATING"] = "Рейтинг"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PRICE"] = "Цена"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_SKU"] = "Торговое предложение"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PROPS"] = "Свойства"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_PRICE_RANGES"] = "Диапазоны цен"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY"] = "Количество"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_BUTTONS"] = "Действия"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_COMPARE"] = "Сравнение"; |
||||
$MESS["CP_BCE_TPL_PRODUCT_BLOCK_QUANTITY_LIMIT"] = "Остаток"; |
@ -0,0 +1,38 @@ |
||||
<?php |
||||
$MESS["CT_BCE_QUANTITY"] = "Количество"; |
||||
$MESS["CT_BCE_CATALOG_BUY"] = "Купить"; |
||||
$MESS["CT_BCE_CATALOG_ADD"] = "В корзину"; |
||||
$MESS["CT_BCE_CATALOG_COMPARE"] = "Сравнить"; |
||||
$MESS["CT_BCE_CATALOG_NOT_AVAILABLE"] = "нет на складе"; |
||||
$MESS["CT_BCE_CATALOG_NOT_AVAILABLE_SERVICE"] = "Недоступно"; |
||||
$MESS["CT_BCE_CATALOG_ECONOMY_INFO2"] = "Скидка #ECONOMY#"; |
||||
$MESS["CT_BCE_CATALOG_DESCRIPTION"] = "Описание"; |
||||
$MESS["CT_BCE_CATALOG_PROPERTIES"] = "Характеристики"; |
||||
$MESS["CT_BCE_CATALOG_COMMENTARY"] = "Комментарии"; |
||||
$MESS["CT_BCE_CATALOG_TITLE_ERROR"] = "Ошибка"; |
||||
$MESS["CT_BCE_CATALOG_TITLE_BASKET_PROPS"] = "Свойства товара, добавляемые в корзину"; |
||||
$MESS["CT_BCE_CATALOG_BASKET_UNKNOWN_ERROR"] = "Неизвестная ошибка при добавлении товара в корзину"; |
||||
$MESS["CT_BCE_CATALOG_BTN_SEND_PROPS"] = "Выбрать"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_CLOSE"] = "Закрыть"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_CLOSE_POPUP"] = "Продолжить покупки"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_BASKET_REDIRECT"] = "Перейти в корзину"; |
||||
$MESS["CT_BCE_CATALOG_ADD_TO_BASKET_OK"] = "Товар добавлен в корзину"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_OK"] = "Товар добавлен в список сравнения"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_TITLE"] = "Сравнение товаров"; |
||||
$MESS["CT_BCE_CATALOG_MESS_COMPARE_UNKNOWN_ERROR"] = "При добавлении товара в список сравнения произошла ошибка"; |
||||
$MESS["CT_BCE_CATALOG_BTN_MESSAGE_COMPARE_REDIRECT"] = "Перейти в список сравнения"; |
||||
$MESS["CT_BCE_CATALOG_PRODUCT_GIFT_LABEL"] = "Подарок"; |
||||
$MESS["CT_BCE_CATALOG_MESS_PRICE_TOTAL_PREFIX"] = "на сумму"; |
||||
$MESS["CT_BCE_CATALOG_PRICE_RANGES_TITLE"] = "Цены"; |
||||
$MESS["CT_BCE_CATALOG_DESCRIPTION_TAB"] = "Описание"; |
||||
$MESS["CT_BCE_CATALOG_PROPERTIES_TAB"] = "Характеристики"; |
||||
$MESS["CT_BCE_CATALOG_COMMENTS_TAB"] = "Комментарии"; |
||||
$MESS["CT_BCE_CATALOG_SHOW_MAX_QUANTITY"] = "Наличие"; |
||||
$MESS["CT_BCE_CATALOG_RELATIVE_QUANTITY_MANY"] = "много"; |
||||
$MESS["CT_BCE_CATALOG_RELATIVE_QUANTITY_FEW"] = "мало"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_FROM"] = "от #FROM#"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_TO"] = "до #TO#"; |
||||
$MESS["CT_BCE_CATALOG_RANGE_MORE"] = "и более"; |
||||
$MESS["CT_BCE_CATALOG_RATIO_PRICE"] = "цена за #RATIO#"; |
||||
$MESS["CT_BCE_CATALOG_GIFT_BLOCK_TITLE_DEFAULT"] = "Выберите один из подарков к этому товару"; |
||||
$MESS["CT_BCE_CATALOG_GIFTS_MAIN_BLOCK_TITLE_DEFAULT"] = "Выберите один из товаров, чтобы получить подарок"; |
@ -0,0 +1,618 @@ |
||||
<?php |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); |
||||
|
||||
use Bitrix\Main\Localization\Loc; |
||||
use Bitrix\Catalog\ProductTable; |
||||
|
||||
/** |
||||
* @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); |
||||
|
||||
use Bitrix\Catalog\PriceTable; |
||||
|
||||
$priceRow = PriceTable::getList([ |
||||
'filter' => [ |
||||
'PRODUCT_ID' => $arResult['ID'], |
||||
'CATALOG_GROUP_ID' => 1 |
||||
], |
||||
'select' => ['PRICE', 'CURRENCY'] |
||||
])->fetch(); |
||||
|
||||
$oldPrice = $arResult['PROPERTIES']['ATT_OLD_PRICE']['VALUE']; |
||||
|
||||
$price = $arResult['PROPERTIES']['FORMA']['VALUE']; |
||||
$camerasNum = $arResult['PROPERTIES']['CAMERAS_NUM']['VALUE']; |
||||
$chel = $arResult['PROPERTIES']['CHEL']['VALUE']; |
||||
$sbros_num = $arResult['PROPERTIES']['SBROS_NUM']['VALUE']; |
||||
$recycleVol = $arResult['PROPERTIES']['RECYCLE_VOL']['VALUE']; |
||||
$energyUse = $arResult['PROPERTIES']['ENERGY_USE']['VALUE']; |
||||
|
||||
$passports = $arResult['PROPERTIES']['PASSPORT']['VALUE']; |
||||
$certs = $arResult['PROPERTIES']['CERTS']['VALUE']; |
||||
$instructions = $arResult['PROPERTIES']['MAN']['VALUE']; |
||||
$docs = $arResult['PROPERTIES']['DOC']['VALUE']; |
||||
|
||||
$reviews = $arResult['PROPERTIES']['REV_COMPLITE']['VALUE']; |
||||
|
||||
$rating = getAverageRating($reviews); |
||||
|
||||
?> |
||||
<?$APPLICATION->IncludeComponent("bitrix:breadcrumb","breadcrumbs",Array( |
||||
"START_FROM" => "0", |
||||
"PATH" => "", |
||||
"SITE_ID" => "s1" |
||||
) |
||||
);?> |
||||
<section class="product-page container section"> |
||||
<div class="product-page__slider"> |
||||
<div class="product-page__slider-top swiper"> |
||||
<div class="swiper-wrapper"> |
||||
<?php if (!empty($arResult['DETAIL_PICTURE']['SRC'])): ?> |
||||
<div class="swiper-slide"> |
||||
<img src="<?= $arResult['DETAIL_PICTURE']['SRC'] ?>" alt="<?= $arResult['DETAIL_PICTURE']['ALT'] ?>" width="60" height="60">
|
||||
</div> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ALL_PHOTOS']['VALUE'])): ?> |
||||
<?php foreach ($arResult['PROPERTIES']['ALL_PHOTOS']['VALUE'] as $imageId): ?> |
||||
<?php |
||||
$imagePath = CFile::GetPath($imageId); |
||||
$alt = $arResult['NAME'] ?? 'Фото'; |
||||
?> |
||||
<div class="swiper-slide"> |
||||
<img src="<?= htmlspecialchars($imagePath) ?>" alt="<?= htmlspecialchars($alt) ?>" width="60" height="60">
|
||||
</div> |
||||
<?php endforeach; ?> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
<div class="product-page__slider-bottom swiper"> |
||||
<div class="swiper-wrapper"> |
||||
<?php if (!empty($arResult['DETAIL_PICTURE']['SRC'])): ?> |
||||
<div class="swiper-slide"> |
||||
<img src="<?= $arResult['DETAIL_PICTURE']['SRC'] ?>" alt="<?= $arResult['DETAIL_PICTURE']['ALT'] ?>" width="60" height="60">
|
||||
</div> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ALL_PHOTOS']['VALUE'])): ?> |
||||
<?php foreach ($arResult['PROPERTIES']['ALL_PHOTOS']['VALUE'] as $imageId): ?> |
||||
<?php |
||||
$imagePath = CFile::GetPath($imageId); |
||||
$alt = $arResult['NAME'] ?? 'Фото'; |
||||
?> |
||||
<div class="swiper-slide"> |
||||
<img src="<?= htmlspecialchars($imagePath) ?>" alt="<?= htmlspecialchars($alt) ?>" width="60" height="60">
|
||||
</div> |
||||
<?php endforeach; ?> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="product-page__info"> |
||||
<h1 class="product-page__title"> |
||||
<?= $arResult['NAME'] ?> |
||||
</h1> |
||||
<div class="product-page__about"> |
||||
<div class="product-page__rating rating rating--<?= $rating ?>">
|
||||
<?= $rating ?>/5
|
||||
</div> |
||||
<div class="product-page__rating-count"> |
||||
<?= is_array($reviews) ? count($reviews) : 0 ?> |
||||
<?= getReviewWordForm($reviews) ?> |
||||
</div> |
||||
</div> |
||||
<?php if ($arResult['DETAIL_TEXT']): ?> |
||||
<div class="product-page__descr"> |
||||
<?= $arResult['~DETAIL_TEXT'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
<div class="product-page__list"> |
||||
<?php if (!empty($price)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Форма корпуса</dt> |
||||
<dd><?= $price ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($camerasNum)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Количество камер</dt> |
||||
<dd><?= $camerasNum ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($chel)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Кол-во человек</dt> |
||||
<dd><?= $chel ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($sbros_num)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Залповый сброс, л</dt> |
||||
<dd><?= $sbros_num ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($recycleVol)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Объем переработки, л/сутки</dt> |
||||
<dd><?= $recycleVol ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($energyUse)): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Потреб. энергия, вт/час</dt> |
||||
<dd><?= $energyUse ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<a class="product-page__link" href="#product-tabs">Смотреть все характеристики</a> |
||||
</div> |
||||
</div> |
||||
<div class="product-page__data"> |
||||
<div class="product-page__price"> |
||||
<div class="product-page__price-line"> |
||||
<span class="product-page__new-price"> |
||||
<?= number_format($priceRow['PRICE'], 0, '', ' ') ?> ₽
|
||||
</span> |
||||
<?php if ($oldPrice): ?> |
||||
<span class="product-page__old-price"> |
||||
<?= number_format($oldPrice, 0, '', ' ') ?> ₽
|
||||
</span> |
||||
<?php endif; ?> |
||||
</div> |
||||
<form class="product-page__prices add-to-cart-form" action="<?=POST_FORM_ACTION_URI?>" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_QUANTITY_VARIABLE"]?>" value="1" class="form-control" id="QUANTITY<?= $arResult['ID'] ?>">
|
||||
<input type="hidden" name="<?echo $arParams["ACTION_VARIABLE"]?>" value="ADD2BASKET">
|
||||
<input type="hidden" name="ajax_basket" value="Y"> |
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_ID_VARIABLE"]?>" value="<?= $arResult['ID'] ?>" class="id-offer">
|
||||
<button type="submit" class="button button--orange add-to-cart-button" name="<?echo $arParams["ACTION_VARIABLE"]."ADD2BASKET"?>">
|
||||
Купить |
||||
</button> |
||||
<button type="button" class="button button--outline"> |
||||
В корзину |
||||
</button> |
||||
</form> |
||||
</div> |
||||
<div class="product-page__delivery"> |
||||
<div class="product-page__delivery-data"> |
||||
<div class="product-page__delivery-line"> |
||||
<span>Самовывоз из магазина</span> - <span>сегодня</span> |
||||
</div> |
||||
<div class="product-page__delivery-line"> |
||||
<span>Доставка курьером</span> - <span>завтра</span> |
||||
</div> |
||||
<div class="product-page__delivery-line"> |
||||
<span>Доставка почтой</span> - <span>1-2 дня</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</section> |
||||
|
||||
<section class="product-tabs section container" id="product-tabs"> |
||||
<input class="product-tabs__radio visually-hidden" id="tabs_characteristic" type="radio" name="tabs" value="characteristic" checked=""> |
||||
<?php if (!empty($certs)): ?> |
||||
<input class="product-tabs__radio visually-hidden" id="tabs_sertificates" type="radio" name="tabs" value="sertificates"> |
||||
<?php endif; ?> |
||||
<?php if (!empty($passports)): ?> |
||||
<input class="product-tabs__radio visually-hidden" id="tabs_passport" type="radio" name="tabs" value="passport"> |
||||
<?php endif; ?> |
||||
<?php if (!empty($instructions)): ?> |
||||
<input class="product-tabs__radio visually-hidden" id="tabs_instructions" type="radio" name="tabs" value="instructions"> |
||||
<?php endif; ?> |
||||
<?php if (!empty($docs)): ?> |
||||
<input class="product-tabs__radio visually-hidden" id="tabs_documentation" type="radio" name="tabs" value="documentation"> |
||||
<?php endif; ?> |
||||
<div class="product-tabs__list"> |
||||
<label class="product-tabs__item" for="tabs_characteristic">Характеристика</label> |
||||
<?php if (!empty($certs)): ?> |
||||
<label class="product-tabs__item" for="tabs_sertificates">Сертификаты</label> |
||||
<?php endif; ?> |
||||
<?php if (!empty($passports)): ?> |
||||
<label class="product-tabs__item" for="tabs_passport">Паспорт</label> |
||||
<?php endif; ?> |
||||
<?php if (!empty($instructions)): ?> |
||||
<label class="product-tabs__item" for="tabs_instructions">Инструкция</label> |
||||
<?php endif; ?> |
||||
<?php if (!empty($docs)): ?> |
||||
<label class="product-tabs__item" for="tabs_documentation">Документация</label> |
||||
<?php endif; ?> |
||||
</div> |
||||
<div class="product-tabs__data"> |
||||
<h2 class="visually-hidden">Характеристика</h2> |
||||
<div class="product-tabs__data-item"> |
||||
<div class="product-page__list"> |
||||
<?php if (!empty($arResult['PROPERTIES']['FORMA']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Форма корпуса</dt> |
||||
<dd><?= $arResult['PROPERTIES']['FORMA']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['CAMERAS_NUM']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Количество камер</dt> |
||||
<dd><?= $arResult['PROPERTIES']['CAMERAS_NUM']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['CHEL']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Количество пользователей</dt> |
||||
<dd><?= $arResult['PROPERTIES']['CHEL']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['SBROS_NUM']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Залповый сброс, л</dt> |
||||
<dd><?= $arResult['PROPERTIES']['SBROS_NUM']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['RECYCLE_VOL']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Объем переработки, л/сутки</dt> |
||||
<dd><?= $arResult['PROPERTIES']['RECYCLE_VOL']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ENERGY_USE']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Потреб. энергия, вт/час</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ENERGY_USE']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_VOL']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Обьём станции м³</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_VOL']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_DEPTH']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Глубина залегания трубы, см</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_DEPTH']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_WARRANTY']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Гарантия на продукцию</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_WARRANTY']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_WARRANTY_KEY']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Гарантия на монтаж под ключ</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_WARRANTY_KEY']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_WARRANTY_CHEF']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Гарантия на пуско-наладочные работы (шеф монтаж)</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_WARRANTY_CHEF']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_LONG']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Длина площадки, м</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_LONG']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_WIDTH']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Ширина площадки, м</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_WIDTH']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_DIAM']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Диаметр цилиндра Ø, м</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_DIAM']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
<?php if (!empty($arResult['PROPERTIES']['ATT_HEIGHT']['VALUE'])): ?> |
||||
<dl class="product-page__line"> |
||||
<dt>Высота, м</dt> |
||||
<dd><?= $arResult['PROPERTIES']['ATT_HEIGHT']['VALUE'] ?></dd>
|
||||
</dl> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
<?php if (!empty($certs)): ?> |
||||
<div class="product-tabs__data-item"> |
||||
<h2 class="visually-hidden">Сертификаты</h2> |
||||
<div class="product-page__images documents"> |
||||
<?php foreach ($certs as $cert): ?> |
||||
<?php |
||||
$imagePath = CFile::GetPath($cert['SUB_VALUES']['CERT_JPG']['VALUE']); |
||||
$alt = $cert['SUB_VALUES']['CERT_NAME']['VALUE']; |
||||
?> |
||||
<div class="documents__item"> |
||||
<div class="documents__wrapper"> |
||||
<img class="documents__image" src="<?= htmlspecialchars($imagePath) ?>" data-fancybox="certificate" width="392" height="520" alt=""<?= htmlspecialchars($alt) ?>">
|
||||
<img class="documents__zoom" src="<?= DEFAULT_TEMPLATE_PATH ?>/img/svg/zoom.svg" alt="">
|
||||
</div> |
||||
<p class="product-page__docname"> |
||||
<?= $cert['SUB_VALUES']['CERT_NAME']['VALUE'] ?> |
||||
<?php if (!empty($cert['SUB_VALUES']['CERT_PDF']['VALUE'])): ?> |
||||
<?php |
||||
$certFile = CFile::GetFileArray($cert['SUB_VALUES']['CERT_PDF']['VALUE']); |
||||
?> |
||||
<a class="download-link" download="<?= $certFile['ORIGINAL_NAME'] ?>" href="<?= $certFile['SRC'] ?>">
|
||||
<span>Скачать PDF</span> |
||||
</a> |
||||
<?php endif; ?> |
||||
</p> |
||||
</div> |
||||
<?php endforeach; ?> |
||||
</div> |
||||
</div> |
||||
<?php endif; ?> |
||||
|
||||
<?php if (!empty($passports)): ?> |
||||
<div class="product-tabs__data-item product-tabs__data-item--docs"> |
||||
<div class="product-tabs__data-items"> |
||||
<?php foreach ($passports as $passport): ?> |
||||
<div class="product-page__text documents"> |
||||
<?php |
||||
$imagePath = CFile::GetPath($passport['SUB_VALUES']['PASSPORT_JPG']['VALUE']); |
||||
$alt = $passport['SUB_VALUES']['PASSPORT_NAME']['VALUE']; |
||||
?> |
||||
<div class="documents__item"> |
||||
<div class="documents__wrapper"> |
||||
<img class="documents__image" src="<?= htmlspecialchars($imagePath) ?>" data-fancybox="passport" width="392" height="520" alt=""<?= htmlspecialchars($alt) ?>">
|
||||
<img class="documents__zoom" src="<?= DEFAULT_TEMPLATE_PATH ?>/img/svg/zoom.svg" alt="">
|
||||
</div> |
||||
<p class="product-page__docname"> |
||||
<?= $passport['SUB_VALUES']['PASSPORT_NAME']['VALUE'] ?> |
||||
<?php if (!empty($passport['SUB_VALUES']['PASSPORT_PDF']['VALUE'])): ?> |
||||
<?php |
||||
$passportFile = CFile::GetFileArray($passport['SUB_VALUES']['PASSPORT_PDF']['VALUE']); |
||||
?> |
||||
<a class="download-link" download="<?= $passportFile['ORIGINAL_NAME'] ?>" href="<?= $passportFile['SRC'] ?>">
|
||||
<span>Скачать PDF</span> |
||||
</a> |
||||
<?php endif; ?> |
||||
</p> |
||||
</div> |
||||
<div class="product-page__article"> |
||||
<h2 class="product-page__article-name"> |
||||
<?= $passport['SUB_VALUES']['PASSPORT_NAME']['VALUE'] ?> |
||||
</h2> |
||||
<?php if ($passport['SUB_VALUES']['PASSPORT_TEXT']['VALUE']): ?> |
||||
<div class="product-page__article-text"> |
||||
<?= $passport['SUB_VALUES']['PASSPORT_TEXT']['~VALUE']['TEXT'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
<?php endforeach; ?> |
||||
</div> |
||||
</div> |
||||
<?php endif; ?> |
||||
|
||||
<?php if (!empty($instructions)): ?> |
||||
<div class="product-tabs__data-item product-tabs__data-item--docs"> |
||||
<div class="product-tabs__data-items"> |
||||
<?php foreach ($instructions as $instruction): ?> |
||||
<?php |
||||
$imagePath = CFile::GetPath($instruction['SUB_VALUES']['MAN_JPG']['VALUE']); |
||||
$alt = $instruction['SUB_VALUES']['MAN_NAME']['VALUE']; |
||||
?> |
||||
<div class="product-page__text documents"> |
||||
<div class="documents__item"> |
||||
<div class="documents__wrapper"> |
||||
<img class="documents__image" src="<?= htmlspecialchars($imagePath) ?>" data-fancybox="instruction" width="392" height="520" alt=""<?= htmlspecialchars($alt) ?>">
|
||||
<img class="documents__zoom" src="<?= DEFAULT_TEMPLATE_PATH ?>/img/svg/zoom.svg" alt="">
|
||||
</div> |
||||
<p class="product-page__docname"> |
||||
<?= $instruction['SUB_VALUES']['MAN_NAME']['VALUE'] ?> |
||||
<?php if (!empty($instruction['SUB_VALUES']['MAN_PDF']['VALUE'])): ?> |
||||
<?php |
||||
$instructionFile = CFile::GetFileArray($instruction['SUB_VALUES']['MAN_PDF']['VALUE']); |
||||
?> |
||||
<a class="download-link" download="<?= $instructionFile['ORIGINAL_NAME'] ?>" href="<?= $instructionFile['SRC'] ?>">
|
||||
<span>Скачать PDF</span> |
||||
</a> |
||||
<?php endif; ?> |
||||
</p> |
||||
</div> |
||||
<div class="product-page__article"> |
||||
<h2 class="product-page__article-name"> |
||||
<?= $instruction['SUB_VALUES']['MAN_NAME']['VALUE'] ?> |
||||
</h2> |
||||
<?php if ($instruction['SUB_VALUES']['MAN_TEXT']['VALUE']): ?> |
||||
<div class="product-page__article-text"> |
||||
<?= $instruction['SUB_VALUES']['MAN_TEXT']['~VALUE']['TEXT'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
<?php endforeach; ?> |
||||
</div> |
||||
</div> |
||||
<?php endif; ?> |
||||
|
||||
<?php if (!empty($docs)): ?> |
||||
<div class="product-tabs__data-item"> |
||||
<h2 class="visually-hidden">Документация</h2> |
||||
<div class="product-page__images documents"> |
||||
<?php foreach ($docs as $doc): ?> |
||||
<?php |
||||
$imagePath = CFile::GetPath($doc['SUB_VALUES']['DOC_JPG']['VALUE']); |
||||
$alt = $doc['SUB_VALUES']['DOC_NAME']['VALUE']; |
||||
?> |
||||
<div class="documents__item"> |
||||
<div class="documents__wrapper"> |
||||
<img class="documents__image" src="<?= htmlspecialchars($imagePath) ?>" data-fancybox="doc" width="392" height="520" alt=""<?= htmlspecialchars($alt) ?>">
|
||||
<img class="documents__zoom" src="<?= DEFAULT_TEMPLATE_PATH ?>/img/svg/zoom.svg" alt="">
|
||||
</div> |
||||
<p class="product-page__docname"> |
||||
<?= $doc['SUB_VALUES']['DOC_NAME']['VALUE'] ?> |
||||
<?php if (!empty($doc['SUB_VALUES']['DOC_PDF']['VALUE'])): ?> |
||||
<?php |
||||
$docFile = CFile::GetFileArray($doc['SUB_VALUES']['DOC_PDF']['VALUE']); |
||||
?> |
||||
<a class="download-link" download="<?= $docFile['ORIGINAL_NAME'] ?>" href="<?= $docFile['SRC'] ?>">
|
||||
<span>Скачать PDF</span> |
||||
</a> |
||||
<?php endif; ?> |
||||
</p> |
||||
</div> |
||||
<?php endforeach; ?> |
||||
</div> |
||||
</div> |
||||
<?php endif; ?> |
||||
</div> |
||||
</section> |
||||
|
||||
<?php if (!empty($reviews)): ?> |
||||
<section class="product-review reviews container section product__reviews-swiper"> |
||||
<h2 class="section-title">Отзывы о септике</h2> |
||||
<div class="reviews__list swiper-wrapper"> |
||||
<?php foreach ($reviews as $review): ?> |
||||
<div class="reviews__item swiper-slide"> |
||||
<div class="reviews__author reviews__author--with-icon"> |
||||
<div class="reviews__author-icon"> |
||||
<?= mb_substr($review['SUB_VALUES']['REV_NAME']['VALUE'], 0, 1) ?> |
||||
</div> |
||||
<div class="reviews__author-name"> |
||||
<?= $review['SUB_VALUES']['REV_NAME']['VALUE'] ?> |
||||
</div> |
||||
<?php if (!empty($review['SUB_VALUES']['REV_CITY']['VALUE'])): ?> |
||||
<div class="reviews__author-city"> |
||||
<?= $review['SUB_VALUES']['REV_CITY']['VALUE'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
</div> |
||||
<?php if (!empty($review['SUB_VALUES']['REV_HEADER']['VALUE'])): ?> |
||||
<h3 class="reviews__name"> |
||||
<?= $review['SUB_VALUES']['REV_HEADER']['VALUE'] ?> |
||||
</h3> |
||||
<?php endif; ?> |
||||
<?php if (!empty($review['SUB_VALUES']['REV_TEXT']['VALUE'])): ?> |
||||
<div class="reviews__message"> |
||||
<?= $review['SUB_VALUES']['REV_TEXT']['~VALUE'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
<div class="reviews__value"> |
||||
<?php if (!empty($review['SUB_VALUES']['REV_DATE']['VALUE'])): ?> |
||||
<div class="reviews__date"> |
||||
<?= $review['SUB_VALUES']['REV_DATE']['VALUE'] ?> |
||||
</div> |
||||
<?php endif; ?> |
||||
<?php if (!empty($review['SUB_VALUES']['REV_RATING']['VALUE'])): ?> |
||||
<div class="reviews__rating rating rating--<?= $review['SUB_VALUES']['REV_RATING']['VALUE'] ?>">
|
||||
<?= $review['SUB_VALUES']['REV_RATING']['VALUE'] ?>/5
|
||||
</div> |
||||
<?php endif; ?> |
||||
</div> |
||||
</div> |
||||
<?php endforeach; ?> |
||||
</div> |
||||
<div class="reviews__btns"> |
||||
<button class="reviews__btn reviews__btn--prev" type="button"></button> |
||||
<button class="reviews__btn reviews__btn--next" type="button"></button> |
||||
</div> |
||||
</section> |
||||
<?php endif; ?> |
||||
|
||||
<section class="product-sale sale container section"> |
||||
<h2 class="section-title">Вас также могут заинтересовать</h2> |
||||
<div class="sale__products"> |
||||
<?php
|
||||
// Выводим товары с ID 1, 2, 3 |
||||
$recommendedIds = [328, 336, 343]; |
||||
|
||||
foreach ($recommendedIds as $productId) { |
||||
$arSelect = Array("ID", "NAME", "PREVIEW_TEXT", "PREVIEW_PICTURE", "DETAIL_PAGE_URL", "PROPERTY_*"); |
||||
$arFilter = Array("IBLOCK_ID" => 4, "ID" => $productId, "ACTIVE" => "Y"); |
||||
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); |
||||
|
||||
if ($item = $res->GetNext()) { |
||||
// Получаем цену товара |
||||
$priceRow = \Bitrix\Catalog\PriceTable::getList([ |
||||
'filter' => [ |
||||
'PRODUCT_ID' => $item['ID'], |
||||
'CATALOG_GROUP_ID' => 1 |
||||
], |
||||
'select' => ['PRICE', 'CURRENCY'] |
||||
])->fetch(); |
||||
|
||||
// Получаем свойства товара |
||||
$CHEL = $item['PROPERTY_CHEL_VALUE']; |
||||
$SBROS_NUM = $item['PROPERTY_SBROS_NUM_VALUE']; |
||||
$RECYCLE_VOL = $item['PROPERTY_RECYCLE_VOL_VALUE']; |
||||
$ENERGY_USE = $item['PROPERTY_ENERGY_USE_VALUE']; |
||||
$reviews = $item['PROPERTY_REV_COMPLITE_VALUE']; |
||||
|
||||
// Рассчитываем рейтинг |
||||
$rating = 0; |
||||
if (function_exists('getAverageRating') && !empty($reviews)) { |
||||
$rating = getAverageRating($reviews); |
||||
} else { |
||||
$rating = 4; // Базовый рейтинг если нет отзывов |
||||
} |
||||
|
||||
// Получаем изображение |
||||
$imageSrc = ''; |
||||
if (!empty($item['PREVIEW_PICTURE'])) { |
||||
$imageSrc = CFile::GetPath($item['PREVIEW_PICTURE']); |
||||
} |
||||
?> |
||||
<div class="product"> |
||||
<a class="product__image" href="<?= $item['DETAIL_PAGE_URL'] ?>">
|
||||
<?php if ($imageSrc): ?> |
||||
<img src="<?= $imageSrc ?>" width="336" height="340" alt="<?= htmlspecialchars($item['NAME']) ?>">
|
||||
<?php else: ?> |
||||
<img src="<?= DEFAULT_TEMPLATE_PATH ?>/img/no-image.png" width="336" height="340" alt="<?= htmlspecialchars($item['NAME']) ?>">
|
||||
<?php endif; ?> |
||||
</a> |
||||
<div class="product__data"> |
||||
<div class="product__rating rating rating--<?= $rating ?>"><?= $rating ?>/5</div>
|
||||
<div class="product__info"> |
||||
<a class="product__title" href="<?= $item['DETAIL_PAGE_URL'] ?>"><?= $item['NAME'] ?></a>
|
||||
<?php if (!empty($item['PREVIEW_TEXT'])): ?> |
||||
<p class="product__text"><?= $item['PREVIEW_TEXT'] ?></p>
|
||||
<?php endif; ?> |
||||
</div> |
||||
<div class="product__info"> |
||||
<?php if (!empty($CHEL)): ?> |
||||
<p class="product__text">Пользователей: <span><?= $CHEL ?> чел</span></p>
|
||||
<?php endif; ?> |
||||
<?php if (!empty($RECYCLE_VOL)): ?> |
||||
<p class="product__text">Производительность: <span><?= $RECYCLE_VOL ?> м³/сут</span></p>
|
||||
<?php endif; ?> |
||||
<?php if (!empty($SBROS_NUM)): ?> |
||||
<p class="product__text">Сброс: <span><?= $SBROS_NUM ?> литров</span></p>
|
||||
<?php endif; ?> |
||||
<?php if (!empty($ENERGY_USE)): ?> |
||||
<p class="product__text">Питание: <span><?= $ENERGY_USE ?></span></p>
|
||||
<?php else: ?> |
||||
<p class="product__text">Питание: <span>не нужно</span></p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<?php if (!empty($priceRow['PRICE'])): ?> |
||||
<div class="product__price"><?= number_format($priceRow['PRICE'], 0, '', ' ') ?> ₽</div>
|
||||
<?php endif; ?> |
||||
<div class="product__btns"> |
||||
<form class="add-to-cart-form" action="<?=POST_FORM_ACTION_URI?>" method="post" enctype="multipart/form-data" style="display: inline;">
|
||||
<input type="hidden" name="PRODUCT_QUANTITY" value="1"> |
||||
<input type="hidden" name="action" value="ADD2BASKET"> |
||||
<input type="hidden" name="ajax_basket" value="Y"> |
||||
<input type="hidden" name="id" value="<?= $item['ID'] ?>">
|
||||
<button type="submit" class="button button--orange add-to-cart-button">Купить</button> |
||||
</form> |
||||
<button type="button" class="button button--outline"> |
||||
В корзину |
||||
</button> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<?php
|
||||
} |
||||
} |
||||
?> |
||||
</div> |
||||
</section> |
@ -0,0 +1,9 @@ |
||||
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); |
||||
|
||||
/** |
||||
* @var CBitrixComponentTemplate $this |
||||
* @var CatalogElementComponent $component |
||||
*/ |
||||
|
||||
$component = $this->getComponent(); |
||||
$arParams = $component->applyTemplateModifications(); |
@ -0,0 +1,64 @@ |
||||
<?php |
||||
|
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) |
||||
{ |
||||
die(); |
||||
} |
||||
|
||||
/** |
||||
* @var array $arResult |
||||
* @var array $arParams |
||||
* @var array $templateData |
||||
*/ |
||||
|
||||
// check compared state |
||||
if ($arParams['DISPLAY_COMPARE']) |
||||
{ |
||||
$compared = false; |
||||
$comparedIds = array(); |
||||
$item = $templateData['ITEM']; |
||||
|
||||
if (!empty($_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']]['ITEMS'])) |
||||
{ |
||||
if (!empty($item['JS_OFFERS']) && is_array($item['JS_OFFERS'])) |
||||
{ |
||||
foreach ($item['JS_OFFERS'] as $key => $offer) |
||||
{ |
||||
if (array_key_exists($offer['ID'], $_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']]['ITEMS'])) |
||||
{ |
||||
if ($key == $item['OFFERS_SELECTED']) |
||||
{ |
||||
$compared = true; |
||||
} |
||||
|
||||
$comparedIds[] = $offer['ID']; |
||||
} |
||||
} |
||||
} |
||||
elseif (array_key_exists($item['ID'], $_SESSION[$arParams['COMPARE_NAME']][$item['IBLOCK_ID']]['ITEMS'])) |
||||
{ |
||||
$compared = true; |
||||
} |
||||
} |
||||
|
||||
if ($templateData['JS_OBJ']) |
||||
{ |
||||
?> |
||||
<script> |
||||
BX.ready(BX.defer(function(){ |
||||
if (!!window.<?=$templateData['JS_OBJ']?>)
|
||||
{ |
||||
window.<?=$templateData['JS_OBJ']?>.setCompared('<?=$compared?>');
|
||||
<?php |
||||
if (!empty($comparedIds)): |
||||
?> |
||||
window.<?=$templateData['JS_OBJ']?>.setCompareInfo(<?=CUtil::PhpToJSObject($comparedIds, false, true)?>);
|
||||
<?php |
||||
endif; |
||||
?> |
||||
} |
||||
})); |
||||
</script> |
||||
<?php |
||||
} |
||||
} |
@ -0,0 +1,2 @@ |
||||
<?php |
||||
$MESS["CT_BCI_TPL_MESS_PRICE_SIMPLE_MODE"] = "from #PRICE# for #VALUE# #UNIT#"; |
@ -0,0 +1,2 @@ |
||||
<?php |
||||
$MESS["CT_BCI_TPL_MESS_PRICE_SIMPLE_MODE"] = "от #PRICE# за #VALUE# #UNIT#"; |
@ -0,0 +1,129 @@ |
||||
<?php |
||||
echo '<pre>'; |
||||
var_dump(2222); |
||||
print_r(2222); |
||||
echo '</pre>'; |
||||
die(); |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) |
||||
{ |
||||
die(); |
||||
} |
||||
|
||||
use Bitrix\Main; |
||||
use Bitrix\Catalog\PriceTable; |
||||
|
||||
/** |
||||
* @global CMain $APPLICATION |
||||
* @var array $arParams |
||||
* @var array $arResult |
||||
* @var CatalogProductsViewedComponent $component |
||||
* @var CBitrixComponentTemplate $this |
||||
* @var string $templateName |
||||
* @var string $componentPath |
||||
* @var string $templateFolder |
||||
*/ |
||||
|
||||
$this->setFrameMode(true); |
||||
|
||||
?> |
||||
|
||||
<?php if (isset($arResult['ITEM'])): ?> |
||||
<?php |
||||
$productId = $arResult['ITEM']['ID']; |
||||
$priceRow = PriceTable::getList([ |
||||
'filter' => [ |
||||
'PRODUCT_ID' => $productId, |
||||
'CATALOG_GROUP_ID' => 1 |
||||
], |
||||
'select' => ['PRICE', 'CURRENCY'] |
||||
])->fetch(); |
||||
|
||||
$salePrice = $arResult['ITEM']['PROPERTIES']['ATT_OLD_PRICE']['VALUE']; |
||||
$CHEL = $arResult['ITEM']['PROPERTIES']['CHEL']['VALUE']; |
||||
$SBROS_NUM = $arResult['ITEM']['PROPERTIES']['SBROS_NUM']['VALUE']; |
||||
$RECYCLE_VOL = $arResult['ITEM']['PROPERTIES']['RECYCLE_VOL']['VALUE']; |
||||
|
||||
$reviews = $arResult['ITEM']['PROPERTIES']['REV_COMPLITE']['VALUE']; |
||||
|
||||
$rating = getAverageRating($reviews); |
||||
|
||||
?> |
||||
<div class="product"> |
||||
<a class="product__image" href="<?= $arResult['ITEM']['DETAIL_PAGE_URL'] ?>">
|
||||
<img src="<?= $arResult['ITEM']['PREVIEW_PICTURE']['SRC'] ?>" width="336" height="340" alt="<?= $arResult['ITEM']['NAME'] ?>">
|
||||
</a> |
||||
<div class="product__data-list"> |
||||
<?php if (!empty($arResult['ITEM']['PREVIEW_TEXT'])): ?> |
||||
<p class="product__text"> |
||||
<?= $arResult['ITEM']['PREVIEW_TEXT'] ?> |
||||
</p> |
||||
<?php endif; ?> |
||||
<div class="product__info"> |
||||
<?php if (!empty($CHEL)): ?> |
||||
<p class="product__text"> |
||||
Пользователей: <span><?= $CHEL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($SBROS_NUM)): ?> |
||||
<p class="product__text"> |
||||
Залповый сброс, л: <span><?= $SBROS_NUM ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($RECYCLE_VOL)): ?> |
||||
<p class="product__text"> |
||||
Объем переработки, л/сутки: <span><?= $RECYCLE_VOL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<div class="product__rating rating rating--<?= $rating ?>"><?= $rating ?>/5</div>
|
||||
</div> |
||||
<div class="product__data"> |
||||
<div class="product__rating rating rating--<?= $rating ?>"><?= $rating ?>/5</div>
|
||||
<div class="product__info"> |
||||
<a class="product__title" href="<?= $arResult['ITEM']['DETAIL_PAGE_URL'] ?>">
|
||||
<?= $arResult['ITEM']['NAME'] ?> |
||||
</a> |
||||
<?php if (!empty($arResult['ITEM']['PREVIEW_TEXT'])): ?> |
||||
<p class="product__text"> |
||||
<?= $arResult['ITEM']['PREVIEW_TEXT'] ?> |
||||
</p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<div class="product__info"> |
||||
<?php if (!empty($CHEL)): ?> |
||||
<p class="product__text"> |
||||
Пользователей: <span><?= $CHEL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($SBROS_NUM)): ?> |
||||
<p class="product__text"> |
||||
Залповый сброс, л: <span><?= $SBROS_NUM ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($RECYCLE_VOL)): ?> |
||||
<p class="product__text"> |
||||
Объем переработки, л/сутки: <span><?= $RECYCLE_VOL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<?php if (!empty($priceRow['PRICE'])): ?> |
||||
<div class="product__price"> |
||||
<?= number_format($priceRow['PRICE'], 0, '', ' ') ?> ₽
|
||||
</div> |
||||
<?php endif; ?> |
||||
<form class="product__btns add-to-cart-form" action="<?=POST_FORM_ACTION_URI?>" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_QUANTITY_VARIABLE"]?>" value="1" class="form-control" id="QUANTITY<?= $arResult['ITEM']['ID'] ?>">
|
||||
<input type="hidden" name="<?echo $arParams["ACTION_VARIABLE"]?>" value="ADD2BASKET">
|
||||
<input type="hidden" name="ajax_basket" value="Y"> |
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_ID_VARIABLE"]?>" value="<?= $arResult['ITEM']['ID'] ?>" class="id-offer">
|
||||
<button type="button" class="button button--orange" data-product="<?= $arResult['ITEM']['NAME'] ?>">
|
||||
Купить |
||||
</button> |
||||
<button type="submit" class="button button--outline add-to-cart-button" name="<?echo $arParams["ACTION_VARIABLE"]."ADD2BASKET"?>">
|
||||
В корзину |
||||
</button> |
||||
</form> |
||||
</div> |
||||
</div> |
||||
|
||||
<?php endif; ?> |
@ -0,0 +1,72 @@ |
||||
<?php |
||||
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); |
||||
$this->setFrameMode(true); |
||||
if (isset($arResult['ITEM'])): |
||||
$productId = $arResult['ITEM']['ID']; |
||||
$priceRow = Bitrix\Catalog\PriceTable::getList([ |
||||
'filter' => [ |
||||
'PRODUCT_ID' => $productId, |
||||
'CATALOG_GROUP_ID' => 1 |
||||
], |
||||
'select' => ['PRICE', 'CURRENCY'] |
||||
])->fetch(); |
||||
$salePrice = $arResult['ITEM']['PROPERTIES']['ATT_OLD_PRICE']['VALUE']; |
||||
$CHEL = $arResult['ITEM']['PROPERTIES']['CHEL']['VALUE']; |
||||
$SBROS_NUM = $arResult['ITEM']['PROPERTIES']['SBROS_NUM']['VALUE']; |
||||
$RECYCLE_VOL = $arResult['ITEM']['PROPERTIES']['RECYCLE_VOL']['VALUE']; |
||||
$reviews = $arResult['ITEM']['PROPERTIES']['REV_COMPLITE']['VALUE']; |
||||
$rating = function_exists('getAverageRating') ? getAverageRating($reviews) : 0; |
||||
?> |
||||
<div class="product"> |
||||
<a class="product__image" href="<?= $arResult['ITEM']['DETAIL_PAGE_URL'] ?>">
|
||||
<img src="<?= $arResult['ITEM']['PREVIEW_PICTURE']['SRC'] ?>" width="336" height="340" alt="<?= $arResult['ITEM']['NAME'] ?>">
|
||||
</a> |
||||
<div class="product__data"> |
||||
<div class="product__rating rating rating--<?= $rating ?>"><?= $rating ?>/5</div>
|
||||
<div class="product__info"> |
||||
<a class="product__title" href="<?= $arResult['ITEM']['DETAIL_PAGE_URL'] ?>">
|
||||
<?= $arResult['ITEM']['NAME'] ?> |
||||
</a> |
||||
<?php if (!empty($arResult['ITEM']['PREVIEW_TEXT'])): ?> |
||||
<p class="product__text"> |
||||
<?= $arResult['ITEM']['PREVIEW_TEXT'] ?> |
||||
</p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<div class="product__info"> |
||||
<?php if (!empty($CHEL)): ?> |
||||
<p class="product__text"> |
||||
Пользователей: <span><?= $CHEL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($SBROS_NUM)): ?> |
||||
<p class="product__text"> |
||||
Залповый сброс, л: <span><?= $SBROS_NUM ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
<?php if (!empty($RECYCLE_VOL)): ?> |
||||
<p class="product__text"> |
||||
Объем переработки, л/сутки: <span><?= $RECYCLE_VOL ?></span>
|
||||
</p> |
||||
<?php endif; ?> |
||||
</div> |
||||
<?php if (!empty($priceRow['PRICE'])): ?> |
||||
<div class="product__price"> |
||||
<?= number_format($priceRow['PRICE'], 0, '', ' ') ?> ₽
|
||||
</div> |
||||
<?php endif; ?> |
||||
<form class="product__btns add-to-cart-form" action="<?=POST_FORM_ACTION_URI?>" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_QUANTITY_VARIABLE"]?>" value="1" class="form-control" id="QUANTITY<?= $arResult['ITEM']['ID'] ?>">
|
||||
<input type="hidden" name="<?echo $arParams["ACTION_VARIABLE"]?>" value="ADD2BASKET">
|
||||
<input type="hidden" name="ajax_basket" value="Y"> |
||||
<input type="hidden" name="<?echo $arParams["PRODUCT_ID_VARIABLE"]?>" value="<?= $arResult['ITEM']['ID'] ?>" class="id-offer">
|
||||
<button type="button" class="button button--orange" data-product="<?= $arResult['ITEM']['NAME'] ?>">
|
||||
Купить |
||||
</button> |
||||
<button type="submit" class="button button--outline add-to-cart-button" name="<?echo $arParams["ACTION_VARIABLE"]."ADD2BASKET"?>">
|
||||
В корзину |
||||
</button> |
||||
</form> |
||||
</div> |
||||
</div> |
||||
<?php endif; ?>
|