Bitrix-D7  20.5.0
Класс BasketPropertyItemBase
Граф наследования:BasketPropertyItemBase:
CollectableEntity Entity BasketPropertyItem

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

 save ()
 
 verify ()
 
- Открытые члены унаследованные от CollectableEntity
 setCollection (EntityCollection $collection)
 
 getCollection ()
 
 delete ()
 
 setInternalIndex ($index)
 
 getInternalIndex ()
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 setMathActionOnly ($value=false)
 
 isMathActionOnly ()
 
 isClone ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
- Открытые члены унаследованные от Entity
 initializeField ($fieldName, $fieldInfo)
 Fields factory. Подробнее...
 
 initialize ($className)
 
 postInitialize ()
 
 getObjectClass ()
 Returns class of Object for current entity. Подробнее...
 
 getObjectClassName ()
 Returns class name of Object for current entity. Подробнее...
 
 getCollectionClass ()
 
 getCollectionClassName ()
 
 createObject ($setDefaultValues=true)
 
 createCollection ()
 
 wakeUpObject ($row)
 
 wakeUpCollection ($rows)
 
 addField ($fieldInfo, $fieldName=null)
 
 getReferencesCountTo ($refEntityName)
 
 getReferencesTo ($refEntityName)
 
 getFields ()
 
 getField ($name)
 
 hasField ($name)
 
 getScalarFields ()
 
 getUField ($name)
 
 hasUField ($name)
 
 getName ()
 
 getFullName ()
 
 getNamespace ()
 
 getModule ()
 
 getDataClass ()
 
 getConnection ()
 
 getDBTableName ()
 
 getPrimary ()
 
 getPrimaryArray ()
 
 getAutoIncrement ()
 
 isUts ()
 
 isUtm ()
 
 getUfId ()
 
 setDefaultScope ($query)
 
 getCode ()
 
 getLangCode ()
 
 getTitle ()
 
 __clone ()
 
 compileDbTableStructureDump ()
 
 createDbTable ()
 Creates table according to Fields collection. Подробнее...
 
 readFromCache ($ttl, $cacheId, $countTotal=false)
 Reads data from cache. Подробнее...
 
 writeToCache (Main\DB\Result $result, $cacheId, $countTotal=false)
 
 getCacheTtl ($ttl)
 Returns cache TTL for the entity, possibly limited by the .settings.php: 'cache_flags' => array('value'=> array( "b_group_max_ttl" => 200, "b_group_min_ttl" => 100, )) Maximum is a higher-priority. Подробнее...
 
 cleanCache ()
 Cleans all cache entries for the entity. Подробнее...
 
 enableFullTextIndex ($field, $mode=true)
 Sets a flag indicating full text index support for a field. Подробнее...
 
 fullTextIndexEnabled ($field)
 Returns true if full text index is enabled for a field. Подробнее...
 

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

static getAvailableFields ()
 
static getRegistryEntity ()
 
static create (BasketPropertiesCollectionBase $basketPropertiesCollection)
 
static loadForBasketItem ($id)
 
static loadForBasket ($idList)
 
static getList (array $parameters=[])
 
static getEntityEventName ()
 
- Открытые статические члены унаследованные от Entity
static get ($entityName)
 Returns entity object. Подробнее...
 
static has ($entityName)
 Checks if entity exists. Подробнее...
 
static getInstance ($entityName)
 
static getDefaultObjectClassName ($entityName)
 
static getDefaultCollectionClassName ($entityName)
 
static isExists ($name)
 
static normalizeEntityClass ($entityName)
 
static getEntityClassParts ($class)
 
static camel2snake ($str)
 
static snake2camel ($str)
 
static normalizeName ($entityName)
 
static getInstanceByQuery (Query $query, &$entity_name=null)
 
static compileEntity ($entityName, $fields=null, $parameters=array())
 
static compileObjectClass ($dataClass)
 
static compileCollectionClass ($dataClass)
 
static destroy ($entity)
 

Защищенные члены

 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
- Защищенные члены унаследованные от CollectableEntity
 onFieldModify ($name, $oldValue, $value)
 
