/** * @param EntityManager $em * @param array $imagesArray * @param Advertisment $adv * @return array */ public static function uploadImages(EntityManager $em, $imagesArray, $adv) { $dummyImage = '/resources/images/adv-default.png'; $basePath = 'uploads/' . $adv->getId(); $uploadedImages = array(); $adv = $em->getRepository('NaidusvoeBundle:Advertisment')->find($adv->getId()); $fs = new Filesystem(); $counter = 1; if ($imagesArray) { foreach ($imagesArray as $image) { $image = (object) $image; if ($image->image !== null) { $imagePath = $basePath . '/' . $counter . '.jpg'; $image = explode(',', $image->image); $image = base64_decode($image[1]); $fs->dumpFile($imagePath, $image); $attachment = new Attachment(); $attachment->setAdvertisment($adv); $attachment->setImage($imagePath); $em->persist($attachment); $uploadedImages[] = $attachment; $counter++; } } } if ($counter === 1) { $attachment = new Attachment(); $attachment->setAdvertisment($adv); $attachment->setImage($dummyImage); $em->persist($attachment); $uploadedImages[] = $attachment; } return $uploadedImages; }
private function generateDummyAdvs($count, $type) { $advs = []; for ($i = 0; $i < $count; $i++) { $newAdv = new Advertisment(); $newAdv->setTitle('Ваша реклама'); $attachment = new Attachment(); $attachment->setImage('/resources/images/adv-default.png'); $newAdv->addAttachment($attachment); $newAdv->setDescription('Тут може бути ваша реклама!'); $newAdv->setDummy(true); $newAdv->setType($type); $advs[] = $newAdv; } return $advs; }
/** * @param object $data * @param User $user * @return Advertisment */ private function AddAdv($data, $user) { /** @var EntityManager $em */ $em = $this->getDoctrine()->getManager(); $adv = Advertisment::addNewAdv($em, $data, $user->getId()); $em->persist($adv); $em->flush($adv); $attachments = Attachment::uploadImages($em, $data->photos, $adv); foreach ($attachments as $item) { $em->persist($item); } $em->flush(); return $adv; }