/**
  * @Method({"GET"})
  * @Route("/{id}/{slug}", name="app_page_show", requirements={"id" = "\d+", "slug" = "[a-z0-9_-]+"}, defaults={"slug" = null})
  * @Template("page/read.html.twig")
  */
 public function showAction(Page $page, $slug = null)
 {
     /** @var Slugify $slugify */
     $slugify = $this->get('slugify');
     $slugCheck = $slugify->slugify($page->getName());
     if ($slug !== $slugCheck) {
         return $this->redirect($this->generateUrl('app_page_show', ['id' => $page->getId(), 'slug' => $slugCheck]));
     }
     return ['page' => $page];
 }
Example #2
0
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $root = new Page();
     $root->setTitle(Page::ROOT_MENU_TITLE);
     $root->setContent('This is the Menu Root. DO NOT EDIT!');
     $mainMenu = new Page();
     $mainMenu->setTitle(Page::MAIN_MENU_TITLE);
     $mainMenu->setContent('This is the MainMenu. DO NOT EDIT!');
     $extraMenu = new Page();
     $extraMenu->setTitle(Page::EXTRA_MENU_TITLE);
     $extraMenu->setContent('This is the ExtraMenu. DO NOT EDIT!');
     $repos = $manager->getRepository('AppBundle:Page');
     $repos->persistAsFirstChild($root)->persistAsFirstChildOf($mainMenu, $root)->persistAsLastChildOf($extraMenu, $root);
     $manager->flush();
 }
Example #3
0
 /**
  * @Route("/create", name="admin_page_create")
  * @Security("has_role('ROLE_PAGE_CREATE')")
  */
 public function createAction(Request $request)
 {
     $page = new Page();
     $page->setAuthor($this->getUser());
     $form = $this->createForm(new PageType(), $page);
     if ($form->handleRequest($request)->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $page->setSlug($this->get('slugify')->slugify($page->getTitle()));
         $em->persist($page);
         $em->flush();
         $flash = sprintf("La page \"%s\"a bien été créée.", $page->getTitle());
         $request->getSession()->getFlashBag()->add('success', $flash);
         return $this->redirect($this->generateUrl('admin_entity_list', array('entity' => 'page')));
     }
     return $this->render('@App/Admin/Page/create.html.twig', array('form' => $form->createView(), 'page' => $page));
 }
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     $pageRecords = [['name' => 'about', 'title' => 'A propos', 'content' => '
         **ok** *about* ***a propos***
         ### Hey
         ']];
     foreach ($pageRecords as $pageRecord) {
         $page = new Page();
         $page->setName($pageRecord['name']);
         $page->setTitle($pageRecord['title']);
         $page->setContent($pageRecord['content']);
         $manager->persist($page);
         $manager->flush();
         $this->referenceRepository->addReference('page-' . $page->getId(), $page);
     }
 }
Example #5
0
 /**
  * @param Page $page
  */
 public function unsetHomepage(Page $page)
 {
     $qb = $this->createQueryBuilder('s');
     $qb->update()->set('s.isHomepage', intval(false))->where($qb->expr()->neq('s.id', $page->getId()))->andWhere($qb->expr()->eq('s.isHomepage', true));
     $qb->getQuery()->execute();
 }
Example #6
0
 private function moveSessionImages(Page $page, ObjectManager $em, $session)
 {
     $pageId = $page->getId();
     $sessionDir = $this->getParameter('image_upload_basedir') . $session . '/';
     $pageDir = $this->getParameter('image_upload_basedir') . $pageId . '/';
     if (is_dir($sessionDir)) {
         if (!is_dir($pageDir)) {
             mkdir($pageDir);
         }
         $content = str_replace($session, $pageId, $page->getContent());
         $page->setContent($content);
         $em->persist($page);
         $em->flush();
         $files = scandir($sessionDir);
         foreach ($files as $file) {
             if ($file !== '.' && $file !== '..') {
                 if (strpos($content, $file) !== false) {
                     rename($sessionDir . $file, $pageDir . $file);
                 } else {
                     unlink($sessionDir . $file);
                 }
             }
         }
         rmdir($sessionDir);
     }
 }
Example #7
0
 /**
  * Slugify the page's title.
  *
  * @param Page $page
  */
 private function setSlug(Page $page)
 {
     $title = $page->getTitle();
     $slugify = $this->getConfigurationPool()->getContainer()->get('slugify');
     $page->setSlug($slugify->slugify($title));
 }