/** * @see Object\ClassDefinition\Data::getDataForEditmode * @param Object\Data\Hotspotimage $data * @param null|Model\Object\AbstractObject $object * @return integer */ public function getDataForEditmode($data, $object = null) { if ($data instanceof Object\Data\Hotspotimage) { $imageId = null; if ($data->getImage()) { $imageId = $data->getImage()->getId(); } $rewritePath = function ($data) { if (!is_array($data)) { return array(); } foreach ($data as &$element) { if (array_key_exists("data", $element) && is_array($element["data"]) && count($element["data"]) > 0) { foreach ($element["data"] as &$metaData) { if ($metaData["value"] instanceof Element\ElementInterface) { $metaData["value"] = $metaData["value"]->getFullPath(); } } } } return $data; }; $marker = $rewritePath($data->getMarker()); $hotspots = $rewritePath($data->getHotspots()); return array("image" => $imageId, "hotspots" => $hotspots, "marker" => $marker, "crop" => $data->getCrop()); } return null; }
/** See marshal * @param mixed $value * @param Model\Object\AbstractObject $object * @param mixed $params * @return mixed */ public function unmarshal($value, $object = null, $params = []) { if (is_array($value)) { $image = new Object\Data\Hotspotimage(); $image->setHotspots($value["hotspots"]); $image->setMarker($value["marker"]); $image->setCrop($value["crop"]); if ($value["image"]) { $type = $value["image"]["type"]; $id = $value["image"]["id"]; $asset = Element\Service::getElementById($type, $id); $image->setImage($asset); } return $image; } }