- Защищенные члены унаследованные от Entity
 appendField (Field $field)
 
 getCacheDir ()
 

Защищенные статические члены

static getMeaningfulFields ()
 
static generateXmlId ()
 
- Защищенные статические члены унаследованные от Entity
static getInstanceDirect ($className)
 

Дополнительные унаследованные члены

- Поля данных унаследованные от Entity
 $name
 
 $connectionName
 
 $dbTableName
 
 $primary
 
 $autoIncrement
 
 $isUts
 
 $isUtm
 
const DEFAULT_OBJECT_PREFIX = 'EO_'
 
- Защищенные данные унаследованные от CollectableEntity
 $collection
 
 $internalIndex = null
 
 $isClone = false
 
- Защищенные данные унаследованные от Entity
 $className
 
 $module
 
 $uf_id
 
 $fields
 
 $fieldsMap
 
 $u_fields
 
 $code
 
 $references
 
 $isClone = false
 
- Статические защищенные данные унаследованные от Entity
static $instances
 

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

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

Методы

◆ addInternal()

addInternal ( array  $data)
abstractprotected
Аргументы
array$data
Возвращает
Main\Entity\AddResult

Переопределяется в BasketPropertyItem.

◆ create()

static create ( BasketPropertiesCollectionBase  $basketPropertiesCollection)
static
Аргументы
BasketPropertiesCollectionBase$basketPropertiesCollection
Возвращает
BasketPropertyItem
Исключения
NotImplementedException
Main

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

70  {
71  $basketPropertyItem = static::createBasketPropertyItemObject();
72  $basketPropertyItem->setCollection($basketPropertiesCollection);
73 
74  $basketPropertyItem->setField('XML_ID', static::generateXmlId());
75 
76  return $basketPropertyItem;
77  }

◆ generateXmlId()

static generateXmlId ( )
staticprotected
Возвращает
string

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

83  {
84  return uniqid('bx_');
85  }

◆ getAvailableFields()

static getAvailableFields ( )
static
Возвращает
array

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

22  {
23  return array(
24  'NAME' => 'NAME',
25  'VALUE' => 'VALUE',
26  'CODE' => 'CODE',
27  'SORT' => 'SORT',
28  'XML_ID' => 'XML_ID'
29  );
30  }

◆ getEntityEventName()

static getEntityEventName ( )
static
Возвращает
null|string

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

343  {
344  return 'SaleBasketPropertyItem';
345  }

◆ getList()

static getList ( array  $parameters = [])
static
Аргументы
array$parameters
Исключения
NotImplementedException

Переопределяется в BasketPropertyItem.

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

333  {
334  throw new NotImplementedException();
335  }

◆ getMeaningfulFields()

static getMeaningfulFields ( )
staticprotected
Возвращает
array

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

36  {
37  return array();
38  }

◆ getRegistryEntity()

static getRegistryEntity ( )
static
Возвращает
string|void

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

44  {
46  }

◆ loadForBasket()

static loadForBasket (   $idList)
static
Аргументы
$idList
Возвращает
array
Исключения
Main

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

295  {
296  $result = [];
297 
298  $dbRes = static::getList(
299  array(
300  'filter' => array("@BASKET_ID" => $idList),
301  'order' => array("SORT" => "ASC", "ID" => "ASC"),
302  )
303  );
304 
305  while ($property = $dbRes->fetch())
306  {
307  $result[$property['BASKET_ID']][] = static::createBasketPropertyItemObject($property);
308  }
309 
310  return $result;
311  }

◆ loadForBasketItem()

static loadForBasketItem (   $id)
static
Аргументы
$id
Возвращает
array
Исключения
Main

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

267  {
268  if (intval($id) <= 0)
269  {
270  throw new Main\ArgumentNullException("id");
271  }
272 
273  $result = [];
274 
275  $dbRes = static::getList([
276  'filter' => ["=BASKET_ID" => $id],
277  'order' => ["SORT" => "ASC", "ID" => "ASC"],
278  ]);
279 
280  while ($property = $dbRes->fetch())
281  {
282  $result[] = static::createBasketPropertyItemObject($property);
283  }
284 
285  return $result;
286  }

