public function makeTranslationCopy(PageInterface $page, $locale)
{
if ($this->getParameter('networking_init_cms.db_driver') == 'orm') {
/** @var \Doctrine\Common\Persistence\ObjectManager $em */
$em = $this->getService('doctrine')->getManager();
} else {
/** @var \Doctrine\Common\Persistence\ObjectManager $em */
$em = $this->getService('doctrine_mongodb')->getManager();
}
/** @var \Networking\InitCmsBundle\Model\PageManagerInterface $pageManger */
$pageManger = $this->getService('networking_init_cms.page_manager');
$pageClass = $pageManger->getClassName();
/** @var PageInterface $pageCopy */
$pageCopy = new $pageClass();
$pageCopy->setPageName($page->getPageName());
$pageCopy->setMetaTitle($page->getMetaTitle());
$pageCopy->setUrl($page->getUrl());
$pageCopy->setMetaKeyword($page->getMetaKeyword());
$pageCopy->setMetaDescription($page->getMetaDescription());
$pageCopy->setActiveFrom($page->getActiveFrom());
$pageCopy->setIsHome($page->getIsHome());
$pageCopy->setLocale($locale);
$pageCopy->setTemplateName($page->getTemplateName());
$pageCopy->setOriginal($page);
$layoutBlocks = $page->getLayoutBlock();
foreach ($layoutBlocks as $layoutBlock) {
/** @var $newLayoutBlock \Networking\InitCmsBundle\Model\LayoutBlockInterface */
$newLayoutBlock = clone $layoutBlock;
$content = $em->getRepository($newLayoutBlock->getClassType())->find($newLayoutBlock->getObjectId());
$newContent = clone $content;
$em->persist($newContent);
$em->flush();
$newLayoutBlock->setObjectId($newContent->getId());
$newLayoutBlock->setPage($pageCopy);
$em->persist($newLayoutBlock);
}
$em->persist($pageCopy);
$em->flush();
return $pageCopy;
}