/** * @param Webservice_Data_Object_Concrete $apiElement * @return void */ public function correctObjectRelations($apiElement, $idMapping) { if ($apiElement->elements) { foreach ($apiElement->elements as $el) { if ($el->type == "href" and $el->value["id"]) { $el->value["id"] = $idMapping[$el->value["type"]][$el->value["id"]]; } else { if ($el->type == "image" and $el->value) { $el->value = $idMapping["asset"][$el->value]; } else { if ($el->type == "link" and $el->value["internal"]) { $el->value["internal"] = $idMapping[$el->value["internalType"]][$el->value["internal"]]; } else { if ($el->type == "multihref") { if (is_array($el->value)) { for ($i = 0; $i < count($el->value); $i++) { $el->value[$i]["id"] = $idMapping[$el->value[$i]["type"]][$el->value[$i]["id"]]; } } } else { if ($el->type == "objects") { if (is_array($el->value)) { for ($i = 0; $i < count($el->value); $i++) { $el->value[$i]["id"] = $idMapping["object"][$el->value[$i]["id"]]; } } } else { if ($el->type == "wysiwyg") { $el->value = Pimcore_Tool_Text::replaceWysiwygTextRelationIds($idMapping, $el->value); } else { if ($el->type == "fieldcollections") { if ($el instanceof Webservice_Data_Object_Element and is_array($el->value)) { foreach ($el->value as $fieldCollectionEl) { if (is_array($fieldCollectionEl->value)) { foreach ($fieldCollectionEl->value as $collectionItem) { if ($collectionItem->type == "image") { $collectionItem->value = $idMapping["asset"][$collectionItem->value]; } else { if ($collectionItem->type == "wysiwyg") { $collectionItem->value = Pimcore_Tool_Text::replaceWysiwygTextRelationIds($idMapping, $collectionItem->value); } else { if ($collectionItem->type == "link" and $collectionItem->value["internalType"]) { $collectionItem->value["internal"] = $idMapping[$collectionItem->value["internalType"]][$collectionItem->value["internal"]]; } else { if ($collectionItem->type == "href" and $collectionItem->value["id"]) { $collectionItem->value["id"] = $idMapping[$collectionItem->value["type"]][$collectionItem->value["id"]]; } else { if (($collectionItem->type == "objects" or $collectionItem->type == "multihref") and is_array($collectionItem->value) and count($collectionItem->value) > 0) { for ($i = 0; $i < count($collectionItem->value); $i++) { if ($collectionItem->value[$i]["id"]) { $collectionItem->value[$i]["id"] = $idMapping[$collectionItem->value[$i]["type"]][$collectionItem->value[$i]["id"]]; } } } } } } } } } } } } else { if ($el->type == "localizedfields") { if (is_array($el->value)) { foreach ($el->value as $localizedDataEl) { if ($localizedDataEl->type == "image") { $localizedDataEl->value = $idMapping["asset"][$localizedDataEl->value]; } else { if ($localizedDataEl->type == "wysiwyg") { $localizedDataEl->value = Pimcore_Tool_Text::replaceWysiwygTextRelationIds($idMapping, $localizedDataEl->value); } else { if ($localizedDataEl->type == "link" and $localizedDataEl->value["internalType"]) { $localizedDataEl->value["internal"] = $idMapping[$localizedDataEl->value["internalType"]][$localizedDataEl->value["internal"]]; } } } } } } } } } } } } } } } }