Bitrix-D7  20.5.0
Класс CustomFieldsController

Открытые члены

 save (Entity $entity)
 
 initialize (Entity $entity)
 
 initializeCollection (EntityCollection $collection)
 

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

static getInstance ()
 

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

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

Методы

◆ getInstance()

static getInstance ( )
static
Возвращает
CustomFieldsController

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

25  : CustomFieldsController
26  {
27  if (self::$instance === null)
28  {
29  self::$instance = new self();
30  }
31 
32  return self::$instance;
33  }

◆ initialize()

initialize ( Entity  $entity)
Аргументы
Entity$entity
Возвращает
Entity
Исключения
Main

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

100  : Entity
101  {
102  if ($entity->getId() <= 0)
103  {
104  return $entity;
105  }
106 
107  $dbRes = CustomFieldsTable::getList([
108  'select' => ['ID', 'FIELD'],
109  'filter' => [
110  '=ENTITY_ID' => $entity->getId(),
111  '=ENTITY_TYPE' => $entity::getRegistryEntity(),
112  '=ENTITY_REGISTRY_TYPE' => $entity::getRegistryType()
113  ]
114  ]);
115 
116  while ($data = $dbRes->fetch())
117  {
118  $entity->markFieldCustom($data['FIELD']);
119  }
120 
121  return $entity;
122  }

◆ initializeCollection()

initializeCollection ( EntityCollection  $collection)
Аргументы
EntityCollection$collection
Возвращает
EntityCollection
Исключения
Main

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

131  : EntityCollection
132  {
133  $dbRes = CustomFieldsTable::getList([
134  'select' => ['FIELD', 'ENTITY_ID'],
135  'filter' => $this->buildFilter($collection)
136  ]);
137 
138  while ($data = $dbRes->fetch())
139  {
140  $entity = $collection->getItemById($data['ENTITY_ID']);
141  $entity->markFieldCustom($data['FIELD']);
142  }
143 
144  return $collection;
145  }

◆ save()

save ( Entity  $entity)
Аргументы
Entity$entity
Возвращает
Entity
Исключения
Main

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

44  {
45  if ($entity->getId() <= 0)
46  {
47  throw new Main\SystemException(
48  Main\Localization\Loc::getMessage('CUSTOM_FIELDS_CONTROLLER_ERROR_INCORRECT_ENTITY_ID')
49  );
50  }
51 
52  $dbRes = CustomFieldsTable::getList([
53  'select' => ['ID', 'FIELD'],
54  'filter' => [
55  '=ENTITY_ID' => $entity->getId(),
56  '=ENTITY_TYPE' => $entity::getRegistryEntity(),
57  '=ENTITY_REGISTRY_TYPE' => $entity::getRegistryType()
58  ]
59  ]);
60 
61  $customFieldArray = [];
62  while ($data = $dbRes->fetch())
63  {
64  $customFieldArray[$data['FIELD']] = $data;
65  }
66 
67  foreach ($entity::getCustomizableFields() as $field)
68  {
69  if ($entity->isMarkedFieldCustom($field))
70  {
71  if (!isset($customFieldArray[$field]))
72  {
73  CustomFieldsTable::add([
74  'ENTITY_ID' => $entity->getId(),
75  'ENTITY_TYPE' => $entity::getRegistryEntity(),
76  'ENTITY_REGISTRY_TYPE' => $entity::getRegistryType(),
77  'FIELD' => $field
78  ]);
79  }
80  }
81  else
82  {
83  if (isset($customFieldArray[$field]))
84  {
85  CustomFieldsTable::delete($customFieldArray[$field]['ID']);
86  }
87  }
88  }
89 
90  return $entity;
91  }
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29

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