public function replace() { $this->checkNonce(); if (empty($this->params['Title'])) { throw new Exception('Title parameter is required', 210); } if (empty($this->params['ElementSlug'])) { throw new Exception('ElementSlug parameter is required', 220); } $title = $this->params['Title']; $slug = SlugUtils::createSlug($title); $noderef = new NodeRef($this->ElementService->getBySlug($this->Request->getParameter('ElementSlug')), $slug); // create node $node = $noderef->generateNode(); $this->NodeMapper->defaultsOnNode($node); $node->Title = $title; $node->Slug = $slug; $this->getErrors()->throwOnError(); // edit existing record if ($this->RegulatedNodeService->refExists($noderef)) { $existing = $this->RegulatedNodeService->getByNodeRef($noderef); $existing->setNodePartials($node->getNodePartials()); $existing->setMetas($node->getMetas()); $existing->setOutTags($node->getOutTags()); $node = $this->RegulatedNodeService->edit($node); //create new record } else { $node = $this->RegulatedNodeService->quickAdd($node); } $node = $this->RegulatedNodeService->getByNodeRef($node->getNodeRef(), new NodePartials()); $this->bindToActionDatasource(array($node)); return new View($this->successView()); }