<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
*/
namespace App\Controller;
use App\Helper\Utils;
use App\Services\ManagerEntity\ParametreSiteManagers;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Services\ManagerEntity\PanierManagers;
use App\Entity\Societes;
class CoreController extends EntityUsingController {
/**
* @var \App\Services\ManagerEntity\ParametreSiteManagers
*/
private $psm;
/**
* @var ParameterBagInterface
*/
private $params;
/**
* @var PanierManagers
*/
private $pm;
public function __construct(PanierManagers $pm, ParametreSiteManagers $psm, ParameterBagInterface $params) {
$this->psm = $psm;
$this->params = $params;
$this->pm = $pm;
}
public function changeLangue(Request $request): RedirectResponse {
$uri = $request->server->get('HTTP_REFERER');
$lang = $request->attributes->get('lang');
if ($lang) {
setcookie('lang', $lang, time() + 60 * 60 * 24 * 365);
$request->getSession()->set('_locale', $lang);
$request->setLocale($lang);
$request->getSession()->set('lang', $lang);
}
return $this->redirect($uri);
}
/**
* @param $currentRoute
* @param $codePays
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function changeFlag(Request $request, $codePays) {
// depuis config/packages/international.yaml
$listCodePays = array_column($this->params->get('app.pays_version'), '2', ''); // _fr_ _ch_ _be_ _ca_
$oldPathUri = $request->headers->get('referer');
foreach ($listCodePays as $code) {
if (!empty($oldPathUri) && !empty($code) && Utils::stringContainsWord($oldPathUri, $code)) {
$oldPathUri = str_replace($code, $codePays, $oldPathUri);
return $this->redirect($oldPathUri);
}
if (!empty($oldPathUri) && Utils::endsWith('/' . Utils::codePaysWithoutDash($code), $oldPathUri)) { // PAGE D'ACCUEIL AVEC /fr
$oldPathUri = str_replace(Utils::codePaysWithoutDash($code), Utils::codePaysWithoutDash($codePays), $oldPathUri);
return $this->redirect($oldPathUri);
}
}
if (!$oldPathUri) {
$oldPathUri = "/";
}
return $this->redirect($oldPathUri);
}
public function menu(Request $request, $lang, $currentRoute, $codePays, $authFrom = null) {
$listValueParamSiteFooter = $this->psm->getListValueParamSiteMenu($codePays, 'FUSACQ');
foreach ($listValueParamSiteFooter as $key => $item) {
$item['value'] = Utils::getLinkFromValueParam($item['value']);
$listValueParamSiteFooter[$key] = $item;
}
$nbAnnoncePanier = 0;
$session = $request->getSession();
if ($session) {
$userIdentity = $session->get('user');
if (!empty($userIdentity)) {
$panier = $this->pm->getPanierByLoginUtilisateur($userIdentity->_get('login_utilisateur'));
if (!empty($panier)) {
$nbAnnoncePanier = $this->calcule_nb_annonce($panier);
}
}
}
$response = $this->render(
'core/menu.html.twig',
[
'controller_name' => 'CoreController',
'codePaysWithUnderScore' => $codePays,
'currentRoute' => $currentRoute,
'codePays' => str_replace('_', '', $codePays),
'nb_bloc' => count($listValueParamSiteFooter),
'lang' => $lang,
'params_header' => $listValueParamSiteFooter,
'nbAnnoncePanier' => $nbAnnoncePanier,
'authFrom' => $authFrom
]
);
$response->setPublic();
$response->setMaxAge(43200); // 12heures
return $response;
}
/**
* @param $codePays
* @param $lang
* @return mixed
*/
public function footer($codePays, $lang) {
$listValueParamSiteFooter = $this->psm->getListValueParamSiteFooter($codePays, 'FUSACQ');
foreach ($listValueParamSiteFooter as $key => $item) {
$item['value'] = Utils::getLinkFromValueParam($item['value']);
$listValueParamSiteFooter[$key] = $item;
}
$response = $this->render(
'core/footer.html.twig',
[
'controller_name' => 'CoreController',
'codePaysWithUnderScore' => $codePays,
'nb_bloc' => count($listValueParamSiteFooter),
'lang' => $lang,
'anneeEnCours' => date("Y"),
'params_footer' => $listValueParamSiteFooter,
]
);
$response->setPublic();
$response->setMaxAge(43200); // 12heures
return $response;
}
public function pubFusacqExpert(Request $request, $display_title, $display_login, $lang, $codePays): Response {
$numeroTelephone = "01 48 28 24 24"; //A developper
$repoSociete = $this->getDoctrine()->getRepository(Societes::class);
$nb_participations_fonds = $repoSociete->donne_nb_participations_fonds([]);
return $this->render('core/pub_fusacq_expert.html.twig',
[
'display_title' => $display_title,
'display_login' => $display_login,
'lang' => $lang,
'codePays' => str_replace('_', '', $codePays),
'numeroTelephone' => $numeroTelephone,
'nb_participations_fonds' => $nb_participations_fonds
]);
}
private function calcule_nb_annonce($panier) {
$nbAnnonce = 0;
$panierV = array();
$panierA = array();
$panierR = array();
$panierCRO = array();
$panierPART = array();
$panierAH = array();
$panierFONDS = array();
if (!empty($panier["resV"])) {
$panierV = $panier["resV"];
$nbAnnonce = $nbAnnonce + count($panierV);
}
if (!empty($panier["resA"])) {
$panierA = $panier["resA"];
$nbAnnonce = $nbAnnonce + count($panierA);
}
if (!empty($panier["resR"])) {
$panierR = $panier["resR"];
$nbAnnonce = $nbAnnonce + count($panierR);
}
if (!empty($panier["resBA"])) {
$panierBA = $panier["resBA"];
$nbAnnonce = $nbAnnonce + count($panierBA);
}
if (!empty($panier["resCRO"])) {
$panierCRO = $panier["resCRO"];
$nbAnnonce = $nbAnnonce + count($panierCRO);
}
if (!empty($panier["resPART"])) {
$panierPART = $panier["resPART"];
$nbAnnonce = $nbAnnonce + count($panierPART);
}
if (!empty($panier["resAH"])) {
$panierAH = $panier["resAH"];
$nbAnnonce = $nbAnnonce + count($panierAH);
}
if (!empty($panier["resFONDS"])) {
$panierFONDS=$panier["resFONDS"];
$nbAnnonce = $nbAnnonce + count($panierFONDS);
}
return $nbAnnonce;
}
}