1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
EntityLabelService.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Sale\Label
;
4
5
use
Bitrix\Sale\Internals\Entity
;
6
use
Bitrix\Sale\Internals\EntityLabelTable
;
7
use
Bitrix\Sale\Internals\EO_EntityLabel
;
8
9
class
EntityLabelService
10
{
11
public
function
mark
(
Entity
$entity
,
Label
$label): void
12
{
13
$existingLabel = $this->getORMLabelForEntity(
$entity
, $label->
getName
());
14
if
($existingLabel)
15
{
16
$existingLabel->setLabelValue($label->
getValue
());
17
$existingLabel->save();
18
19
return
;
20
}
21
22
$newLabel =
EntityLabelTable::createObject
();
23
$newLabel
24
->setEntityId(
$entity
->getId())
25
->setEntityType($entity::getRegistryEntity())
26
->setLabelName($label->
getName
())
27
->setLabelValue($label->
getValue
())
28
->save()
29
;
30
}
31
32
public
function
getLabelListForEntity
(
Entity
$entity
):
array
33
{
34
$result
= [];
35
36
$labelList =
EntityLabelTable::getList
([
37
'select'
=> [
'LABEL_NAME'
,
'LABEL_VALUE'
],
38
'filter'
=> [
39
'=ENTITY_ID'
=>
$entity
->getId(),
40
'=ENTITY_TYPE'
=> $entity::getRegistryEntity(),
41
]
42
]);
43
44
while
($row = $labelList->fetchObject())
45
{
46
$result
[] =
new
Label
($row->getLabelName(), $row->getLabelValue());
47
}
48
49
return
$result
;
50
}
51
52
public
function
getLabelForEntity
(
Entity
$entity
,
string
$labelName): ?
Label
53
{
54
$label = $this->getORMLabelForEntity(
$entity
, $labelName);
55
56
if
(!$label)
57
{
58
return
null
;
59
}
60
61
return
new
Label
($labelName, $label->getLabelValue());
62
}
63
64
private
function
getORMLabelForEntity(
Entity
$entity
,
string
$labelName): ?
EO_EntityLabel
65
{
66
$label =
EntityLabelTable::getList
([
67
'select'
=> [
'LABEL_VALUE'
],
68
'filter'
=> [
69
'=ENTITY_ID'
=>
$entity
->getId(),
70
'=ENTITY_TYPE'
=> $entity::getRegistryEntity(),
71
'=LABEL_NAME'
=> $labelName,
72
],
73
'limit'
=> 1,
74
])->fetchObject();
75
76
return
$label ??
null
;
77
}
78
}
Bitrix\Main\ORM\Data\DataManager\getList
static getList(array $parameters=array())
Определения
datamanager.php:431
Bitrix\Main\ORM\Data\DataManager\createObject
static createObject($setDefaultValues=true)
Определения
datamanager.php:232
Bitrix\Sale\Internals\EO_EntityLabel
Определения
orm.php:13634
Bitrix\Sale\Internals\EntityLabelTable
Определения
entitylabeltable.php:40
Bitrix\Sale\Label\EntityLabelService
Определения
EntityLabelService.php:10
Bitrix\Sale\Label\EntityLabelService\getLabelForEntity
getLabelForEntity(Entity $entity, string $labelName)
Определения
EntityLabelService.php:52
Bitrix\Sale\Label\EntityLabelService\getLabelListForEntity
getLabelListForEntity(Entity $entity)
Определения
EntityLabelService.php:32
Bitrix\Sale\Label\EntityLabelService\mark
mark(Entity $entity, Label $label)
Определения
EntityLabelService.php:11
Bitrix\Sale\Label\Label
Определения
Label.php:6
Bitrix\Sale\Label\Label\getName
getName()
Определения
Label.php:11
Bitrix\Sale\Label\Label\getValue
getValue()
Определения
Label.php:16
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
$entity
$entity
Определения
group_bizproc_workflow_delete.php:17
Bitrix\Main\Entity
Определения
ufield.php:9
Bitrix\Sale\Label
Определения
EntityLabelService.php:3
bitrix
modules
sale
lib
Label
EntityLabelService.php
Создано системой
1.14.0