getModelName(); if(is_numeric($property_id)) { $oProperty = Core_Entity::factory('Property', $property_id); $aPropertyValues = $oProperty->getValues($object->id); } else { $oProperty = Core_Entity::factory('Property')->getByTagName($property_id); if ($oProperty) { $aPropertyValues = $oProperty->getValues($object->id); } } return $aPropertyValues; } // Получить значение static function getValue($object, $property_id) { if ($object) { $aValues = self::getValues($object, $property_id); if (isset($aValues[0])) { return $aValues[0]; } } return false; } // Установить значение static function setValue($object, $property_id, $value) { $oProperty = Core_Entity::factory('Property', $property_id); $aPropertyValues = self::getValues($object, $property_id); !isset($aPropertyValues[0]) && $aPropertyValues[0] = $oProperty->createNewValue($object->id); $aPropertyValues[0]->value = $value; $aPropertyValues[0]->save(); } static function valueExists($object, $property_id, $value) { $oProperty = Core_Entity::factory('Property', $property_id); $aPropertyValues = self::getValues($object, $property_id); $bExist = false; if (count($aPropertyValues)) { foreach($aPropertyValues as $oPropertyValue) { if ($oPropertyValue->value == $value) { $bExist = true; break; } } } return $bExist; } // Добавить значение static function addValue($object, $property_id, $value) { $oProperty = Core_Entity::factory('Property', $property_id); $oPropertyValue = $oProperty->createNewValue($object->id); $oPropertyValue->value = $value; $oPropertyValue->save(); } // Добавить значение, если уникально static function addUniqueValue($object, $property_id, $value) { $oProperty = Core_Entity::factory('Property', $property_id); $aPropertyValues = self::getValues($object, $property_id); $bExist = self::valueExists($object, $property_id, $value); if (!$bExist) { $oPropertyValue = $oProperty->createNewValue($object->id); $oPropertyValue->value = $value; $oPropertyValue->save(); } return !$bExist; } // Удалить значение static function deleteValue($object, $property_id, $value) { } }