Example #1
0
 /**
  * Handle Article Media with Image (add renditions, set mimetype etc.).
  *
  * @param ArticleMedia  $articleMedia
  * @param string        $key          unique key shared between media and image rendition
  * @param ItemInterface $item
  *
  * @return ArticleMedia
  */
 protected function createImageMedia(ArticleMedia $articleMedia, string $key, ItemInterface $item)
 {
     if (0 === $item->getRenditions()->count()) {
         return $articleMedia;
     }
     $originalRendition = $item->getRenditions()['original'];
     $criteria = new Criteria();
     $criteria->set('assetId', ArticleMedia::handleMediaId($originalRendition->getMedia()));
     $articleMedia->setMimetype($originalRendition->getMimetype());
     $articleMedia->setKey($key);
     $image = $this->imageRepository->getByCriteria($criteria, [])->getQuery()->getOneOrNullResult();
     $articleMedia->setImage($image);
     foreach ($item->getRenditions() as $key => $rendition) {
         $criteria->set('assetId', ArticleMedia::handleMediaId($rendition->getMedia()));
         $image = $this->imageRepository->getByCriteria($criteria, [])->getQuery()->getOneOrNullResult();
         if (null === $image) {
             continue;
         }
         $imageRendition = $image->getRendition();
         if (null === $image->getRendition()) {
             $imageRendition = $this->createImageRendition($image, $articleMedia, $key, $rendition);
             $this->imageRepository->persist($imageRendition);
         }
         $articleMedia->addRendition($imageRendition);
     }
     return $articleMedia;
 }
Example #2
0
 /**
  * @param ItemInterface $item
  */
 public function setFromItem(ItemInterface $item)
 {
     $this->setBody($item->getBody() ?: $item->getBodyText());
     $this->setByLine($item->getByLine());
     $this->setLocated($item->getLocated());
     $this->setDescription($item->getDescription());
     $this->setUsageTerms($item->getUsageTerms());
 }