Bitrix-D7 22.2
Загрузка...
Поиск...
Не найдено
Класс Property
+ Граф наследования:Property:

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

 getField ($name)
 
 getGroupInfo (bool $refreshData=false)
 
 normalizeValue ($value)
 
 checkValue ($value)
 
 checkRequiredValue ($value)
 
 getPreparedValueForSave (EntityPropertyValue $propertyValue)
 
 getViewHtml ($value)
 
 getEditHtml (array $values)
 
 getFields ()
 
 getId ()
 
 getPersonTypeId ()
 
 getGroupId ()
 
 getName ()
 
 getRelations ()
 
 getDescription ()
 
 getType ()
 
 isRequired ()
 
 isUtil ()
 
 getOptions ()
 
 onValueDelete ($value)
 

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

static getRegistryType ()
 
static getList (array $parameters=[])
 
static getObjectById ($propertyId)
 
static getMeaningfulValues ($personTypeId, $request)
 

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

 loadRelations ()
 
 loadOptions ()
 

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

static getEntityType ()
 

Защищенные данные

 $fields = []
 

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

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

Методы

◆ checkRequiredValue()

checkRequiredValue (   $value)
inherited
Аргументы
$key
$value
Возвращает
Result
Исключения
Main

SystemException

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

414 {
415 static $errors = [];
416
417 $result = new Result();
418
419 $errorList = Input\Manager::getRequiredError($this->fields, $value);
420
421 foreach ($errorList as $error)
422 {
423 if (is_array($error))
424 {
425 foreach ($error as $message)
426 {
427 $result->addError(new ResultError($this->getField('NAME').' '.$message));
428 $errors[$this->getId()][] = $message;
429 }
430 }
431 else
432 {
433 $result->addError(new ResultError($this->getName().' '.$error));
434 $errors[$this->getId()][] = $error;
435 }
436 }
437
438 return $result;
439 }

◆ checkValue()

checkValue (   $value)
inherited
Аргументы
$value
Возвращает
Result
Исключения
Main

SystemException

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

341 {
342 $result = new Result();
343
344 static $errors = [];
345
346 if (
347 $this->getField('TYPE') === "STRING"
348 && (int)$this->getField('MAXLENGTH') <= 0
349 )
350 {
351 $this->fields['MAXLENGTH'] = 500;
352 }
353
354 $error = Input\Manager::getError($this->fields, $value);
355
356 if (!is_array($error))
357 {
358 $error = array($error);
359 }
360
361 foreach ($error as $item)
362 {
363 if (!is_array($item))
364 {
365 $item = [$item];
366 }
367
368 foreach ($item as $message)
369 {
370 if (isset($errorsList[$this->getId()]) && in_array($message, $errors[$this->getId()]))
371 {
372 continue;
373 }
374
375 $result->addError(
376 new Main\Error(
378 "SALE_PROPERTY_ERROR",
379 ["#PROPERTY_NAME#" => $this->getField('NAME'), "#ERROR_MESSAGE#" => $message]
380 )
381 )
382 );
383 }
384 }
385
386 if (!is_array($value) && trim($value) !== '')
387 {
388 $value = trim($value);
389
390 if ($this->getField('IS_EMAIL') === 'Y')
391 {
392 if (!check_email($value, true))
393 {
394 $result->addError(
395 new Main\Error(
396 Loc::getMessage("SALE_GOPE_WRONG_EMAIL")
397 )
398 );
399 }
400 }
401 }
402
403 return $result;
404 }
static getMessage($code, $replace=null, $language=null)
Definition: loc.php:29
trait Error
Definition: error.php:11

◆ getDescription()

getDescription ( )
inherited
Возвращает
mixed

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

586 {
587 return $this->getField('DESCRIPTION');
588 }

◆ getEditHtml()

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

SystemException

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

529 {
530 $key = isset($this->property["ID"]) ? $this->getId() : "n".$values['ORDER_PROPS_ID'];
531 return Input\Manager::getEditHtml("PROPERTIES[".$key."]", $this->fields, $values['VALUE']);
532 }

◆ getEntityType()

static getEntityType ( )
staticprotectedinherited
Возвращает
string Registry::ENTITY_ORDER

Переопределяет метод предка EntityProperty.

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

14 : string
15 {
17 }

◆ getField()

getField (   $name)
inherited
Аргументы
$name
Возвращает
mixed

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

40 {
41 return $this->fields[$name];
42 }

◆ getFields()

getFields ( )
inherited
Возвращает
mixed

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

538 {
539 return $this->fields;
540 }

◆ getGroupId()

getGroupId ( )
inherited
Возвращает
mixed

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

562 {
563 return $this->getField('PROPS_GROUP_ID');
564 }

◆ getGroupInfo()

getGroupInfo ( bool  $refreshData = false)
inherited
Аргументы
bool$refreshData
Возвращает
array|mixed
Исключения
Main

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

