Pimcore\Model\Object\ClassDefinition\Data\KeyValue::getDiffDataForEditMode PHP Method

getDiffDataForEditMode() public method

public getDiffDataForEditMode ( mixed $data, null $object = null, mixed $params = [] ) : array | null
$data mixed
$object null
$params mixed
return array | null
    public function getDiffDataForEditMode($data, $object = null, $params = [])
    {
        if (!$data) {
            return [];
        }
        $properties = $data->getProperties();
        $result = [];
        foreach ($properties as $key => $property) {
            $key = $property["key"];
            $diffdata = [];
            $diffdata["field"] = $this->getName();
            $diffdata["key"] = $this->getName() . "~" . $key;
            $diffdata["type"] = $this->fieldtype;
            unset($property["id"]);
            unset($property["o_id"]);
            unset($property["source"]);
            $diffdata["data"] = $property;
            $keyConfig = Object\KeyValue\KeyConfig::getById($key);
            $keyName = $keyConfig->getName();
            $prettyValue = $property["value"];
            if ($keyConfig->getType() == "select") {
                $possibleValues = \Zend_Json::decode($keyConfig->getPossibleValues());
                foreach ($possibleValues as $pValue) {
                    if ($pValue["key"] == $property["value"]) {
                        $prettyValue = $pValue["value"];
                        break;
                    }
                }
            } elseif ($keyConfig->getType() == "translated") {
                $translatedValue = $property["translated"];
                if ($translatedValue) {
                    $prettyValue = $translatedValue;
                }
            }
            $diffdata["value"] = $prettyValue;
            $diffdata["title"] = $keyName;
            $diffdata["tooltip"] = $keyName;
            $keyDescription = $keyConfig->getDescription();
            if (!empty($keyDescription)) {
                $diffdata["title"] = $keyDescription;
            }
            $diffdata["disabled"] = !$this->isDiffChangeAllowed($object);
            $result[] = $diffdata;
        }
        return $result;
    }