%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/catalog.top/templates/bootstrap_v4/banner/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/catalog.top/templates/bootstrap_v4/banner/template.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var CBitrixComponentTemplate $this */
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @var string $strElementEdit */
/** @var string $strElementDelete */
/** @var array $arElementDeleteParams */
/** @var array $arSkuTemplate */
/** @var array $templateData */
$intCount = count($arResult['ITEMS']);
//$strItemWidth = 100/$intCount;
$strAllWidth = 100*$intCount;
$arRowIDs = array();
$strContID = 'js_catalog_top_banner_s'.$this->randString();
?>
<div class="catalog-top-banner mb-4 <? echo $templateData['TEMPLATE_CLASS']; ?>" id="<? echo $strContID; ?>">
<div class="catalog-top-banner-slider" style="width:<? echo $strAllWidth; ?>%;">
<?
$boolFirst = true;
foreach ($arResult['ITEMS'] as $key => $arItem)
{
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], $strElementEdit);
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], $strElementDelete, $arElementDeleteParams);
$strMainID = $this->GetEditAreaId($arItem['ID']);
$arRowIDs[] = $strMainID;
$arItemIDs = array(
'ID' => $strMainID,
'PICT' => $strMainID.'_pict',
'QUANTITY' => $strMainID.'_quantity',
'QUANTITY_DOWN' => $strMainID.'_quant_down',
'QUANTITY_UP' => $strMainID.'_quant_up',
'QUANTITY_MEASURE' => $strMainID.'_quant_measure',
'BUY_LINK' => $strMainID.'_buy_link',
'PRICE' => $strMainID.'_price',
'OLD_PRICE' => $strMainID.'_old_price',
'DSC_PERC' => $strMainID.'_dsc_perc',
'BASKET_PROP_DIV' => $strMainID.'_basket_prop',
'NOT_AVAILABLE_MESS' => $strMainID.'_not_avail'
);
$strObName = 'ob'.preg_replace("/[^a-zA-Z0-9_]/", "x", $strMainID);
$productTitle = (
isset($arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']) && $arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != ''
? $arItem['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
: $arItem['NAME']
);
$imgTitle = (
isset($arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']) && $arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] != ''
? $arItem['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']
: $arItem['NAME']
);
$showPrice = false;
$price = null;
if ($arItem['PRODUCT']['TYPE'] === null)
{
if (!empty($arItem['MIN_PRICE']) && is_array($arItem['MIN_PRICE']))
{
$showPrice = true;
$price = $arItem['MIN_PRICE'];
$price['PERCENT'] = $price['DISCOUNT_DIFF_PERCENT'];
$price['PRINT_BASE_PRICE'] = $price['PRINT_VALUE'];
$price['PRINT_PRICE'] = $price['PRINT_DISCOUNT_VALUE'];
}
}
else
{
if (isset($arItem['ITEM_START_PRICE']) && is_array($arItem['ITEM_START_PRICE']))
{
$showPrice = true;
$price = $arItem['ITEM_START_PRICE'];
}
elseif (!empty($arItem['ITEM_PRICES']) && isset($arItem['ITEM_PRICES'][$arItem['ITEM_PRICE_SELECTED']]))
{
$showPrice = true;
$price = $arItem['ITEM_PRICES'][$arItem['ITEM_PRICE_SELECTED']];
}
}
?>
<div id="<? echo $strMainID; ?>" class="catalog-top-banner-slide<? echo ($boolFirst ? ' active' : ''); ?>">
<div class="catalog-top-banner-img-block">
<div class="catalog-top-banner-img-canvas">
<div class="catalog-top-banner-img-understratum"></div>
<a id="<? echo $arItemIDs['PICT']; ?>"
href="<? echo $arItem['DETAIL_PAGE_URL']; ?>"
class="catalog-top-banner-img-element"
style="background-image: url(<? echo $arItem['PREVIEW_PICTURE']['SRC']; ?>);"
title="<? echo $imgTitle; ?>">
<?
if ($showPrice && 'Y' == $arParams['SHOW_DISCOUNT_PERCENT'])
{
?>
<span id="<? echo $arItemIDs['DSC_PERC']; ?>" class="catalog-top-banner-disc right bottom" style="display:<?=($price['PERCENT'] > 0 ? '' : 'none'); ?>;">-<?=$price['PERCENT']; ?>%</span>
<?
}
if ($arItem['LABEL'])
{
?>
<span class="catalog-top-banner-stick average left top" title="<? echo $arItem['LABEL_VALUE']; ?>"><? echo $arItem['LABEL_VALUE']; ?></span>
<?
}
?>
</a>
</div>
</div>
<div class="catalog-top-banner-info-block">
<h2 class="catalog-top-banner-title">
<a href="<? echo $arItem['DETAIL_PAGE_URL']; ?>" title="<? echo $productTitle; ?>"><? echo $productTitle; ?></a>
</h2>
<?
if ('' != $arItem['PREVIEW_TEXT'])
{
?>
<div class="catalog-top-banner-description" itemprop="description"><? echo $arItem['PREVIEW_TEXT']; ?></div>
<?
}
?>
<div class="catalog-top-banner-price-container">
<div class="catalog-top-banner-price-container-background"></div>
<div class="catalog-top-banner-price-left-block">
<?
if ($showPrice)
{
if ('N' == $arParams['PRODUCT_DISPLAY_MODE'] && isset($arItem['OFFERS']) && !empty($arItem['OFFERS']))
{
?>
<div id="<? echo $arItemIDs['PRICE']; ?>" class="catalog-top-banner-price">
<?
echo GetMessage(
'CT_BCT_TPL_MESS_PRICE_SIMPLE_MODE_SHORT',
array(
'#PRICE#' => $price['PRINT_PRICE']
)
);
?>
</div>
<?
}
else
{
$boolOldPrice = ('Y' == $arParams['SHOW_OLD_PRICE'] && $price['PRICE'] < $price['BASE_PRICE']);
?>
<div id="<? echo $arItemIDs['PRICE']; ?>" class="catalog-top-banner-price">
<div>
<?
echo $price['PRINT_PRICE'];
if ($boolOldPrice)
{
?>
<div id="<? echo $arItemIDs['OLD_PRICE']; ?>" class="catalog-top-banner-price-old"><?=$price['PRINT_BASE_PRICE'];
?></div>
<?
}
?>
</div>
</div>
<?
}
}
if (isset($arItem['OFFERS']) && !empty($arItem['OFFERS']))
{
?>
<a href="<? echo $arItem['DETAIL_PAGE_URL']; ?>" class="btn btn-primary">
<?
echo ('' != $arParams['MESS_BTN_DETAIL'] ? $arParams['MESS_BTN_DETAIL'] : GetMessage('CT_BCT_TPL_MESS_BTN_DETAIL'));
?>
</a>
<?
}
else
{
if ($arItem['CAN_BUY'])
{
?>
<a id="<? echo $arItemIDs['BUY_LINK']; ?>" href="javascript:void(0)" rel="nofollow" class="btn btn-primary">
<? if ($arParams['ADD_TO_BASKET_ACTION'] == 'BUY')
{
echo ('' != $arParams['MESS_BTN_BUY'] ? $arParams['MESS_BTN_BUY'] : GetMessage('CT_BCT_TPL_MESS_BTN_BUY'));
}
else
{
echo ('' != $arParams['MESS_BTN_ADD_TO_BASKET'] ? $arParams['MESS_BTN_ADD_TO_BASKET'] : GetMessage('CT_BCT_TPL_MESS_BTN_ADD_TO_BASKET'));
}
?>
</a>
<?
}
else
{
?>
<span id="<? echo $arItemIDs['NOT_AVAILABLE_MESS']; ?>" class="bx_notavailable">
<?
echo ('' != $arParams['MESS_NOT_AVAILABLE'] ? $arParams['MESS_NOT_AVAILABLE'] : GetMessage('CT_BCT_TPL_MESS_PRODUCT_NOT_AVAILABLE'));
?>
</span>
<?
}
}
?>
</div>
<svg class="catalog-top-banner-price-right-block" preserveAspectRatio="none" width="15" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 100">
<polygon fill-rule="evenodd" points="0 0 15 50 0 100"></polygon>
</svg>
</div>
</div>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "<?=$productTitle; ?>",
"image": {
"@type": "ImageObject",
"caption": "<?=$productTitle; ?>",
"contentUrl": "<?=$arItem['PREVIEW_PICTURE']['SRC']; ?>"
},
<?=$arItem['PREVIEW_TEXT'] != '' ? '"description": "'.$arItem['PREVIEW_TEXT'].'",' : "" ?>
"offers": {
"@type": "Offer",
<?=$price['CURRENCY'] != '' ? '"priceCurrency": "'.$price['CURRENCY'].'",' : "" ?>
<?=$price['PRICE'] != '' ? '"price": "'.$price['PRICE'].'"' : "" ?>
}
}
</script>
</div>
<?
if (!isset($arItem['OFFERS']) || empty($arItem['OFFERS']))
{
$emptyProductProperties = empty($arItem['PRODUCT_PROPERTIES']);
if ('Y' == $arParams['ADD_PROPERTIES_TO_BASKET'] && !$emptyProductProperties)
{
?>
<div id="<? echo $arItemIDs['BASKET_PROP_DIV']; ?>" style="display: none;">
<?
if (!empty($arItem['PRODUCT_PROPERTIES_FILL']))
{
foreach ($arItem['PRODUCT_PROPERTIES_FILL'] as $propID => $propInfo)
{
?>
<input type="hidden" name="<? echo $arParams['PRODUCT_PROPS_VARIABLE']; ?>[<? echo $propID; ?>]" value="<? echo htmlspecialcharsbx($propInfo['ID']); ?>"><?
if (isset($arItem['PRODUCT_PROPERTIES'][$propID]))
unset($arItem['PRODUCT_PROPERTIES'][$propID]);
}
}
$emptyProductProperties = empty($arItem['PRODUCT_PROPERTIES']);
if (!$emptyProductProperties)
{
?>
<table>
<?
foreach ($arItem['PRODUCT_PROPERTIES'] as $propID => $propInfo)
{
?>
<tr><td><? echo $arItem['PROPERTIES'][$propID]['NAME']; ?></td>
<td>
<?
if(
'L' == $arItem['PROPERTIES'][$propID]['PROPERTY_TYPE']
&& 'C' == $arItem['PROPERTIES'][$propID]['LIST_TYPE']
)
{
foreach($propInfo['VALUES'] as $valueID => $value)
{
?><label><input type="radio" name="<? echo $arParams['PRODUCT_PROPS_VARIABLE']; ?>[<? echo $propID; ?>]" value="<? echo $valueID; ?>" <? echo ($valueID == $propInfo['SELECTED'] ? '"checked"' : ''); ?>><? echo $value; ?></label><br><?
}
}
else
{
?><select name="<? echo $arParams['PRODUCT_PROPS_VARIABLE']; ?>[<? echo $propID; ?>]"><?
foreach($propInfo['VALUES'] as $valueID => $value)
{
?><option value="<? echo $valueID; ?>" <? echo ($valueID == $propInfo['SELECTED'] ? '"selected"' : ''); ?>><? echo $value; ?></option><?
}
?></select><?
}
?>
</td></tr>
<?
}
?>
</table>
<?
}
?>
</div>
<?
}
$arJSParams = array(
'PRODUCT_TYPE' => $arItem['CATALOG_TYPE'],
'SHOW_QUANTITY' => false,
'SHOW_ADD_BASKET_BTN' => false,
'SHOW_BUY_BTN' => true,
'SHOW_ABSENT' => true,
'PRODUCT' => array(
'ID' => $arItem['ID'],
'NAME' => $productTitle,
'PICT' => $arItem['PREVIEW_PICTURE'],
'CAN_BUY' => $arItem["CAN_BUY"],
'SUBSCRIPTION' => ('Y' == $arItem['CATALOG_SUBSCRIPTION']),
'CHECK_QUANTITY' => $arItem['CHECK_QUANTITY'],
'MAX_QUANTITY' => $arItem['CATALOG_QUANTITY'],
'STEP_QUANTITY' => $arItem['CATALOG_MEASURE_RATIO'],
'QUANTITY_FLOAT' => is_double($arItem['CATALOG_MEASURE_RATIO']),
'ADD_URL' => $arItem['~ADD_URL']
),
'VISUAL' => array(
'ID' => $arItemIDs['ID'],
'PICT_ID' => $arItemIDs['PICT'],
'QUANTITY_ID' => $arItemIDs['QUANTITY'],
'QUANTITY_UP_ID' => $arItemIDs['QUANTITY_UP'],
'QUANTITY_DOWN_ID' => $arItemIDs['QUANTITY_DOWN'],
'PRICE_ID' => $arItemIDs['PRICE'],
'BUY_ID' => $arItemIDs['BUY_LINK'],
'BASKET_PROP_DIV' => $arItemIDs['BASKET_PROP_DIV']
),
'BASKET' => array(
'ADD_PROPS' => ('Y' == $arParams['ADD_PROPERTIES_TO_BASKET']),
'QUANTITY' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
'PROPS' => $arParams['PRODUCT_PROPS_VARIABLE'],
'EMPTY_PROPS' => $emptyProductProperties
)
);
?><script type="text/javascript">
var <? echo $strObName; ?> = new JCCatalogTopBanner(<? echo CUtil::PhpToJSObject($arJSParams, false, true); ?>);
</script><?
}
$boolFirst = false;
}
?>
</div>
<?
if (1 < $intCount)
{
$arJSParams = array(
'cont' => $strContID,
'arrows' => array(
'id' => $strContID.'_arrows',
'className' => 'catalog-top-banner-controls'
),
'left' => array(
'id' => $strContID.'_left_arr',
'className' => 'catalog-top-banner-arrow-left'
),
'right' => array(
'id' => $strContID.'_right_arr',
'className' => 'catalog-top-banner-arrow-right'
),
'items' => $arRowIDs,
'rotate' => (0 < $arParams['ROTATE_TIMER']),
'rotateTimer' => $arParams['ROTATE_TIMER']
);
if ('Y' == $arParams['SHOW_PAGINATION'])
{
$arJSParams['pagination'] = array(
'id' => $strContID.'_pagination',
'className' => 'catalog-top-banner-pagination'
);
}
?>
<script type="text/javascript">
var ob<? echo $strContID; ?> = new JCCatalogTopBannerList(<? echo CUtil::PhpToJSObject($arJSParams, false, true); ?>);
</script>
<?
}
?>
</div>