/** * Try selecting abstract page by request parameter. * * @param string $key * @return null|AbstractPage */ private function searchPageByRequestKey($key) { $pageId = $this->getRequestParameter($key); if (empty($pageId)) { return null; } return $this->getEntityManager()->find(AbstractPage::CN(), $pageId); }
/** * Groups are inside the same repository as the pages * @return string */ public function getNestedSetRepositoryClassName() { return Abstraction\AbstractPage::CN(); }
/** * @param AbstractPage $source * @return AbstractPage */ public function copyAbstractPage(AbstractPage $source) { $deepCopy = new DeepCopy(); $entityManager = $this->container->getDoctrine()->getManagerForClass(get_class($source)); $deepCopy->addFilter(new KeepFilter(), new PropertyMatcher(AbstractPage::CN(), 'nestedSetNode')); $this->addDeepCopyCommonFilters($deepCopy, $entityManager); $copiedPage = $deepCopy->copy($source); $entityManager->persist($copiedPage); return $copiedPage; }