<?php declare(strict_types=1);
namespace Cytrus\Import\Twig;
use Psr\Container\ContainerInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
use Shopware\Core\Framework\Context;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\ContainsFilter;
class AttachmentExtension extends AbstractExtension
{
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function getFunctions()
{
return [
new TwigFunction('orderAttachments', [$this, 'getOrderAttachments']),
];
}
public function getOrderAttachments($ordernumber)
{
$entities = $this->container->get('media.repository')->search(
(new Criteria())->addFilter(new ContainsFilter('fileName', $ordernumber . '_')),
Context::createDefaultContext()
);
$files = [];
if(count($entities) > 0) {
foreach($entities as $entity) {
$files[] = ['url' => str_replace('..','.',$entity->getUrl()), 'basename' => basename($entity->getUrl())];
}
}
return $files;
}
}