public function getDataFromEditmode($data, $object = null, $params = [])
{
$rewritePath = function ($data) {
if (!is_array($data)) {
return [];
}
foreach ($data as &$element) {
if (array_key_exists("data", $element) && is_array($element["data"]) && count($element["data"]) > 0) {
foreach ($element["data"] as &$metaData) {
$metaData = new Element\Data\MarkerHotspotItem($metaData);
if (in_array($metaData["type"], ["object", "asset", "document"])) {
$el = Element\Service::getElementByPath($metaData["type"], $metaData->getValue());
$metaData["value"] = $el;
}
}
}
}
return $data;
};
if (array_key_exists("marker", $data) && is_array($data["marker"]) && count($data["marker"]) > 0) {
$data["marker"] = $rewritePath($data["marker"]);
}
if (array_key_exists("hotspots", $data) && is_array($data["hotspots"]) && count($data["hotspots"]) > 0) {
$data["hotspots"] = $rewritePath($data["hotspots"]);
}
return new Object\Data\Hotspotimage($data["image"], $data["hotspots"], $data["marker"], $data["crop"]);
}