Пример #1
0
 /**
  * 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()));
 }
Пример #2
0
 /**
  * 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()));
 }