/** * {@inheritdoc} */ public function createImageRendition(ImageInterface $image, ArticleMediaInterface $articleMedia, string $key, Rendition $rendition) : ImageRenditionInterface { $imageRendition = new ImageRendition(); $imageRendition->setImage($image); $imageRendition->setMedia($articleMedia); $imageRendition->setHeight($rendition->getHeight()); $imageRendition->setWidth($rendition->getWidth()); $imageRendition->setName($key); return $imageRendition; }
/** * Sets articles manually (not via Alice) for test env due to fatal error: * Method PHPCRProxies\__CG__\Doctrine\ODM\PHPCR\Document\Generic::__toString() must not throw an exception. */ public function loadArticles($env, $manager) { $articles = ['test' => [['title' => 'Test news article', 'content' => 'Test news article content', 'locale' => 'en']]]; $renditions = ['original' => ['width' => '4000', 'height' => '2667', 'media' => '12345678987654321a'], '16-9' => ['width' => '1079', 'height' => '720', 'media' => '12345678987654321b'], '4-3' => ['width' => '800', 'height' => '533', 'media' => '12345678987654321c']]; $mediaManager = $this->container->get('swp_content_bundle.manager.media'); $fakeImage = __DIR__ . '/../../Resources/assets/test_cc_image.jpg'; if (isset($articles[$env])) { foreach ($articles[$env] as $articleData) { $article = $this->container->get('swp.factory.article')->create(); $article->setTitle($articleData['title']); $article->setBody($articleData['content']); $article->setLocale($articleData['locale']); $article->setPublishedAt(new \DateTime()); $article->setPublishable(true); $article->setStatus(ArticleInterface::STATUS_PUBLISHED); $manager->persist($article); // create Media $articleMediaClass = $this->container->getParameter('swp.model.media.class'); $articleMedia = new $articleMediaClass(); $articleMedia->setArticle($article); $articleMedia->setKey('embedded6358005131'); $articleMedia->setBody('article media body'); $articleMedia->setByLine('By Best Editor'); $articleMedia->setLocated('Porto'); $articleMedia->setDescription('Media description'); $articleMedia->setUsageTerms('Some super open terms'); $articleMedia->setMimetype('image/jpeg'); $manager->persist($articleMedia); /* @var $rendition Rendition */ foreach ($renditions as $key => $rendition) { $uploadedFile = new UploadedFile($fakeImage, $rendition['media'], 'image/jpeg', filesize($fakeImage), null, true); $image = $mediaManager->handleUploadedFile($uploadedFile, $rendition['media']); if ($key === 'original') { $articleMedia->setImage($image); } $imageRendition = new ImageRendition(); $imageRendition->setImage($image); $imageRendition->setHeight($rendition['height']); $imageRendition->setWidth($rendition['width']); $imageRendition->setName($key); $imageRendition->setMedia($articleMedia); $articleMedia->addRendition($imageRendition); $manager->persist($imageRendition); } } $manager->flush(); } }