<?php
namespace App\GlobalCall;
use App\Repository\Admin\OptionssystemRepository;
use App\Repository\Admin\PageRepository;
use App\Repository\UserRepository;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Core\Security;
use Twig\Environment;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class GlobalCall extends AbstractExtension
{
private $connectedUser;
private $user;
private $request;
private $page;
private $optionssystem;
public function __construct(Security $security,
UserRepository $userRepository,
Environment $twig,
PageRepository $pageRepository,
OptionssystemRepository $optionssystemRepository,
RequestStack $requestStack)
{
$this->connectedUser = $security->getUser();
$this->user = $this->connectedUser ? $userRepository->find($this->connectedUser->getId()) : null;
$this->request = $requestStack;
$this->page = $pageRepository;
$this->optionssystem = $optionssystemRepository->find(1);
}
public function getFunctions()
{
return [
new TwigFunction('getConnectedUser', [$this, 'getConnectedUser']),
new TwigFunction('getGlobalInfos', [$this, 'getGlobalInfos']),
new TwigFunction('getRoute', [$this, 'getRoute']),
new TwigFunction('getImagemenu', [$this, 'getImagemenu']),
new TwigFunction('getOptionssystem', [$this, 'getOptionssystem'])
];
}
public function getConnectedUser()
{
$user = $this->user;
return $user;
}
public function getRoute()
{
$routename = $this->request->getCurrentRequest()->attributes->get('_route');
return $routename;
}
public function getImagemenu(){
return $this->page;
}
public function getOptionssystem(){
return $this->optionssystem;
}
}