/** * Load language fixtures * * @author Etienne de Longeaux <*****@*****.**> * @since 2012-01-23 */ public function load(ObjectManager $manager) { $field1 = new Page(); $field1->setRouteName('home_page'); $field1->setUrl(''); $field1->setLayout($this->getReference('layout-pi-sfynx')); $field1->setUser($this->getReference('user-admin')); $field1->setMetaContentType(PageRepository::TYPE_TEXT_HTML); $field1->setCacheable(false); $field1->setLifetime("0"); $field1->setPublic(false); $field1->setEnabled(true); $manager->persist($field1); $field2 = new Page(); $field2->setRouteName('error_404'); $field2->setUrl('404error'); $field2->setLayout($this->getReference('layout-pi-error')); $field2->setUser($this->getReference('user-admin')); $field2->setMetaContentType(PageRepository::TYPE_TEXT_HTML); $field2->setCacheable(false); $field2->setLifetime("86400"); $field2->setPublic(false); $field2->setEnabled(true); $manager->persist($field2); $field3 = new Page(); $field3->setRouteName('page_route_name_reset'); $field3->setUrl('reset'); $field3->setLayout($this->getReference('layout-pi-sfynx')); $field3->setUser($this->getReference('user-admin')); $field3->setMetaContentType(PageRepository::TYPE_TEXT_HTML); $field3->setCacheable(false); $field3->setLifetime("0"); $field3->setPublic(false); $field3->setEnabled(true); $manager->persist($field3); $manager->flush(); $this->addReference('page-homepage', $field1); $this->addReference('page-error', $field2); $this->addReference('page-reset', $field3); }
/** * Creates a new Page entity. * * @Secure(roles="ROLE_EDITOR") * @return \Symfony\Component\HttpFoundation\Response * * @access public * @author Etienne de Longeaux <*****@*****.**> */ public function createAction() { $User = $this->get('security.context')->getToken()->getUser(); $entity = new Page(); $entity->setMetaContentType(PageRepository::TYPE_TEXT_HTML); $entity->setUser($User); $request = $this->getRequest(); $form = $this->createForm(new PageType($this->container, $User->getRoles()), $entity, array('show_legend' => false)); $form->bind($request); if ('POST' === $request->getMethod()) { if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); // On persiste tous les blocks d'une page. foreach ($entity->getBlocks() as $block) { $entity->addBlock($block); } $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('admin_pagebyblock_show', array('id' => $entity->getId()))); } return $this->render('SfynxCmfBundle:PageByBlock:new.html.twig', array('entity' => $entity, 'form' => $form->createView())); } return array('form' => $form->createView()); }
/** * Return all urls of a page * * @param Page $page Page entity * @param string $type ['sql'] * * @return array * @access public * @author Etienne de Longeaux <*****@*****.**> * @since 2012-06-21 */ public function getUrlByPage(Page $page, $type = '') { $urls = array(); // we register all urls of the page foreach ($page->getTranslations() as $key => $translationPage) { if ($translationPage instanceof TranslationPage) { $locale = $translationPage->getLangCode()->getId(); $url = $page->getUrl(); $slug = $translationPage->getSlug(); if (!empty($url) && !empty($slug)) { $urls[$locale] = $url . "/" . $slug; } elseif (!empty($url) && empty($slug)) { $urls[$locale] = $url; } elseif (empty($url) && !empty($slug)) { $urls[$locale] = $slug; } elseif (empty($url) && empty($slug)) { $urls[$locale] = ""; } $is_prefix_locale = $this->container->getParameter("pi_app_admin.page.route.with_prefix_locale"); if ($is_prefix_locale) { $locale_tmp = explode('_', $locale); $urls[$locale] = $locale_tmp[0] . '/' . $urls[$locale]; } $urls[$locale] = str_replace("//", "/", $urls[$locale]); if ($type == 'sql') { $urls[$locale] = str_replace("/", "\\\\\\\\\\/", $urls[$locale]); } } } return $urls; }
/** * Deletes an indexed page. * * @param \Sfynx\CmfBundle\Entity\Page * @return void * @access public * * @author Etienne de Longeaux <*****@*****.**> * @since 2012-06-11 */ public function deletePage(\Sfynx\CmfBundle\Entity\Page $page) { // Open the index self::open($this->_indexPath); // Search for documents with the same route_name. $hits = self::$_index->find('Route:' . $page->getRouteName()); // Delete any documents found. foreach ($hits as $hit) { self::$_index->delete($hit->id); //print_r($hit->getDocument()->Route); //print_r('<br />'); } // Commit the index self::commit(); }
/** * Deletes a Page entity. * * @param Request $request The request instance * @param Page $entity A page entity * * @Secure(roles="ROLE_EDITOR") * @return RedirectResponse * @access public * @author Etienne de Longeaux <*****@*****.**> */ public function deleteAction(Request $request, Page $entity) { $form = $this->createDeleteForm($entity->getId()); $request = $this->getRequest(); $form->bind($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); try { $em->remove($entity); $em->flush(); } catch (\Exception $e) { $this->container->get('request')->getSession()->getFlashBag()->clear(); $this->container->get('request')->getSession()->getFlashBag()->add('notice', 'pi.session.flash.wrong.undelete'); } } return $this->redirect($this->generateUrl('admin_pagebytrans')); }
/** * Displays a form to create a new Page entity. * * @Secure(roles="ROLE_EDITOR") * @return \Symfony\Component\HttpFoundation\Response * * @access public * @author Etienne de Longeaux <*****@*****.**> */ public function newAction() { $entity = new Page(); $entity->setMetaContentType(PageRepository::TYPE_TEXT_CSS); $form = $this->createForm(new PageType($this->container), $entity, array('show_legend' => false)); return $this->render('SfynxCmfBundle:PageCssJs:new.html.twig', array('entity' => $entity, 'form' => $form->createView())); }