/** * Create a new content item. * * @param Request $request * @param integer $type * * @return Response */ public function createAction(Request $request, $type = 0) { /** @var ContentManager $manager */ $manager = $this->get('opifer.content.content_manager'); if ($type) { $contentType = $this->get('opifer.content.content_type_manager')->getRepository()->find($type); $content = $this->get('opifer.eav.eav_manager')->initializeEntity($contentType->getSchema()); $content->setContentType($contentType); } else { $content = $manager->initialize(); } $form = $this->createForm(ContentType::class, $content); $form->handleRequest($request); if ($form->isValid()) { // Create a new document $blockManager = $this->get('opifer.content.block_manager'); $document = new DocumentBlock(); $document->setPublish(true); $document->setSuper($content->getTemplate()->getBlock()); $blockManager->save($document); $content->setBlock($document); $manager->save($content); return $this->redirectToRoute('opifer_content_contenteditor_design', ['type' => 'content', 'id' => $content->getId(), 'rootVersion' => 0]); } return $this->render($this->getParameter('opifer_content.content_new_view'), ['form' => $form->createView()]); }
/** * Select the type of content, the site and the language before actually * creating a new content item. * * @param Request $request * * @return Response */ public function newAction(Request $request) { /** @var ContentManager $manager */ $manager = $this->get('opifer.content.content_manager'); $event = new ResponseEvent($request); $this->get('event_dispatcher')->dispatch(Events::CONTENT_CONTROLLER_INIT, $event); if (null !== $event->getResponse()) { return $event->getResponse(); } $contentClass = $this->container->getParameter('opifer_content.content_class'); $content = new $contentClass(); $form = $this->createForm('opifer_content_details', $content); $form->handleRequest($request); if ($form->isValid()) { // Create a new document $blockManager = $this->get('opifer.content.block_manager'); $document = new DocumentBlock(); $document->setPublish(true); $blockManager->save($document); $content->setBlock($document); $manager->save($content); return $this->redirect($this->generateUrl('opifer_content_content_edit', ['id' => $content->getId(), 'version' => 0])); } return $this->render('OpiferContentBundle:Content:new.html.twig', ['form' => $form->createView()]); }