src/Twig/AppExtension.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Twig;
  3. use Twig\Extension\AbstractExtension;
  4. use Twig\TwigFilter;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use App\Entity\File;
  7. use App\Service\UrlHelper;
  8. class AppExtension extends AbstractExtension
  9. {
  10.   public function __construct(EntityManagerInterface $emUrlHelper $urlHelper )
  11.   {
  12.       $this->em $em;
  13.       $this->urlHelper $urlHelper;
  14.   }
  15.     public function getFilters()
  16.     {
  17.         return [
  18.             new TwigFilter('documentUrl', [$this'documentUrl']),
  19.             new TwigFilter('privateDocumentUrl', [$this'privateDocumentUrl']),
  20.         ];
  21.     }
  22. //finds src and removes all ../ from it
  23.     public function documentUrl($record)
  24.     {
  25.       $doc $this->em ->getRepository(File::class)->findOneBy(array('itemId' => $record->getId(), 'section' => 'generaldocument''type' => 'document'), ['sort' => 'ASC']);
  26.       $docUrl = ($doc) ? $this->urlHelper->createDocumentUrl('generaldocument'$record->getId(), $doc->getId(), $doc->getExtension()) : null;
  27.       return $docUrl;
  28.     }
  29.     public function privateDocumentUrl($record)
  30.     {
  31.       $doc $this->em ->getRepository(File::class)->findOneBy(array('itemId' => $record->getId(), 'section' => 'privatedocument''type' => 'document'), ['sort' => 'ASC']);
  32.       $docUrl = ($doc) ? $this->urlHelper->createDocumentUrl('privatedocument'$record->getId(), $doc->getId(), $doc->getExtension()) : null;
  33.       return $docUrl;
  34.     }
  35. }