/** * @param Attachment $attachment * @param array $dimensionIds * * @return ImageInstance */ public function create(Attachment $attachment, DimensionContainer $dimensionContainer) { $validate = $this->constraints->getConstraints($attachment, $dimensionContainer); if ($validate) { $fs = new Filesystem(); $fs->remove(sprintf('%s/%s', $this->tempPath, $attachment->getFile())); $fs->remove(sprintf('%s/%s', $this->uploadPath, $attachment->getFile())); $this->objectManager->remove($attachment); $this->objectManager->flush(); return $validate; } $instance = new ImageInstance(); $instance->setName($attachment->getName()); $this->objectManager->persist($instance); foreach ($dimensionContainer->getDimensions() as $dimension) { $cropping = new ImageCropping(); $cropping->setAttachment($attachment); $cropping->setInstance($instance); $cropping->setDimension($dimension); $cropping->setName($attachment->getName()); $this->objectManager->persist($cropping); } $this->objectManager->flush(); return $instance; }
/** * @param Request $request * @param Attachment $attachment * @param ImageInstance $imageInstance * * @return JsonResponse|\Symfony\Component\HttpFoundation\Response */ public function editAction(Request $request, Attachment $attachment, ImageInstance $imageInstance) { $em = $this->getDoctrine()->getManager(); $findCurrentDimensions = $em->getRepository('BigfishMediaBundle:Attachment')->findDimensions($attachment->getId(), $imageInstance->getId()); $form = $this->createForm(new ImageCollectionType($findCurrentDimensions)); $form->handleRequest($request); if ($form->isValid()) { foreach ($findCurrentDimensions as $cropping) { $exists = $em->getRepository('BigfishMediaBundle:ImageCropping')->findOneBy(array('attachment' => $attachment, 'instance' => $imageInstance->getId(), 'id' => $cropping->getId())); $generatedCropping = $this->container->get('bigfish.media.cropping.handler')->initialize($attachment, $cropping, $exists)->execute(); $em->persist($generatedCropping); } $em->flush(); return new JsonResponse(array('success' => true, 'currentUrl' => $this->generateUrl('media_form', array('value' => $imageInstance->getId())))); } return $this->render('BigfishMediaBundle:Default:edit.html.twig', array('attachment' => $attachment, 'selected' => $request->get('selected'), 'form' => $form->createView(), 'dimensions' => $findCurrentDimensions, 'actionUrl' => $this->generateUrl('media_edit', array('attachment' => $attachment->getId(), 'imageInstance' => $imageInstance->getId())))); }
public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('instance_id', 'hidden', array('data' => $this->instance->getId(), 'constraints' => array(new EqualTo(array('value' => $this->instance->getId()))))); }