1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
group.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Catalog;
4
5
use Bitrix\Main;
6
use Bitrix\Main\ORM;
7
use Bitrix\Main\Localization\Loc;
8
42
43
class
GroupTable
extends
ORM\Data\DataManager
44
{
50
public
static
function
getTableName
(): string
51
{
52
return
'b_catalog_group'
;
53
}
54
60
public
static
function
getMap
():
array
61
{
62
return
[
63
'ID'
=>
new
ORM\Fields\IntegerField
(
64
'ID'
,
65
[
66
'primary'
=>
true
,
67
'autocomplete'
=>
true
,
68
'title'
=> Loc::getMessage(
'GROUP_ENTITY_ID_FIELD'
),
69
]
70
),
71
'NAME'
=>
new
ORM\Fields\StringField
(
72
'NAME'
,
73
[
74
'required'
=>
true
,
75
'validation'
=>
function
()
76
{
77
return
[
78
new
ORM\Fields\Validators\LengthValidator
(
null
, 100),
79
];
80
},
81
'title'
=> Loc::getMessage(
'GROUP_ENTITY_NAME_FIELD'
),
82
]
83
),
84
'BASE'
=>
new
ORM
\
Fields
\
BooleanField
(
85
'BASE'
,
86
[
87
'values'
=> [
88
'N'
,
89
'Y'
,
90
],
91
'title'
=> Loc::getMessage(
'GROUP_ENTITY_BASE_FIELD'
),
92
]
93
),
94
'SORT'
=>
new
ORM\Fields\IntegerField
(
95
'SORT'
,
96
[
97
'title'
=> Loc::getMessage(
'GROUP_ENTITY_SORT_FIELD'
),
98
]
99
),
100
'XML_ID'
=>
new
ORM\Fields\StringField
(
101
'XML_ID'
,
102
[
103
'validation'
=>
function
()
104
{
105
return
[
106
new
ORM\Fields\Validators\LengthValidator
(
null
, 255),
107
];
108
},
109
'title'
=> Loc::getMessage(
'GROUP_ENTITY_XML_ID_FIELD'
),
110
]
111
),
112
'TIMESTAMP_X'
=>
new
ORM
\
Fields
\
DatetimeField
(
113
'TIMESTAMP_X'
,
114
[
115
'title'
=> Loc::getMessage(
'GROUP_ENTITY_TIMESTAMP_X_FIELD'
),
116
'default_value'
=>
function
()
117
{
118
return
new
Main\Type\DateTime
();
119
},
120
]
121
),
122
'MODIFIED_BY'
=>
new
ORM
\
Fields
\
IntegerField
(
123
'MODIFIED_BY'
,
124
[
125
'title'
=> Loc::getMessage(
'GROUP_ENTITY_MODIFIED_BY_FIELD'
),
126
]
127
),
128
'DATE_CREATE'
=>
new
ORM\Fields\DatetimeField
(
129
'DATE_CREATE'
,
130
[
131
'title'
=> Loc::getMessage(
'GROUP_ENTITY_DATE_CREATE_FIELD'
),
132
'default_value'
=>
function
()
133
{
134
return
new
Main\Type\DateTime
();
135
},
136
]
137
),
138
'CREATED_BY'
=>
new
ORM
\
Fields
\
IntegerField
(
139
'CREATED_BY'
,
140
[
141
'title'
=> Loc::getMessage(
'GROUP_ENTITY_CREATED_BY_FIELD'
),
142
]
143
),
144
'CREATED_BY_USER'
=>
new
ORM\Fields\Relations\Reference
(
145
'CREATED_BY_USER'
,
146
'\Bitrix\Main\User'
,
147
[
'=this.CREATED_BY'
=>
'ref.ID'
]
148
),
149
'MODIFIED_BY_USER'
=>
new
ORM\Fields\Relations\Reference
(
150
'MODIFIED_BY_USER'
,
151
'\Bitrix\Main\User'
,
152
[
'=this.MODIFIED_BY'
=>
'ref.ID'
]
153
),
154
'LANG'
=>
new
ORM\Fields\Relations\Reference
(
155
'LANG'
,
156
'\Bitrix\Catalog\GroupLang'
,
157
[
'=this.ID'
=>
'ref.CATALOG_GROUP_ID'
]
158
),
159
'CURRENT_LANG'
=>
new
ORM\Fields\Relations\Reference
(
160
'CURRENT_LANG'
,
161
'\Bitrix\Catalog\GroupLang'
,
162
[
163
'=this.ID'
=>
'ref.CATALOG_GROUP_ID'
,
164
'=ref.LANG'
=>
new
Main
\
DB
\
SqlExpression
(
'?'
, LANGUAGE_ID)
165
],
166
[
'join_type'
=>
'LEFT'
]
167
)
168
];
169
}
170
177
public
static
function
onAfterAdd
(
ORM
\
Event
$event
): void
178
{
179
Model\Price::clearSettings
();
180
}
181
188
public
static
function
onAfterUpdate
(
ORM
\
Event
$event
): void
189
{
190
Model\Price::clearSettings
();
191
}
192
199
public
static
function
onAfterDelete
(
ORM
\
Event
$event
): void
200
{
201
Model\Price::clearSettings
();
202
}
203
209
public
static
function
getBasePriceType
(): ?
array
210
{
211
$row =
self::getRow
([
212
'select'
=> [
213
'ID'
,
214
'NAME'
,
215
'BASE'
,
216
'SORT'
,
217
'XML_ID'
,
218
],
219
'filter'
=> [
220
'=BASE'
=>
'Y'
,
221
],
222
'cache'
=> [
223
'ttl'
=> 86400,
224
],
225
]);
226
if
($row ===
null
)
227
{
228
return
null
;
229
}
230
231
$row[
'NAME_LANG'
] =
null
;
232
$title
= GroupLangTable::getRow([
233
'select'
=> [
234
'NAME'
,
235
],
236
'filter'
=> [
237
'=CATALOG_GROUP_ID'
=> $row[
'ID'
],
238
'=LANG'
=> LANGUAGE_ID,
239
],
240
'cache'
=> [
241
'ttl'
=> 86400,
242
],
243
]);
244
if
(
$title
!==
null
)
245
{
246
if
(
$title
[
'NAME'
] ===
''
)
247
{
248
$title
[
'NAME'
] =
null
;
249
}
250
$row[
'NAME_LANG'
] =
$title
[
'NAME'
];
251
}
252
253
return
$row;
254
}
255
261
public
static
function
getBasePriceTypeId
(): ?int
262
{
263
$row =
self::getBasePriceType
();
264
265
return
$row ===
null
? null : $row[
'ID'
];
266
}
267
273
public
static
function
getTypeList
():
array
274
{
275
$result
= [];
276
277
$ids = [];
278
$iterator
=
self::getList
([
279
'select'
=> [
280
'ID'
,
281
'NAME'
,
282
'BASE'
,
283
'SORT'
,
284
'XML_ID'
,
285
],
286
'order'
=> [
287
'SORT'
=>
'ASC'
,
288
'ID'
=>
'ASC'
,
289
],
290
'cache'
=> [
291
'ttl'
=> 86400,
292
],
293
]);
294
while
($row =
$iterator
->fetch())
295
{
296
$row[
'ID'
] = (int)$row[
'ID'
];
297
$row[
'SORT'
] = (int)$row[
'SORT'
];
298
$row[
'NAME_LANG'
] =
null
;
299
300
$result
[$row[
'ID'
]] = $row;
301
$ids[] = $row[
'ID'
];
302
}
303
unset($row, $groupIterator);
304
if
(empty(
$result
))
305
{
306
return
$result
;
307
}
308
309
foreach
(array_chunk($ids,
CATALOG_PAGE_SIZE
) as $pageIds)
310
{
311
$langIterator = GroupLangTable::getList([
312
'select'
=> [
313
'CATALOG_GROUP_ID'
,
314
'NAME'
,
315
],
316
'filter'
=> [
317
'@CATALOG_GROUP_ID'
=> $pageIds,
318
'=LANG'
=> LANGUAGE_ID,
319
],
320
'cache'
=> [
321
'ttl'
=> 86400,
322
],
323
]);
324
while
($row = $langIterator->fetch())
325
{
326
$id = (int)$row[
'CATALOG_GROUP_ID'
];
327
$result
[$id][
'NAME_LANG'
] = $row[
'NAME'
] ===
''
? null : $row[
'NAME'
];
328
}
329
unset(
330
$row,
331
$langIterator,
332
);
333
}
334
unset(
335
$pageIds,
336
$ids,
337
);
338
339
return
$result
;
340
}
341
}
CATALOG_PAGE_SIZE
const CATALOG_PAGE_SIZE
Определения
include.php:111
Bitrix\Catalog\GroupTable
Определения
group.php:44
Bitrix\Catalog\GroupTable\getBasePriceType
static getBasePriceType()
Определения
group.php:209
Bitrix\Catalog\GroupTable\getMap
static getMap()
Определения
group.php:60
Bitrix\Catalog\GroupTable\getTypeList
static getTypeList()
Определения
group.php:273
Bitrix\Catalog\GroupTable\onAfterDelete
static onAfterDelete(ORM\Event $event)
Определения
group.php:199
Bitrix\Catalog\GroupTable\getBasePriceTypeId
static getBasePriceTypeId()
Определения
group.php:261
Bitrix\Catalog\GroupTable\onAfterAdd
static onAfterAdd(ORM\Event $event)
Определения
group.php:177
Bitrix\Catalog\GroupTable\onAfterUpdate
static onAfterUpdate(ORM\Event $event)
Определения
group.php:188
Bitrix\Catalog\GroupTable\getTableName
static getTableName()
Определения
group.php:50
Bitrix\Catalog\Model\Price\clearSettings
static clearSettings()
Определения
price.php:762
Bitrix\Main\DB\SqlExpression
Определения
sqlexpression.php:21
Bitrix\Main\ORM\Data\DataManager
Определения
datamanager.php:35
Bitrix\Main\ORM\Data\DataManager\getRow
static getRow(array $parameters)
Определения
datamanager.php:398
Bitrix\Main\ORM\Data\DataManager\getList
static getList(array $parameters=array())
Определения
datamanager.php:431
Bitrix\Main\ORM\Fields\BooleanField
Определения
booleanfield.php:20
Bitrix\Main\ORM\Fields\DatetimeField
Определения
datetimefield.php:22
Bitrix\Main\ORM\Fields\IntegerField
Определения
integerfield.php:20
Bitrix\Main\ORM\Fields\Relations\Reference
Определения
reference.php:26
Bitrix\Main\ORM\Fields\StringField
Определения
stringfield.php:20
Bitrix\Main\ORM\Fields\Validators\LengthValidator
Определения
lengthvalidator.php:19
Bitrix\Main\Type\DateTime
Определения
datetime.php:9
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$result
$result
Определения
get_property_values.php:14
Bitrix\Iblock\ORM
Определения
commonelement.php:9
Bitrix\Main\DB
Определения
arrayresult.php:2
Bitrix\Main\ORM\Fields
Определения
arrayfield.php:9
Bitrix\Main
Bitrix\Rest\Event
Определения
buffer.php:3
$event
$event
Определения
prolog_after.php:141
$title
$title
Определения
pdf.php:123
$iterator
$iterator
Определения
yandex_run.php:610
bitrix
modules
catalog
lib
group.php
Создано системой
1.14.0