Esempio n. 1
0
 /**
  * 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()]);
 }
Esempio n. 2
0
 /**
  * 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()]);
 }