Pimcore\Model\Object\Service::getCalculatedFieldValueForEditMode PHP Method

getCalculatedFieldValueForEditMode() public static method

public static getCalculatedFieldValueForEditMode ( $object, $params = [], $data ) : mixed | null
$object
$data Model\Object\Data\CalculatedValue
return mixed | null
    public static function getCalculatedFieldValueForEditMode($object, $params = [], $data)
    {
        if (!$data) {
            return;
        }
        $fieldname = $data->getFieldname();
        $ownerType = $data->getOwnerType();
        /** @var $fd Model\Object\ClassDefinition\Data\CalculatedValue */
        if ($ownerType == "object") {
            $fd = $object->getClass()->getFieldDefinition($fieldname);
        } elseif ($ownerType == "localizedfield") {
            $fd = $object->getClass()->getFieldDefinition("localizedfields")->getFieldDefinition($fieldname);
        } elseif ($ownerType == "classificationstore") {
            $fd = $data->getKeyDefinition();
        } elseif ($ownerType == "fieldcollection" || $ownerType == "objectbrick") {
            $fd = $data->getKeyDefinition();
        }
        if (!$fd) {
            return $data;
        }
        $className = $fd->getCalculatorClass();
        if (!$className || !\Pimcore\Tool::classExists($className)) {
            Logger::error("Class does not exist: " . $className);
            return null;
        }
        $inheritanceEnabled = Model\Object\Concrete::getGetInheritedValues();
        Model\Object\Concrete::setGetInheritedValues(true);
        if (method_exists($className, 'getCalculatedValueForEditMode')) {
            $result = call_user_func($className . '::getCalculatedValueForEditMode', $object, $data);
        } else {
            $result = self::getCalculatedFieldValue($object, $data);
        }
        Model\Object\Concrete::setGetInheritedValues($inheritanceEnabled);
        return $result;
    }

Usage Example

Example #1
0
 /**
  * @see Object_Class_Data::getDataForEditmode
  * @param float $data
  * @return float
  */
 public function getDataForEditmode($data, $object = null)
 {
     if ($data instanceof Model\Object\Data\CalculatedValue) {
         $data = Model\Object\Service::getCalculatedFieldValueForEditMode($object, $data);
     }
     return $data;
 }
All Usage Examples Of Pimcore\Model\Object\Service::getCalculatedFieldValueForEditMode