/** * Function to load data * * @param \Doctrine\Common\Persistence\ObjectManager $manager */ public function load(ObjectManager $manager) { $entityPage = new Page(); $entityPage->setLft(0); $entityPage->setRgt(0); $manager->persist($entityPage); // $manager->flush(); }
/** * Update alias for page * @param \CMS\Bundle\AdminBundle\Entity\Page $page */ public function updateAlias(\CMS\Bundle\AdminBundle\Entity\Page $page) { $pageLanguages = $this->_em->getRepository($this->_entityName)->findBy(array('page' => $page->getId())); if (is_array($pageLanguages) && count($pageLanguages) > 0) { foreach ($pageLanguages as $pageLanguage) { $alias = $this->getAliasByName($pageLanguage->getName()); $aliasOk = false; while (!$aliasOk) { $plTemp = $this->_em->getRepository($this->_entityName)->findOneBy(array('alias' => $alias)); if (!$plTemp) { $aliasOk = true; } else { if ($pageLanguage->getId() != $plTemp->getId()) { $alias .= '-' . $pageLanguage->getId(); } else { $aliasOk = true; } } } $pageLanguage->setAlias($alias); $this->_em->persist($pageLanguage); $this->_em->flush(); } } }
/** * Reset the unique is_home and is_showreel of the Page * * @param \CMS\Bundle\AdminBundle\Entity\Page $page */ private function resetUnique(\CMS\Bundle\AdminBundle\Entity\Page $page) { if ($page->getIsHome()) { $this->getDoctrine()->getRepository("CMSAdminBundle:Page")->resetIsHome(); $page->setIsHome(1); } if ($page->getIsShowreel()) { $this->getDoctrine()->getRepository("CMSAdminBundle:Page")->resetIsShowreel(); $page->setIsShowreel(1); } }
/** * @param \CMS\Bundle\AdminBundle\Entity\Page $page the page */ public function moveDown(\CMS\Bundle\AdminBundle\Entity\Page $page) { //get the area upper $entityManager = $this->_em; $pageArray = array('id' => $page->getId(), 'lft' => $page->getLft(), 'rgt' => $page->getRgt()); $repositor = $entityManager->getRepository('CMSAdminBundle:Page'); $pageUnder = $repositor->findOneArrayBy(array('lft' => $pageArray['rgt'] + 1)); if ($pageUnder) { $del1 = $pageArray['rgt'] - $pageArray['lft']; $del2 = $pageUnder['rgt'] - $pageUnder['lft']; //calculate new lft, rgt of 2 node and swap $pageUnder['lft'] = $pageArray['lft']; $pageUnder['rgt'] = $pageArray['lft'] + $del2; $pageArray['lft'] = $pageUnder['rgt'] + 1; $pageArray['rgt'] = $pageArray['lft'] + $del1; $end = 0; //save new order $repositor->postOrderTraversal($pageUnder, $pageUnder['lft'], $end); $repositor->postOrderTraversal($pageArray, $pageArray['lft'], $end); } }