99 {
100 static $groupList = [];
101
102 if ($refreshData || !isset($groupList[$this->getPersonTypeId()]))
103 {
105 'filter' => [
106 '=PERSON_TYPE_ID' => $this->getPersonTypeId()
107 ]
108 ]);
109 while ($group = $dbRes->fetch())
110 {
111 $groupList[$this->getPersonTypeId()][$group['ID']] = $group;
112 }
113 }
114
115 $groupId = $this->getGroupId();
116
117 if (!isset($groupList[$this->getPersonTypeId()][$groupId]))
118 {
119 return [
120 'ID' => 0,
121 'NAME' => Loc::getMessage('SOP_UNKNOWN_GROUP'),
122 ];
123 }
124
125 return $groupList[$this->getPersonTypeId()][$groupId];
126 }
static getList(array $parameters=array())

◆ getId()

getId ( )
inherited
Возвращает
mixed

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

546 {
547 return $this->getField('ID');
548 }

◆ getList()

static getList ( array  $parameters = [])
staticinherited
Аргументы
array$parameters
Возвращает
Main\ORM\Query\Result
Исключения
Main

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

52 {
53 $filter = [
54 '=ENTITY_REGISTRY_TYPE' => static::getRegistryType(),
55 '=ENTITY_TYPE' => static::getEntityType()
56 ];
57
58 if (isset($parameters['filter']))
59 {
60 $filter[] = $parameters['filter'];
61 }
62
63 $parameters['filter'] = $filter;
64 return OrderPropsTable::getList($parameters);
65 }

◆ getMeaningfulValues()

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

ArgumentException

Исключения
Main

ArgumentNullException

Исключения
Main

SystemException

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

288 {
289 $result = [];
290
291 $personTypeId = intval($personTypeId);
292 if ($personTypeId <= 0 || !is_array($request))
293 {
294 return [];
295 }
296
297 $dbRes = static::getList([
298 'select' => [
299 'ID',
300 'IS_LOCATION',
301 'IS_EMAIL',
302 'IS_PROFILE_NAME',
303 'IS_PAYER',
304 'IS_LOCATION4TAX',
305 'IS_ZIP',
306 'IS_PHONE',
307 'IS_ADDRESS',
308 'IS_ADDRESS_FROM',
309 'IS_ADDRESS_TO',
310 ],
311 'filter' => [
312 '=ACTIVE' => 'Y',
313 '=UTIL' => 'N',
314 '=PERSON_TYPE_ID' => $personTypeId
315 ]
316 ]);
317
318 while ($row = $dbRes->fetch())
319 {
320 if (array_key_exists($row["ID"], $request))
321 {
322 foreach ($row as $key => $value)
323 {
324 if (($value === "Y") && (mb_substr($key, 0, 3) === "IS_"))
325 {
326 $result[mb_substr($key, 3)] = $request[$row["ID"]];
327 }
328 }
329 }
330 }
331
332 return $result;
333 }
$request
Definition: push.php:6

◆ getName()

getName ( )
inherited
Возвращает
mixed

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

570 {
571 return $this->getField('NAME');
572 }

◆ getObjectById()

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

ArgumentException

Исключения
Main

NotImplementedException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

75 {
76 $dbRes = static::getList([
77 'filter' => [
78 '=ID' => $propertyId
79 ]
80 ]);
81
82 $data = $dbRes->fetch();
83 if ($data)
84 {
85 return new static($data);
86 }
87
88 return null;
89 }

◆ getOptions()

getOptions ( )
inherited
Возвращает
mixed

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

618 {
619 return $this->getField('OPTIONS');
620 }

◆ getPersonTypeId()

getPersonTypeId ( )
inherited
Возвращает
mixed

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

554 {
555 return $this->getField('PERSON_TYPE_ID');
556 }

◆ getPreparedValueForSave()

getPreparedValueForSave ( EntityPropertyValue  $propertyValue)
inherited
Аргументы
PropertyValueBase$propertyValue
Возвращает
array|mixed|string|null
Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotImplementedException

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

448 {
449 $value = $propertyValue->getField('VALUE');
450
451 if ($this->getType() == 'FILE')
452 {
453 $value = Input\File::asMultiple($value);
454
455 foreach ($value as $i => $file)
456 {
457 if (Input\File::isDeletedSingle($file))
458 {
459 unset($value[$i]);
460 }
461 else
462 {
463 if (Input\File::isUploadedSingle($file))
464 {
465 $fileId = \CFile::SaveFile(array('MODULE_ID' => 'sale') + $file, 'sale/order/properties');
466 if (is_numeric($fileId))
467 {
468 $file = $fileId;
469 }
470 }
471
472 $value[$i] = Input\File::loadInfoSingle($file);
473 }
474 }
475
476 $property = $this->getFields();
477 $propertyValue->setField('VALUE', $value);
478 $value = Input\File::getValue($property, $value);
479
480 $originalFields = $propertyValue->getFields()->getOriginalValues();
481 foreach (
482 array_diff(
483 Input\File::asMultiple(Input\File::getValue($property, $originalFields['VALUE'])),
484 Input\File::asMultiple($value),
485 Input\File::asMultiple(Input\File::getValue($property, $property['DEFAULT_VALUE']))
486 )
487 as $fileId
488 )
489 {
490 \CFile::Delete($fileId);
491 }
492 }
493 elseif ($this->getType() === 'ADDRESS' && Main\Loader::includeModule('location'))
494 {
495 if (!is_array($value))
496 {
497 return null;
498 }
499
500 $address = Address::fromArray($value);
501 $result = $address->save();
502 if (!$result->isSuccess())
503 {
504 return null;
505 }
506
507 return (int)$result->getId();
508 }
509
510 return $value;
511 }
static fromArray(array $arrayData)
Definition: address.php:298

