public function setDataFromResource($data)
{
if (!empty($data)) {
$data = \Pimcore\Tool\Serialize::unserialize($data);
}
$rewritePath = function ($data) {
if (!is_array($data)) {
return [];
}
foreach ($data as &$page) {
foreach ($page as &$element) {
if (array_key_exists("data", $element) && is_array($element["data"]) && count($element["data"]) > 0) {
foreach ($element["data"] as &$metaData) {
if (in_array($metaData["type"], ["object", "asset", "document", "link"])) {
$elTtype = $metaData["type"];
if ($metaData["type"] == "link") {
$elTtype = "document";
}
$el = Element\Service::getElementById($elTtype, $metaData["value"]);
if (!$el && $metaData["type"] == "link") {
$metaData["value"] = $metaData["value"];
} else {
$metaData["value"] = $el;
}
}
}
}
}
}
return $data;
};
if (array_key_exists("hotspots", $data) && is_array($data["hotspots"]) && count($data["hotspots"]) > 0) {
$data["hotspots"] = $rewritePath($data["hotspots"]);
}
$this->id = $data["id"];
$this->hotspots = $data["hotspots"];
$this->texts = $data["texts"];
$this->chapters = $data["chapters"];
return $this;
}