diff --git a/src/Service/FeedService.php b/src/Service/FeedService.php index ee67474..f92f45d 100644 --- a/src/Service/FeedService.php +++ b/src/Service/FeedService.php @@ -14,6 +14,7 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class FeedService { protected string $baseFeedUrl; + protected string $baseImageUrl; public function __construct( protected EntityManagerInterface $entityManager, @@ -21,11 +22,13 @@ class FeedService UrlGeneratorInterface $urlGenerator, ) { - $this->baseFeedUrl = $urlGenerator->generate( + $rootUrl = $urlGenerator->generate( 'app_index', [], UrlGeneratorInterface::ABSOLUTE_URL - ) . Constants::FILES_BASE_PATH; + ); + $this->baseFeedUrl = $rootUrl . Constants::FILES_BASE_PATH; + $this->baseImageUrl = $rootUrl . Constants::IMAGES_BASE_PATH; } public const DOCUMENT_VERSION = '2.0'; @@ -43,11 +46,14 @@ class FeedService $titleElement->appendChild(new DOMText($podcast->getName())); $channelElement->appendChild(new DOMElement('description', $podcast->getDescription())); $channelElement->appendChild(new DOMElement('link', $podcast->getWebsite())); - $imageElement = new DOMElement('image'); - $channelElement->appendChild($imageElement); - $imageElement->appendChild(new DOMElement('url', $podcast->getLogoUrl())); - $imageElement->appendChild(new DOMElement('title', 'logo')); - $imageElement->appendChild(new DOMElement('link', $podcast->getWebsite())); + $logoFilename = $podcast->getLogoFilename(); + if ($logoFilename !== null) { + $imageElement = new DOMElement('image'); + $channelElement->appendChild($imageElement); + $imageElement->appendChild(new DOMElement('url', $this->baseImageUrl . $logoFilename)); + $imageElement->appendChild(new DOMElement('title', 'logo')); + $imageElement->appendChild(new DOMElement('link', $podcast->getWebsite())); + } $episodes = $this->entityManager->createQuery( 'SELECT e FROM App\Entity\Episode e'