Pimcore\Model\Document\Tag\Pdf::setDataFromResource PHP Method

setDataFromResource() public method

See also: Document\Tag\TagInterface::setDataFromResource
public setDataFromResource ( mixed $data )
$data mixed
    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;
    }