/** * @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]; }
/** * {@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(); }
/** * @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); } }
/** * @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(); }
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); } }
/** * 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)); }