/** * @param Request $request * @param Request $securekey * @param Request $redirect * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function submitAction(Request $request, $securekey, $redirect) { $locale = $request->getLocale(); $mode = "module-submission"; $em = $this->getDoctrine()->getManager(); $cs = $this->get('ssone.cms.content'); $fieldsRepository = $this->getFieldsRepository(); $blockService = $this->get('ssone.cms.block'); $contentType = $this->getDoctrine()->getRepository('SSoneCMSBundle:ContentType')->findBySecurekey($securekey); $content = new content(); $content->setContentType($contentType); $blockService->contentBlockManager($content); $form = $this->createForm(new ContentTYPE($mode, $fieldsRepository, $cs, $locale), $content); $form->handleRequest($request); print $contentType->getName(); print $form->isValid(); if ($form->isValid()) { $auditor = $this->get('ssone.cms.recordauditor'); $auditor->auditRecord($content); //Audit blocks and fields foreach ($content->getBlocks() as $block) { $auditor->auditRecord($block); foreach ($block->getBlockFields() as $blockField) { $auditor->auditRecord($blockField); } } //handle file uploads $uploader = $this->get('ssone.cms.fileuploader'); foreach ($form['blocks'] as $block) { foreach ($block['blockFields'] as $blockField) { foreach ($blockField['fieldContent'] as $input) { if (strpos($input->getName(), '_fileupload') !== false) { $params = explode("_", $input->getName()); $fieldSettings = $fieldsRepository->findBySecurekey($params[2])->getFieldTypeSettings(); if ($fp = $uploader->contentFileUpload($input->getData(), $fieldSettings['fileupload']['fileuploadfolder'])) { //Get current field content $blockFieldObj = $blockField->getData(); $blockFieldContents = $blockFieldObj->getFieldContent(); $blockFieldContents[$params[0]] = $fp; unset($blockFieldContents[$input->getName()]); $blockFieldObj->setFieldContent($blockFieldContents); } } } } } $em->persist($content); $em->flush(); $storedContent = $cs->findSecureKeyById($content->getId()); $this->cacheContent($content->getId(), $cs, $em); return $this->redirect($this->generateUrl('ssone_cms_frontend', array('uri' => $redirect))); } return $this->render('SSoneCMSBundle:Content:crud.html.twig', array('form' => $form->createView(), 'contentTitle' => $content->getName(), 'mode' => $mode, 'locale' => $locale)); }