◆ getRegistryType()

static getRegistryType ( )
staticinherited
Возвращает
string

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

31 {
33 }
const REGISTRY_TYPE_ORDER
Definition: registry.php:16

◆ getRelations()

getRelations ( )
inherited
Возвращает
mixed

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

578 {
579 return $this->getField('RELATION');
580 }

◆ getType()

getType ( )
inherited
Возвращает
mixed

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

594 {
595 return $this->getField('TYPE');
596 }

◆ getViewHtml()

getViewHtml (   $value)
inherited
Аргументы
$value
Возвращает
string
Исключения
Main

SystemException

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

519 {
520 return Input\Manager::getViewHtml($this->fields, $value);
521 }

◆ isRequired()

isRequired ( )
inherited
Возвращает
bool

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

602 {
603 return $this->getField('REQUIRED') === 'Y';
604 }

◆ isUtil()

isUtil ( )
inherited
Возвращает
bool

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

610 {
611 return $this->getField('UTIL') === 'Y';
612 }

◆ loadOptions()

loadOptions ( )
protectedinherited
Возвращает
array
Исключения
Main

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

254 {
255 $options = array();
256
257 $dbRes = Internals\OrderPropsVariantTable::getList([
258 'select' => ['VALUE', 'NAME'],
259 'filter' => ['ORDER_PROPS_ID' => $this->getId()],
260 'order' => ['SORT' => 'ASC']
261 ]);
262
263 while ($data = $dbRes->fetch())
264 {
265 $options[$data['VALUE']] = $data['NAME'];
266 }
267
268 return $options;
269 }

◆ loadRelations()

loadRelations ( )
protected
Возвращает
array
Исключения
Main

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

Переопределяет метод предка EntityProperty.

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

22 {
23 $relations = [];
24
25 $dbRes = OrderPropsRelationTable::getList([
26 'select' => ['ENTITY_ID', 'ENTITY_TYPE'],
27 'filter' => [
28 '=PROPERTY_ID' => $this->getId(),
29 '@ENTITY_TYPE' => ['P', 'D']
30 ]
31 ]);
32
33 while ($data = $dbRes->fetch())
34 {
35 $relations[] = $data;
36 }
37
38 return $relations;
39 }

◆ normalizeValue()

normalizeValue (   $value)
inherited
Аргументы
$value
Возвращает
array|mixed|string|null
Исключения
Main

ArgumentException

Исключения
Main

LoaderException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

Already normalized

DB value

JSON most likely

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

174 {
175 if ($this->fields['TYPE'] === 'FILE')
176 {
177 return Input\File::loadInfo($value);
178 }
179 elseif ($this->fields['TYPE'] === 'ADDRESS' && Main\Loader::includeModule('location'))
180 {
181 if (is_array($value))
182 {
186 return $value;
187 }
188 elseif (is_numeric($value))
189 {
193 $address = Address::load((int)$value);
194
195 $value = ($address instanceof Address) ? $address->toArray() : null;
196 }
197 elseif (is_string($value) && !empty($value))
198 {
203 try
204 {
205 $result = Main\Web\Json::decode(
206 Main\Text\Encoding::convertEncoding(
207 $value,
208 SITE_CHARSET,
209 'UTF-8'
210 )
211 );
212 }
213 catch (\Exception $exception)
214 {
215 $result = (new Address(LANGUAGE_ID))
216 ->setFieldValue(Address\FieldType::ADDRESS_LINE_2, $value)
217 ->toArray();
218 }
219
220 return $result;
221 }
222 }
223 elseif ($this->fields['TYPE'] === "STRING")
224 {
225 if ($this->fields['IS_EMAIL'] === "Y" && !empty($value))
226 {
227 $value = trim((string)$value);
228 }
229
230 if (Input\StringInput::isMultiple($value))
231 {
232 foreach ($value as $key => $data)
233 {
234 if (Input\StringInput::isDeletedSingle($data))
235 {
236 unset($value[$key]);
237 }
238 }
239 }
240
241 return $value;
242 }
243
244 return $value;
245 }

◆ onValueDelete()

onValueDelete (   $value)
inherited
Аргументы
$value

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

626 {
627 if ($this->getType() === 'FILE')
628 {
629 foreach (Input\File::asMultiple($value) as $fileId)
630 {
631 \CFile::Delete($fileId);
632 }
633 }
634 }

Поля

◆ $fields

$fields = []
protectedinherited

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


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