..),
"asset" => array(...)
)
public static rewriteIds ( $document, $rewriteConfig, $params = [] ) : |
||
$document | ||
$rewriteConfig | ||
return |
public function replaceAssignmentsAction() { $success = false; $message = ""; $element = Element\Service::getElementById($this->getParam("type"), $this->getParam("id")); $sourceEl = Element\Service::getElementById($this->getParam("sourceType"), $this->getParam("sourceId")); $targetEl = Element\Service::getElementById($this->getParam("targetType"), $this->getParam("targetId")); if ($element && $sourceEl && $targetEl && $this->getParam("sourceType") == $this->getParam("targetType") && $sourceEl->getType() == $targetEl->getType()) { $rewriteConfig = [$this->getParam("sourceType") => [$sourceEl->getId() => $targetEl->getId()]]; if ($element instanceof Document) { $element = Document\Service::rewriteIds($element, $rewriteConfig); } elseif ($element instanceof Object\AbstractObject) { $element = Object\Service::rewriteIds($element, $rewriteConfig); } elseif ($element instanceof Asset) { $element = Asset\Service::rewriteIds($element, $rewriteConfig); } $element->setUserModification($this->getUser()->getId()); $element->save(); $success = true; } else { $message = "source-type and target-type do not match"; } $this->_helper->json(["success" => $success, "message" => $message]); }
public function copyRewriteIdsAction() { $transactionId = $this->getParam("transactionId"); $idStore = Session::useSession(function ($session) use($transactionId) { return $session->{$transactionId}; }, "pimcore_copy"); if (!array_key_exists("rewrite-stack", $idStore)) { $idStore["rewrite-stack"] = array_values($idStore["idMapping"]); } $id = array_shift($idStore["rewrite-stack"]); $document = Document::getById($id); if ($document) { // create rewriteIds() config parameter $rewriteConfig = array("document" => $idStore["idMapping"]); $document = Document\Service::rewriteIds($document, $rewriteConfig, array("enableInheritance" => $this->getParam("enableInheritance") == "true" ? true : false)); $document->setUserModification($this->getUser()->getId()); $document->save(); } // write the store back to the session Session::useSession(function ($session) use($transactionId, $idStore) { $session->{$transactionId} = $idStore; }, "pimcore_copy"); $this->_helper->json(array("success" => true, "id" => $id)); }