public function getDataFromEditmode($data, $object = null, $params = [])
{
//if not set, return null
if ($data === null or $data === false) {
return null;
}
$multihrefMetadata = [];
if (is_array($data) && count($data) > 0) {
foreach ($data as $element) {
if ($element["type"] == "object") {
$e = Object::getById($element["id"]);
} elseif ($element["type"] == "asset") {
$e = Asset::getById($element["id"]);
} elseif ($element["type"] == "document") {
$e = Document::getById($element["id"]);
}
if ($e instanceof Element\ElementInterface) {
$metaData = \Pimcore::getDiContainer()->make('Pimcore\\Model\\Object\\Data\\ElementMetadata', ["fieldname" => $this->getName(), "columns" => $this->getColumnKeys(), "element" => $e]);
foreach ($this->getColumns() as $columnConfig) {
$key = $columnConfig["key"];
$setter = "set" . ucfirst($key);
$value = $element[$key];
$metaData->{$setter}($value);
}
$multihrefMetadata[] = $metaData;
$elements[] = $e;
}
}
}
//must return array if data shall be set
return $multihrefMetadata;
}