Bitrix-D7  18.0.0
 Указатель Структуры данных Пространства имен Файлы Функции Переменные Страницы
Класс DefaultSiteTable
Граф наследования:DefaultSiteTable:

Открытые статические члены

static getFilePath ()
 
static getTableName ()
 
static addMultipleForOwner ($siteId, $locationCodeList=array())
 $locationCodeList format: array(array('LOCATION_CODE' => int, 'SORT' => int)) Подробнее...
 
static updateMultipleForOwner ($siteId, $locationCodeList=array(), $behaviour=array('REMOVE_ABSENT'=> true))
 $locationCodeList format Подробнее...
 
static getMap ()
 

Подробное описание

См. определение в файле defaultsite.php строка 18

Методы

static addMultipleForOwner (   $siteId,
  $locationCodeList = array() 
)
static

$locationCodeList format: array(array('LOCATION_CODE' => int, 'SORT' => int))

См. определение в файле defaultsite.php строка 33

34  {
35  $siteId = static::checkSiteId($siteId);
36 
37  $existed = array();
38  $res = self::getList(array('filter' => array('SITE_ID' => $siteId)));
39  while($item = $res->fetch())
40  $existed[$item['LOCATION_CODE']] = true;
41 
42  if(is_array($locationCodeList))
43  {
44  foreach($locationCodeList as $location)
45  {
46  if(!isset($existed[$location]))
47  {
48  $opRes = self::add(array(
49  'SITE_ID' => $siteId,
50  'LOCATION_CODE' => $location['LOCATION_CODE'],
51  'SORT' => $location['SORT'],
52  ));
53  if(!$opRes->isSuccess())
54  throw new Main\SystemException(Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_CANNOT_ADD_EXCEPTION'));
55  }
56  }
57  }
58  else
59  throw new Main\SystemException('Code list is not a valid array');
60 
61  $GLOBALS['CACHE_MANAGER']->ClearByTag('sale-location-data');
62  }
$GLOBALS['____1840249010']
Definition: mutator.php:1
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:27
static getFilePath ( )
static

См. определение в файле defaultsite.php строка 20

21  {
22  return __FILE__;
23  }
static getMap ( )
static

См. определение в файле defaultsite.php строка 140

141  {
142  return array(
143 
144  'SORT' => array(
145  'data_type' => 'integer',
146  'title' => Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_SORT_FIELD'),
147  'default_value' => '100'
148  ),
149  'LOCATION_CODE' => array(
150  'data_type' => 'string',
151  'required' => true,
152  'primary' => true,
153  'title' => Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_LOCATION_ID_FIELD')
154  ),
155  'SITE_ID' => array(
156  'data_type' => 'string',
157  'required' => true,
158  'primary' => true,
159  'title' => Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_SITE_ID_FIELD')
160  ),
161 
162  // virtual
163  'LOCATION' => array(
164  'data_type' => '\Bitrix\Sale\Location\Location',
165  'reference' => array(
166  '=this.LOCATION_CODE' => 'ref.CODE'
167  )
168  ),
169 
170  'SITE' => array(
171  'data_type' => '\Bitrix\Main\Site',
172  'reference' => array(
173  '=this.SITE_ID' => 'ref.LID'
174  )
175  )
176  );
177  }
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:27
static getTableName ( )
static

См. определение в файле defaultsite.php строка 25

26  {
27  return 'b_sale_loc_def2site';
28  }
static updateMultipleForOwner (   $siteId,
  $locationCodeList = array(),
  $behaviour = array('REMOVE_ABSENT' => true) 
)
static

$locationCodeList format

См. определение в файле defaultsite.php строка 67

68  {
69  $siteId = static::checkSiteId($siteId);
70 
71  if(!is_array($locationCodeList))
72  throw new Main\SystemException('Code list is not a valid array');
73 
74  // throw away duplicates and make index array
75  $index = array();
76  $locationCodeListTemp = array();
77  foreach($locationCodeList as $location)
78  {
79  $index[$location['LOCATION_CODE']] = true;
80  $locationCodeListTemp[$location['LOCATION_CODE']] = $location;
81  }
82  $locationCodeList = $locationCodeListTemp;
83 
84  $res = self::getList(array('filter' => array('SITE_ID' => $siteId)));
85  $update = array();
86  $delete = array();
87  while($item = $res->Fetch())
88  {
89  if(!isset($index[$item['LOCATION_CODE']]))
90  $delete[$item['LOCATION_CODE']] = true;
91  else
92  {
93  unset($index[$item['LOCATION_CODE']]);
94  $update[$item['LOCATION_CODE']] = true;
95  }
96  }
97 
98  if($behaviour['REMOVE_ABSENT'])
99  {
100  foreach($delete as $code => $void)
101  {
102  $res = self::delete(array('SITE_ID' => $siteId, 'LOCATION_CODE' => $code));
103  if(!$res->isSuccess())
104  throw new Main\SystemException(Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_CANNOT_DELETE_EXCEPTION'));
105  }
106  }
107 
108  foreach($update as $code => $void)
109  {
110  $res = self::update(array('SITE_ID' => $siteId, 'LOCATION_CODE' => $code), array('SORT' => $locationCodeList[$code]['SORT']));
111  if(!$res->isSuccess())
112  throw new Main\SystemException(Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_CANNOT_UPDATE_EXCEPTION'));
113  }
114 
115  foreach($index as $code => $void)
116  {
117  $res = self::add(array(
118  'SORT' => $locationCodeList[$code]['SORT'],
119  'SITE_ID' => $siteId,
120  'LOCATION_CODE' => $code
121  ));
122  if(!$res->isSuccess())
123  throw new Main\SystemException(Loc::getMessage('SALE_LOCATION_DEFAULTSITE_ENTITY_CANNOT_ADD_EXCEPTION'));
124  }
125 
126  $GLOBALS['CACHE_MANAGER']->ClearByTag('sale-location-data');
127  }
$GLOBALS['____1840249010']
Definition: mutator.php:1
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:27

Объявления и описания членов класса находятся в файле: