%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/sale.basket.basket/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/sale.basket.basket/templates/.default/template.php |
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); use Bitrix\Main; use Bitrix\Main\Localization\Loc; \Bitrix\Main\UI\Extension::load("ui.fonts.ruble"); /** * @var array $arParams * @var array $arResult * @var string $templateFolder * @var string $templateName * @var CMain $APPLICATION * @var CBitrixBasketComponent $component * @var CBitrixComponentTemplate $this * @var array $giftParameters */ $documentRoot = Main\Application::getDocumentRoot(); if (empty($arParams['TEMPLATE_THEME'])) { $arParams['TEMPLATE_THEME'] = Main\ModuleManager::isModuleInstalled('bitrix.eshop') ? 'site' : 'blue'; } if ($arParams['TEMPLATE_THEME'] === 'site') { $templateId = Main\Config\Option::get('main', 'wizard_template_id', 'eshop_bootstrap', $component->getSiteId()); $templateId = preg_match('/^eshop_adapt/', $templateId) ? 'eshop_adapt' : $templateId; $arParams['TEMPLATE_THEME'] = Main\Config\Option::get('main', 'wizard_'.$templateId.'_theme_id', 'blue', $component->getSiteId()); } if (!empty($arParams['TEMPLATE_THEME'])) { if (!is_file($documentRoot.'/bitrix/css/main/themes/'.$arParams['TEMPLATE_THEME'].'/style.css')) { $arParams['TEMPLATE_THEME'] = 'blue'; } } if (!isset($arParams['DISPLAY_MODE']) || !in_array($arParams['DISPLAY_MODE'], array('extended', 'compact'))) { $arParams['DISPLAY_MODE'] = 'extended'; } $arParams['USE_DYNAMIC_SCROLL'] = isset($arParams['USE_DYNAMIC_SCROLL']) && $arParams['USE_DYNAMIC_SCROLL'] === 'N' ? 'N' : 'Y'; $arParams['SHOW_FILTER'] = isset($arParams['SHOW_FILTER']) && $arParams['SHOW_FILTER'] === 'N' ? 'N' : 'Y'; $arParams['PRICE_DISPLAY_MODE'] = isset($arParams['PRICE_DISPLAY_MODE']) && $arParams['PRICE_DISPLAY_MODE'] === 'N' ? 'N' : 'Y'; if (!isset($arParams['TOTAL_BLOCK_DISPLAY']) || !is_array($arParams['TOTAL_BLOCK_DISPLAY'])) { $arParams['TOTAL_BLOCK_DISPLAY'] = array('top'); } if (empty($arParams['PRODUCT_BLOCKS_ORDER'])) { $arParams['PRODUCT_BLOCKS_ORDER'] = 'props,sku,columns'; } if (is_string($arParams['PRODUCT_BLOCKS_ORDER'])) { $arParams['PRODUCT_BLOCKS_ORDER'] = explode(',', $arParams['PRODUCT_BLOCKS_ORDER']); } $arParams['USE_PRICE_ANIMATION'] = isset($arParams['USE_PRICE_ANIMATION']) && $arParams['USE_PRICE_ANIMATION'] === 'N' ? 'N' : 'Y'; $arParams['EMPTY_BASKET_HINT_PATH'] = isset($arParams['EMPTY_BASKET_HINT_PATH']) ? (string)$arParams['EMPTY_BASKET_HINT_PATH'] : '/'; $arParams['USE_ENHANCED_ECOMMERCE'] = isset($arParams['USE_ENHANCED_ECOMMERCE']) && $arParams['USE_ENHANCED_ECOMMERCE'] === 'Y' ? 'Y' : 'N'; $arParams['DATA_LAYER_NAME'] = isset($arParams['DATA_LAYER_NAME']) ? trim($arParams['DATA_LAYER_NAME']) : 'dataLayer'; $arParams['BRAND_PROPERTY'] = isset($arParams['BRAND_PROPERTY']) ? trim($arParams['BRAND_PROPERTY']) : ''; if ($arParams['USE_GIFTS'] === 'Y') { CBitrixComponent::includeComponentClass('bitrix:sale.products.gift.basket'); $giftParameters = array( 'SHOW_PRICE_COUNT' => 1, 'PRODUCT_SUBSCRIPTION' => 'N', 'PRODUCT_ID_VARIABLE' => 'id', 'USE_PRODUCT_QUANTITY' => 'N', 'ACTION_VARIABLE' => 'actionGift', 'ADD_PROPERTIES_TO_BASKET' => 'Y', 'PARTIAL_PRODUCT_PROPERTIES' => 'Y', 'BASKET_URL' => $APPLICATION->GetCurPage(), 'APPLIED_DISCOUNT_LIST' => $arResult['APPLIED_DISCOUNT_LIST'], 'FULL_DISCOUNT_LIST' => $arResult['FULL_DISCOUNT_LIST'], 'TEMPLATE_THEME' => $arParams['TEMPLATE_THEME'], 'PRICE_VAT_INCLUDE' => $arParams['PRICE_VAT_SHOW_VALUE'], 'CACHE_GROUPS' => $arParams['CACHE_GROUPS'], 'BLOCK_TITLE' => $arParams['GIFTS_BLOCK_TITLE'], 'HIDE_BLOCK_TITLE' => $arParams['GIFTS_HIDE_BLOCK_TITLE'], 'TEXT_LABEL_GIFT' => $arParams['GIFTS_TEXT_LABEL_GIFT'], 'DETAIL_URL' => isset($arParams['GIFTS_DETAIL_URL']) ? $arParams['GIFTS_DETAIL_URL'] : null, 'PRODUCT_QUANTITY_VARIABLE' => $arParams['GIFTS_PRODUCT_QUANTITY_VARIABLE'], 'PRODUCT_PROPS_VARIABLE' => $arParams['GIFTS_PRODUCT_PROPS_VARIABLE'], 'SHOW_OLD_PRICE' => $arParams['GIFTS_SHOW_OLD_PRICE'], 'SHOW_DISCOUNT_PERCENT' => $arParams['GIFTS_SHOW_DISCOUNT_PERCENT'], 'DISCOUNT_PERCENT_POSITION' => $arParams['DISCOUNT_PERCENT_POSITION'], 'MESS_BTN_BUY' => $arParams['GIFTS_MESS_BTN_BUY'], 'MESS_BTN_DETAIL' => $arParams['GIFTS_MESS_BTN_DETAIL'], 'CONVERT_CURRENCY' => $arParams['GIFTS_CONVERT_CURRENCY'], 'HIDE_NOT_AVAILABLE' => $arParams['GIFTS_HIDE_NOT_AVAILABLE'], 'PRODUCT_ROW_VARIANTS' => '', 'PAGE_ELEMENT_COUNT' => 0, 'DEFERRED_PRODUCT_ROW_VARIANTS' => \Bitrix\Main\Web\Json::encode( SaleProductsGiftBasketComponent::predictRowVariants( $arParams['GIFTS_PAGE_ELEMENT_COUNT'], $arParams['GIFTS_PAGE_ELEMENT_COUNT'] ) ), 'DEFERRED_PAGE_ELEMENT_COUNT' => $arParams['GIFTS_PAGE_ELEMENT_COUNT'], 'ADD_TO_BASKET_ACTION' => 'BUY', 'PRODUCT_DISPLAY_MODE' => 'Y', 'PRODUCT_BLOCKS_ORDER' => isset($arParams['GIFTS_PRODUCT_BLOCKS_ORDER']) ? $arParams['GIFTS_PRODUCT_BLOCKS_ORDER'] : '', 'SHOW_SLIDER' => isset($arParams['GIFTS_SHOW_SLIDER']) ? $arParams['GIFTS_SHOW_SLIDER'] : '', 'SLIDER_INTERVAL' => isset($arParams['GIFTS_SLIDER_INTERVAL']) ? $arParams['GIFTS_SLIDER_INTERVAL'] : '', 'SLIDER_PROGRESS' => isset($arParams['GIFTS_SLIDER_PROGRESS']) ? $arParams['GIFTS_SLIDER_PROGRESS'] : '', 'LABEL_PROP_POSITION' => $arParams['LABEL_PROP_POSITION'], 'USE_ENHANCED_ECOMMERCE' => $arParams['USE_ENHANCED_ECOMMERCE'], 'DATA_LAYER_NAME' => $arParams['DATA_LAYER_NAME'], 'BRAND_PROPERTY' => $arParams['BRAND_PROPERTY'] ); } \CJSCore::Init(array('fx', 'popup', 'ajax')); $this->addExternalCss('/bitrix/css/main/bootstrap.css'); $this->addExternalCss($templateFolder.'/themes/'.$arParams['TEMPLATE_THEME'].'/style.css'); $this->addExternalJs($templateFolder.'/js/mustache.js'); $this->addExternalJs($templateFolder.'/js/action-pool.js'); $this->addExternalJs($templateFolder.'/js/filter.js'); $this->addExternalJs($templateFolder.'/js/component.js'); $mobileColumns = isset($arParams['COLUMNS_LIST_MOBILE']) ? $arParams['COLUMNS_LIST_MOBILE'] : $arParams['COLUMNS_LIST']; $mobileColumns = array_fill_keys($mobileColumns, true); $jsTemplates = new Main\IO\Directory($documentRoot.$templateFolder.'/js-templates'); /** @var Main\IO\File $jsTemplate */ foreach ($jsTemplates->getChildren() as $jsTemplate) { include($jsTemplate->getPath()); } $displayModeClass = $arParams['DISPLAY_MODE'] === 'compact' ? ' basket-items-list-wrapper-compact' : ''; if (empty($arResult['ERROR_MESSAGE'])) { if ($arParams['USE_GIFTS'] === 'Y' && $arParams['GIFTS_PLACE'] === 'TOP') { $APPLICATION->IncludeComponent( 'bitrix:sale.products.gift.basket', '.default', $giftParameters, $component ); } if ($arResult['BASKET_ITEM_MAX_COUNT_EXCEEDED']) { ?> <div id="basket-item-message"> <?=Loc::getMessage('SBB_BASKET_ITEM_MAX_COUNT_EXCEEDED', array('#PATH#' => $arParams['PATH_TO_BASKET']))?> </div> <? } ?> <div id="basket-root" class="bx-basket bx-<?=$arParams['TEMPLATE_THEME']?> bx-step-opacity" style="opacity: 0;"> <? if ( $arParams['BASKET_WITH_ORDER_INTEGRATION'] !== 'Y' && in_array('top', $arParams['TOTAL_BLOCK_DISPLAY']) ) { ?> <div class="row"> <div class="col-xs-12" data-entity="basket-total-block"></div> </div> <? } ?> <div class="row"> <div class="col-xs-12"> <div class="alert alert-warning alert-dismissable" id="basket-warning" style="display: none;"> <span class="close" data-entity="basket-items-warning-notification-close">×</span> <div data-entity="basket-general-warnings"></div> <div data-entity="basket-item-warnings"> <?=Loc::getMessage('SBB_BASKET_ITEM_WARNING')?> </div> </div> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="basket-items-list-wrapper basket-items-list-wrapper-height-fixed basket-items-list-wrapper-light<?=$displayModeClass?>" id="basket-items-list-wrapper"> <div class="basket-items-list-header" data-entity="basket-items-list-header"> <div class="basket-items-search-field" data-entity="basket-filter"> <div class="form has-feedback"> <input type="text" class="form-control" placeholder="<?=Loc::getMessage('SBB_BASKET_FILTER')?>" data-entity="basket-filter-input"> <span class="form-control-feedback basket-clear" data-entity="basket-filter-clear-btn"></span> </div> </div> <div class="basket-items-list-header-filter"> <a href="javascript:void(0)" class="basket-items-list-header-filter-item active" data-entity="basket-items-count" data-filter="all" style="display: none;"></a> <a href="javascript:void(0)" class="basket-items-list-header-filter-item" data-entity="basket-items-count" data-filter="similar" style="display: none;"></a> <a href="javascript:void(0)" class="basket-items-list-header-filter-item" data-entity="basket-items-count" data-filter="warning" style="display: none;"></a> <a href="javascript:void(0)" class="basket-items-list-header-filter-item" data-entity="basket-items-count" data-filter="delayed" style="display: none;"></a> <a href="javascript:void(0)" class="basket-items-list-header-filter-item" data-entity="basket-items-count" data-filter="not-available" style="display: none;"></a> </div> </div> <div class="basket-items-list-container" id="basket-items-list-container"> <div class="basket-items-list-overlay" id="basket-items-list-overlay" style="display: none;"></div> <div class="basket-items-list" id="basket-item-list"> <div class="basket-search-not-found" id="basket-item-list-empty-result" style="display: none;"> <div class="basket-search-not-found-icon"></div> <div class="basket-search-not-found-text"> <?=Loc::getMessage('SBB_FILTER_EMPTY_RESULT')?> </div> </div> <table class="basket-items-list-table" id="basket-item-table"></table> </div> </div> </div> </div> </div> <? if ( $arParams['BASKET_WITH_ORDER_INTEGRATION'] !== 'Y' && in_array('bottom', $arParams['TOTAL_BLOCK_DISPLAY']) ) { ?> <div class="row"> <div class="col-xs-12" data-entity="basket-total-block"></div> </div> <? } ?> </div> <? if (!empty($arResult['CURRENCIES']) && Main\Loader::includeModule('currency')) { CJSCore::Init('currency'); ?> <script> BX.Currency.setCurrencies(<?=CUtil::PhpToJSObject($arResult['CURRENCIES'], false, true, true)?>); </script> <? } $signer = new \Bitrix\Main\Security\Sign\Signer; $signedTemplate = $signer->sign($templateName, 'sale.basket.basket'); $signedParams = $signer->sign(base64_encode(serialize($arParams)), 'sale.basket.basket'); $messages = Loc::loadLanguageFile(__FILE__); ?> <script> BX.message(<?=CUtil::PhpToJSObject($messages)?>); BX.Sale.BasketComponent.init({ result: <?=CUtil::PhpToJSObject($arResult, false, false, true)?>, params: <?=CUtil::PhpToJSObject($arParams)?>, template: '<?=CUtil::JSEscape($signedTemplate)?>', signedParamsString: '<?=CUtil::JSEscape($signedParams)?>', siteId: '<?=CUtil::JSEscape($component->getSiteId())?>', templateFolder: '<?=CUtil::JSEscape($templateFolder)?>' }); </script> <? if ($arParams['USE_GIFTS'] === 'Y' && $arParams['GIFTS_PLACE'] === 'BOTTOM') { $APPLICATION->IncludeComponent( 'bitrix:sale.products.gift.basket', '.default', $giftParameters, $component ); } } elseif ($arResult['EMPTY_BASKET']) { include(Main\Application::getDocumentRoot().$templateFolder.'/empty.php'); } else { ShowError($arResult['ERROR_MESSAGE']); }