public function setTranslationText($translationText) { $this->translationText = $translationText; return $this; }
/** * Upload new attachment * * @param UploadedFile $file * @param string $descriptionText * @param Language $language * @param array $attributes * @param Attachment $attachment * * @return Attachment */ public function upload(UploadedFile $file, $descriptionText, Language $language, array $attributes, Attachment $attachment = null) { $filesystem = new Filesystem(); $filesize = $file->getClientSize(); if ($filesize == false) { throw new FileException('File size is not valid'); } if (!file_exists($this->config['file_directory']) || !is_writable($this->config['file_directory'])) { throw new FileException('Directory ' . $this->config['file_directory'] . ' is not writable'); } if (!is_null($attachment)) { if ($filesystem->exists($this->getStorageLocation($attachment))) { $filesystem->remove($this->getStorageLocation($attachment)); } if ($descriptionText != $attachment->getDescription()->getTranslationText()) { $nextTranslationPhraseId = $this->em->getRepository('Newscoop\\Entity\\AutoId')->getNextTranslationPhraseId(); $description = new Translation($nextTranslationPhraseId); $description->setLanguage($language); $description->setTranslationText($descriptionText); $this->em->persist($description); } unset($attributes['description']); } else { $attachment = new Attachment(); $nextTranslationPhraseId = $this->em->getRepository('Newscoop\\Entity\\AutoId')->getNextTranslationPhraseId(); $description = new Translation($nextTranslationPhraseId); $description->setLanguage($language); $description->setTranslationText($descriptionText); unset($attributes['description']); $attachment->setCreated(new \DateTime()); $this->em->persist($description); $this->em->persist($attachment); } $attributes = array_merge(array('language' => $language, 'name' => $file->getClientOriginalName(), 'extension' => $file->getClientOriginalExtension(), 'mimeType' => $file->getClientMimeType(), 'contentDisposition' => Attachment::CONTENT_DISPOSITION, 'sizeInBytes' => $file->getClientSize(), 'description' => $description), $attributes); $this->fillAttachment($attachment, $attributes); if (is_null($attributes['name'])) { $attachment->setName($file->getClientOriginalName()); } $this->em->flush(); $target = $this->makeDirectories($attachment); try { $file->move($target, $this->getFileName($attachment)); $filesystem->chmod($target . '/' . $this->getFileName($attachment), 0644); } catch (\Exceptiom $e) { $filesystem->remove($target); $this->em->remove($attachment); $this->em->flush(); throw new \Exception($e->getMessage(), $e->getCode()); } return $attachment; }