public function submit() { $r = new PageEditResponse(); if ($this->validateAction()) { $oc = $this->page; $successMessage = false; $ocp = new Permissions($oc); if ($oc->getCollectionParentID() != $_POST['cParentID']) { $dc = Page::getByID($_POST['cParentID'], 'RECENT'); if (!is_object($dc) || $dc->isError()) { throw new Exception('Invalid parent page.'); } $dcp = new Permissions($dc); $ct = PageType::getByID($this->page->getPageTypeID()); if (!$dcp->canAddSubpage($ct)) { throw new Exception('You do not have permission to add this subpage here.'); } if (!$oc->canMoveCopyTo($dc)) { throw new Exception('You cannot add a page beneath itself.'); } if ($oc->isPageDraft()) { $oc->setPageDraftTargetParentPageID($dc->getCollectionID()); } else { $u = new User(); $pkr = new MovePagePageWorkflowRequest(); $pkr->setRequestedPage($oc); $pkr->setRequestedTargetPage($dc); $pkr->setSaveOldPagePath(false); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($oc); $response = $pkr->trigger(); if ($response instanceof WorkflowProgressResponse) { $nc = Page::getByID($oc->getCollectionID()); $r->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($nc)); } } } // now we do additional page URLs $oc->clearAdditionalPagePaths(); $req = Request::getInstance(); if ($req->request->has('additionalPath')) { $additionalPath = (array) $req->request->get('additionalPath'); foreach ($additionalPath as $path) { $oc->addAdditionalPagePath($path, false); } } Database::get()->getEntityManager()->flush(); $r->setTitle(t('Page Updated')); $r->setMessage(t('Page location information saved successfully.')); $r->setPage($this->page); $nc = Page::getByID($this->page->getCollectionID(), 'ACTIVE'); $r->outputJSON(); } }
public function submit() { $r = new PageEditResponse(); if ($this->validateAction()) { $oc = $this->page; if ($oc->getCollectionParentID() != $_POST['cParentID']) { if ($this->page->getCollectionID() == HOME_CID) { throw new Exception('You cannot move the homepage.'); } $dc = Page::getByID($_POST['cParentID'], 'RECENT'); if (!is_object($dc) || $dc->isError()) { throw new Exception('Invalid parent page.'); } $dcp = new Permissions($dc); $ct = PageType::getByID($this->page->getPageTypeID()); if (!$dcp->canAddSubpage($ct)) { throw new Exception('You do not have permission to add this subpage here.'); } if (!$oc->canMoveCopyTo($dc)) { throw new Exception('You cannot add a page beneath itself.'); } if ($oc->isPageDraft()) { $oc->setPageDraftTargetParentPageID($dc->getCollectionID()); } else { $u = new User(); $pkr = new MovePagePageWorkflowRequest(); $pkr->setRequestedPage($oc); $pkr->setRequestedTargetPage($dc); $pkr->setSaveOldPagePath(false); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($oc); $response = $pkr->trigger(); if ($response instanceof WorkflowProgressResponse && !$this->request->request->get('sitemap')) { $nc = Page::getByID($oc->getCollectionID()); $r->setRedirectURL(Loader::helper('navigation')->getLinkToCollection($nc)); } } } // now we do additional page URLs $req = Request::getInstance(); $oc->clearPagePaths(); $canonical = $req->request->get('canonical'); $pathArray = $req->request->get('path'); if (isset($canonical) && $this->page->getCollectionID() == HOME_CID) { throw new Exception('You cannot change the canonical path of the home page.'); } if (is_array($pathArray)) { foreach ($pathArray as $i => $path) { $p = new PagePath(); $p->setPagePath($path); $p->setPageObject($this->page); if ($canonical == $i) { $p->setPagePathIsCanonical(true); } \ORM::entityManager()->persist($p); } } \ORM::entityManager()->flush(); $r->setTitle(t('Page Updated')); $r->setMessage(t('Page location information saved successfully.')); $r->setPage($this->page); $nc = Page::getByID($this->page->getCollectionID(), 'ACTIVE'); $r->outputJSON(); } }
} } } if (!is_object($nc2)) { $error = t("An error occurred while attempting the copy operation."); } else { $newCID[] = $nc2->getCollectionID(); } break; case "MOVE": foreach ($originalPages as $oc) { $ocp = new Permissions($oc); Session::set('movePageSaveOldPagePath', $_REQUEST['saveOldPagePath']); $pkr = new MovePagePageWorkflowRequest(); $pkr->setRequestedPage($oc); $pkr->setRequestedTargetPage($dc); $pkr->setSaveOldPagePath($_REQUEST['saveOldPagePath']); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($oc); $r = $pkr->trigger(); if ($r instanceof \Concrete\Core\Workflow\Progress\Response) { $successMessage .= '"' . $oc->getCollectionName() . '" ' . t('was moved beneath') . ' "' . $dc->getCollectionName() . '." '; } else { $successMessage .= t("Your request to move \"%s\" beneath \"%s\" has been stored. Someone with approval rights will have to activate the change.\n", $oc->getCollectionName(), $dc->getCollectionName()); } } $newCID[] = $oc->getCollectionID(); break; } } else { $error = $valt->getErrorMessage();