1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
singlerefreshstrategy.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Sale\Basket;
4
5
use Bitrix\Main\ArgumentNullException;
6
use Bitrix\Main\ObjectNotFoundException;
7
use Bitrix\Sale\BasketBase;
8
9
class
SingleRefreshStrategy
extends
RefreshStrategy
10
{
11
public
function
__construct
(
array
$data
=
null
)
12
{
13
parent::__construct(
$data
);
14
15
if
(empty($this->data[
'BASKET_ITEM'
]) && empty($this->data[
'BASKET_ITEM_CODE'
]))
16
{
17
throw
new
ArgumentNullException
(
'Parameters "BASKET_ITEM" or "BASKET_ITEM_CODE" should not be empty.'
);
18
}
19
}
20
21
protected
function
extractItem
(
BasketBase
$basket)
22
{
23
$basketItem =
null
;
24
25
if
(isset($this->data[
'BASKET_ITEM'
]) && $this->data[
'BASKET_ITEM'
] instanceof
BasketItem
)
26
{
27
$basketItem = $this->data[
'BASKET_ITEM'
];
28
}
29
elseif
(!empty($this->data[
'BASKET_ITEM_CODE'
]))
30
{
31
$basketItem = $basket->
getItemByBasketCode
($this->data[
'BASKET_ITEM_CODE'
]);
32
}
33
34
return
$basketItem;
35
}
36
37
protected
function
getItemToRefresh
(
BasketBase
$basket)
38
{
39
$basketItem = $this->
extractItem
($basket);
40
if
($basketItem ===
null
)
41
{
42
throw
new
ObjectNotFoundException
(
'Entity "BasketItem" not found'
);
43
}
44
45
$basketRefreshStart = time();
46
$refreshGap
= $this->
getBasketRefreshGapTime
();
47
48
$basketItemLastRefresh = $this->getBasketItemRefreshTimestamp($basketItem);
49
if
($basketRefreshStart - $basketItemLastRefresh >=
$refreshGap
)
50
{
51
return
$basketItem;
52
}
53
54
return
null
;
55
}
56
57
protected
function
getProductData
(
BasketBase
$basket)
58
{
59
$itemToRefresh = $this->
getItemToRefresh
($basket);
60
61
$items
=
array
();
62
if
(!empty($itemToRefresh))
63
{
64
$items
[] = $itemToRefresh;
65
}
66
67
return
$this->
getProviderResult
($basket,
$items
);
68
}
69
}
Bitrix\Main\ArgumentNullException
Определения
ArgumentNullException.php:9
Bitrix\Main\ObjectNotFoundException
Определения
ObjectNotFoundException.php:9
Bitrix\Sale\Basket\BaseRefreshStrategy\$data
$data
Определения
baserefreshstrategy.php:24
Bitrix\Sale\Basket\BaseRefreshStrategy\$refreshGap
$refreshGap
Определения
baserefreshstrategy.php:25
Bitrix\Sale\Basket\BaseRefreshStrategy\getBasketRefreshGapTime
getBasketRefreshGapTime()
Определения
baserefreshstrategy.php:54
Bitrix\Sale\Basket\BaseRefreshStrategy\getProviderResult
getProviderResult(BasketBase $basket, $itemsToRefresh=array())
Определения
baserefreshstrategy.php:373
Bitrix\Sale\Basket\RefreshStrategy
Определения
refreshstrategy.php:12
Bitrix\Sale\Basket\SingleRefreshStrategy
Определения
singlerefreshstrategy.php:10
Bitrix\Sale\Basket\SingleRefreshStrategy\__construct
__construct(array $data=null)
Определения
singlerefreshstrategy.php:11
Bitrix\Sale\Basket\SingleRefreshStrategy\extractItem
extractItem(BasketBase $basket)
Определения
singlerefreshstrategy.php:21
Bitrix\Sale\Basket\SingleRefreshStrategy\getItemToRefresh
getItemToRefresh(BasketBase $basket)
Определения
singlerefreshstrategy.php:37
Bitrix\Sale\Basket\SingleRefreshStrategy\getProductData
getProductData(BasketBase $basket)
Определения
singlerefreshstrategy.php:57
Bitrix\Sale\BasketBase
Определения
basketbase.php:19
Bitrix\Sale\BasketBase\getItemByBasketCode
getItemByBasketCode($code)
Определения
basketbase.php:47
Bitrix\Sale\BasketItem
Определения
basketitem.php:27
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$items
$items
Определения
template.php:224
bitrix
modules
sale
lib
basket
singlerefreshstrategy.php
Создано системой
1.14.0