/** * Action to clone a node * @param \ride\web\cms\Cms $cms * @param string $locale * @param string $site * @param string $revision * @param string $node * @return null */ public function cloneAction(Cms $cms, $locale, $site, $revision, $node) { if (!$cms->resolveNode($site, $revision, $node)) { return; } $this->setContentLocale($locale); $referer = $this->request->getQueryParameter('referer'); if ($this->request->isPost()) { $clone = $cms->cloneNode($node); $this->addSuccess('success.node.cloned', array('node' => $node->getName($locale))); $nodeType = $cms->getNodeType($clone); $url = $this->getUrl($nodeType->getRouteEdit(), array('site' => $site->getId(), 'revision' => $clone->getRevision(), 'locale' => $locale, 'node' => $clone->getId())); if ($referer) { $url .= '?referer=' . urlencode($referer); } $this->response->setRedirect($url); return; } $this->setTemplateView('cms/backend/confirm.form', array('type' => 'clone', 'referer' => $referer, 'site' => $site, 'node' => $node, 'locale' => $locale, 'locales' => $cms->getLocales())); }
/** * Action to clone a node * @param \ride\web\cms\Cms $cms * @param string $locale * @param string $site * @param string $revision * @return null */ public function cloneAction(Cms $cms, $locale, $site, $revision) { if (!$cms->resolveNode($site, $revision)) { return; } $this->setContentLocale($locale); $referer = $this->request->getQueryParameter('referer'); if ($this->request->isPost()) { try { $clone = $cms->cloneNode($site); $this->addSuccess('success.node.cloned', array('node' => $site->getName($locale))); $url = $this->getUrl('cms.site.edit', array('site' => $site->getId(), 'revision' => $site->getRevision(), 'locale' => $locale)); if ($referer) { $url .= '?referer=' . urlencode($referer); } $this->response->setRedirect($url); return; } catch (ValidationException $exception) { $this->setValidationException($exception); throw $exception; } } $this->setTemplateView('cms/backend/confirm.form', array('type' => 'clone', 'referer' => $referer, 'site' => $site, 'node' => $site, 'locale' => $locale, 'locales' => $cms->getLocales())); }