custom/plugins/CytrusImport/src/Twig/AttachmentExtension.php line 17

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Cytrus\Import\Twig;
  3. use Psr\Container\ContainerInterface;
  4. use Twig\Extension\AbstractExtension;
  5. use Twig\TwigFunction;
  6. use Shopware\Core\Framework\Context;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\ContainsFilter;
  9. class AttachmentExtension extends AbstractExtension
  10. {
  11.     public function __construct(ContainerInterface $container)
  12.     {
  13.         $this->container = $container;
  14.     }
  15.     
  16.     public function getFunctions()
  17.     {
  18.         return [
  19.             new TwigFunction('orderAttachments', [$this, 'getOrderAttachments']),
  20.         ];
  21.     }
  22.     public function getOrderAttachments($ordernumber)
  23.     {
  24.         $entities = $this->container->get('media.repository')->search(
  25.             (new Criteria())->addFilter(new ContainsFilter('fileName', $ordernumber . '_')),
  26.             Context::createDefaultContext()
  27.         );
  28.         
  29.         $files = [];
  30.         if(count($entities) > 0) {
  31.             foreach($entities as $entity) {
  32.                 $files[] = ['url' => str_replace('..','.',$entity->getUrl()), 'basename' => basename($entity->getUrl())];
  33.             }
  34.         }
  35.         return $files;
  36.     }
  37. }