vendor/shopware/core/Framework/Adapter/Twig/Extension/MediaExtension.php line 40

  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Adapter\Twig\Extension;
  3. use Shopware\Core\Content\Media\MediaCollection;
  4. use Shopware\Core\Framework\Context;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  7. use Shopware\Core\Framework\Log\Package;
  8. use Twig\Extension\AbstractExtension;
  9. use Twig\TwigFunction;
  10. #[Package('core')]
  11. class MediaExtension extends AbstractExtension
  12. {
  13.     /**
  14.      * @internal
  15.      */
  16.     public function __construct(private readonly EntityRepository $mediaRepository)
  17.     {
  18.     }
  19.     public function getFunctions(): array
  20.     {
  21.         return [
  22.             new TwigFunction('searchMedia'$this->searchMedia(...)),
  23.         ];
  24.     }
  25.     public function searchMedia(array $idsContext $context): MediaCollection
  26.     {
  27.         if (empty($ids)) {
  28.             return new MediaCollection();
  29.         }
  30.         $criteria = new Criteria($ids);
  31.         /** @var MediaCollection $media */
  32.         $media $this->mediaRepository
  33.             ->search($criteria$context)
  34.             ->getEntities();
  35.         return $media;
  36.     }
  37. }