コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
 /**
  * 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());
 }
コード例 #3
0
 /**
  * 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;
 }
コード例 #4
0
 /**
  * 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();
 }
コード例 #5
0
 /**
  * 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'));
 }
コード例 #6
0
 /**
  * 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()));
 }