<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
* @Description
*/
namespace App\Helper;
use App\Entity\Model\Annonces;
use Symfony\Component\DependencyInjection\ContainerInterface;
use App\Services\ManagerEntity\{
LocalisationsManagers,
SecteursActiviteManagers
};
use App\Repository\ParametresDiversRepository;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
class TwigProvider {
/**
* @var LocalisationsManagers
*/
private $localisationsManagers;
/**
* @var Container
*/
private $container;
/**
*
* @var type
*/
private $pdRepo;
/**
*
* @var type
*/
private $sam;
/**
* @var ContainerBagInterface
*/
private $params;
/**
* @Description: {{ twig_vars.annoncesConst }}
* @return type
*/
public function annoncesConst() {
return Annonces::getConstants();
}
public function __construct(ContainerInterface $container, LocalisationsManagers $localisationsManagers, ParametresDiversRepository $pdRepo, SecteursActiviteManagers $sam, ContainerBagInterface $params) {
$this->container = $container;
$this->localisationsManagers = $localisationsManagers;
$this->pdRepo = $pdRepo;
$this->sam = $sam;
$this->params = $params;
}
/**
* @Description: {{ twig_vars.currentRoute }}
* @return type
*/
public function currentRoute() {
return $this->container->get('request_stack')->getMasterRequest()->get('_route');
}
/**
*
* @return type
*/
public function listPays($beginWithShortList = false) {
return $this->localisationsManagers->getListPays($beginWithShortList);
}
/**
* @Description: {{ twig_vars.listNombresAafficher }}
* @Description: valeur stocké dans partage_dbo.parametres_divers // global-admin pour éviter des requetes count pour des chiffres
* @return type
*/
public function listNombresAafficher() {
return $this->pdRepo->getListNombresAafficher();
}
/**
* @Description: {{ twig_vars.getAllSecteursActiviteFonds }}
* @return type
*/
public function getAllSecteursActiviteFonds() {
return $this->sam->getListeSecteursActiviteFonds();
}
/**
* @Description: {{ twig_vars.paysAnnuaireExperts }}
* @return type
*/
public function paysAnnuaireExperts() {
$codePays = $this->container->get('request_stack')->getSession()->get('codePays');
if ($codePays) {
$item = $list = [];
foreach ($this->params->get('app.pays_annuaire_experts') as $key => $pays) {
if ($pays[1] == strtoupper($codePays)) { // pour mettre en avant la version du site pays
$item[] = $pays;
} else {
$list[] = $pays;
}
}
return array_merge($item, $list);
}
return $this->params->get('app.pays_annuaire_experts');
}
}