◆ save()

save ( )

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

96  {
97  $this->checkCallingContext();
98 
99  $result = new Result();
100 
101  $id = $this->getId();
102 
103  $fields = $this->fields->getChangedValues();
104 
105  if (!empty($fields) && is_array($fields))
106  {
107  $map = static::getFieldsMap();
108  foreach ($map as $key => $value)
109  {
110  if ($value instanceof Main\Entity\StringField)
111  {
112  $fieldName = $value->getName();
113  if (array_key_exists($fieldName, $fields))
114  {
115  if (!empty($fields[$fieldName]) && mb_strlen($fields[$fieldName]) > $value->getSize())
116  {
117  $fields[$fieldName] = mb_substr($fields[$fieldName], 0, $value->getSize());
118  }
119  }
120  }
121  }
122  }
123 
124  if ($id > 0)
125  {
126  if (!empty($fields) && is_array($fields))
127  {
128  $r = $this->updateInternal($id, $fields);
129  if (!$r->isSuccess())
130  {
131  $result->addErrors($r->getErrors());
132  return $result;
133  }
134 
135  if ($resultData = $r->getData())
136  {
137  $result->setData($resultData);
138  }
139  }
140  }
141  else
142  {
143  /** @var BasketPropertiesCollectionBase $collection */
144  $collection = $this->getCollection();
145  $basketItem = $collection->getBasketItem();
146  $fields['BASKET_ID'] = ($basketItem) ? $basketItem->getId() : 0;
147  $this->setFieldNoDemand('BASKET_ID', $fields['BASKET_ID']);
148 
149  $r = $this->addInternal($fields);
150  if (!$r->isSuccess())
151  {
152  $result->addErrors($r->getErrors());
153  return $result;
154  }
155 
156  if ($resultData = $r->getData())
157  {
158  $result->setData($resultData);
159  }
160 
161  $id = $r->getId();
162  $this->setFieldNoDemand('ID', $id);
163  }
164 
165  if ($id > 0)
166  {
167  $result->setId($id);
168  }
169 
170  return $result;
171  }
updateInternal($primary, array $data)

◆ updateInternal()

updateInternal (   $primary,
array  $data 
)
abstractprotected
Аргументы
$primary
array$data
Возвращает
Main\Entity\UpdateResult

Переопределяется в BasketPropertyItem.

◆ verify()

verify ( )
Возвращает
Result
Исключения
NotImplementedException

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

208  {
209  $result = new Result();
210 
211  $map = static::getFieldsMap();
212 
213  $fieldValues = $fields = $this->fields->getValues();
214 
215  $propertyName = (!empty($fieldValues['NAME'])) ? $fieldValues['NAME'] : "";
216  if ($this->getId() > 0)
217  {
218  $fields = $this->fields->getChangedValues();
219  }
220 
221  foreach ($map as $key => $value)
222  {
223  if ($value instanceof Main\Entity\StringField)
224  {
225  $fieldName = $value->getName();
226  if (array_key_exists($fieldName, $fields))
227  {
228  if (array_key_exists($fieldName, $fields))
229  {
230  if (!empty($fields[$fieldName]) && mb_strlen($fields[$fieldName]) > $value->getSize())
231  {
232  if ($fieldName === 'NAME')
233  {
234  $propertyName = mb_substr($propertyName, 0, 50)."...";
235  }
236 
237  $result->addError(
238  new ResultWarning(
240  "SALE_BASKET_ITEM_PROPERTY_MAX_LENGTH_ERROR",
241  array(
242  "#PROPERTY_NAME#" => $propertyName,
243  "#FIELD_TITLE#" => $fieldName,
244  "#MAX_LENGTH#" => $value->getSize()
245  )
246  ),
247  'SALE_BASKET_ITEM_PROPERTY_MAX_LENGTH_ERROR'
248  )
249  );
250  }
251  }
252  }
253  }
254  }
255 
256  return $result;
257  }
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29

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