vendor/wearemarketing/webcontentbundle/Twig/EditInlineExtension.php line 52

Open in your IDE?
  1. <?php
  2. namespace WAM\Bundle\WebContentBundle\Twig;
  3. use Twig\Extension\AbstractExtension;
  4. use Twig\TwigFunction;
  5. use WAM\Bundle\WebContentBundle\Service\EditInlineServiceTest;
  6. use WAM\Bundle\WebContentBundle\Service\Interfaces\EditInlineServiceInterface;
  7. use WAM\Component\Core\Util\ClassTools;
  8. /**
  9.  * Description of class.
  10.  *
  11.  * @author Edgar Tébar <etebar@wearemarketing.com>
  12.  *
  13.  * @filename EditInlineExtension.php
  14.  */
  15. class EditInlineExtension extends AbstractExtension
  16. {
  17.     private EditInlineServiceInterface $editInlineService;
  18.     /**
  19.      * EditInlineExtension constructor.
  20.      * @param EditInlineServiceInterface $editInlineService
  21.      */
  22.     public function __construct(EditInlineServiceInterface $editInlineService)
  23.     {
  24.         $this->editInlineService $editInlineService;
  25.     }
  26.     /**
  27.      * @return array
  28.      */
  29.     public function getFunctions()
  30.     {
  31.         return [
  32.             new TwigFunction('full_admin_edit', [$this'getFullAdminPath'], ['is_safe' => ['html']]),
  33.             new TwigFunction('get_admin_route', [$this'getAdminRoute']),
  34.             new TwigFunction('is_url_object', [$this'isUrlObject']),
  35.             new TwigFunction('check_role_is_granted_for_edit_inline', [$this'checkIfRoleIsGrantedForEditInline']),
  36.             new TwigFunction('generate_admin_url', [$this'generateAdminUrl']),
  37.             new TwigFunction('get_class', [$this'getObjectClass']),
  38.         ];
  39.     }
  40.     /**
  41.      * @return bool
  42.      */
  43.     public function checkIfRoleIsGrantedForEditInline(): bool
  44.     {
  45.         return $this->editInlineService->isGranted();
  46.     }
  47.     /**
  48.      * @param object $object
  49.      * @param string $routeType
  50.      * @param array $parameters
  51.      * @param string $aditionalClass
  52.      * @param string $parentClass
  53.      *
  54.      * @return string
  55.      */
  56.     public function getFullAdminPath(
  57.         object $object,
  58.         string $routeType 'edit',
  59.         array $parameters = [],
  60.         string $aditionalClass 'edit_full_link',
  61.         string $parentClass '',
  62.         string $strategy 'inline'
  63.     ): string
  64.     {
  65.         return $this->editInlineService->getFullAdminPath(
  66.             $object,
  67.             $routeType,
  68.             $parameters,
  69.             $aditionalClass,
  70.             $parentClass,
  71.             $strategy
  72.         );
  73.     }
  74.     /**
  75.      * @param object $object
  76.      * @param string $routeType
  77.      * @param array $parameters
  78.      * @param bool $absolute
  79.      *
  80.      * @return string|void
  81.      */
  82.     public function getAdminRoute(object $objectstring $routeType 'edit', array $parameters = [], bool $absolute false): string
  83.     {
  84.         return $this->editInlineService->getAdminRoute($object$routeType$parameters$absolute);
  85.     }
  86.     /**
  87.      * @param object $object
  88.      *
  89.      * @return bool
  90.      */
  91.     public function isUrlObject(object $object): bool
  92.     {
  93.         return $this->editInlineService->isUrlObject($object);
  94.     }
  95.     /**
  96.      * @param object $object
  97.      * @param string $routeType
  98.      * @param array $parameters
  99.      * @param bool $absolute
  100.      *
  101.      * @return string|void
  102.      */
  103.     public function generateAdminUrl(object $objectstring $routeType 'edit', array $parameters = [], bool $absolute false): ?string
  104.     {
  105.         return $this->editInlineService->generateAdminUrl($object$routeType$parameters$absolute);
  106.     }
  107.     public function getObjectClass(object $object): string
  108.     {
  109.         return ClassTools::realClass($object);
  110.     }
  111. }