src/Controller/HeadController.php line 81

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Meteo;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use App\Entity\General;
  8. use App\Entity\VideosYoutube;
  9. use App\Util\Util;
  10. use App\Entity\Usuari;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  14. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  15. use Symfony\Component\Security\Core\SecurityContext;
  16. use Symfony\Component\HttpFoundation\RequestStack;
  17. use Symfony\Component\HttpFoundation\RedirectResponse;
  18. class HeadController extends AbstractController {
  19.     private $em;
  20.     public function __construct(EntityManagerInterface $em)
  21.     {
  22.         $this->em $em;
  23.         $this->redirectToNewDomain();
  24.     }
  25.     /**
  26.      * Mirem si són les planes relacionades amb l'escola i si ho són redireccionem
  27.      * @return RedirectResponse|Response|void
  28.      */
  29.     public function redirectToNewDomain()
  30.     {
  31.         $objUtil = new Util($this->em);
  32.         $sUrl $_SERVER['REQUEST_URI'];
  33.         // Definir un array amb les planes a comprovar per canviar de domini
  34.         $aValors $objUtil->aValors;
  35.         $sOriginalDomain 'www.masella.com';
  36.         $sNewDomain 'www.masellaescolaesqui.com';
  37.         if ($_SERVER['SERVER_NAME'] != $sNewDomain)
  38.         {
  39.             if (strpos($sUrl'pagina') !== false)
  40.             {
  41.                 foreach ($aValors as $sValor)
  42.                 {
  43.                     if (strpos($sUrl$sValor) !== false)
  44.                     {
  45.                         // Redirigir a la nova URL amb el domini especificat
  46.                         //die($sNewDomain . $sUrl);
  47.                         header('Location: https://' $sNewDomain $sUrl);
  48.                         exit; // Assegura que el codi PHP s'atura després de la redirecció
  49.                     }
  50.                 }
  51.             }
  52.         } else {
  53.             // S'ha de fer que si no són aquestes planes torni a www.masella.com
  54.             $bCanviDomini true;
  55.             foreach ($aValors as $sValor)
  56.             {
  57.                 if (strpos($sUrl$sValor) !== false) {
  58.                     $bCanviDomini false;
  59.                     break;
  60.                 }
  61.             }
  62.             if ($bCanviDomini) {
  63.                 header('Location: https://' $sOriginalDomain $sUrl);
  64.                 exit; // Assegura que el codi PHP s'atura després de la redirecció
  65.             }
  66.             return new RedirectResponse($sNewDomain $sUrl);
  67.         }
  68.         // No cal redirigir, simplement retornem una resposta buida amb el codi d'estat 200
  69.         return new Response();
  70.     }
  71.     public function indexAction(Request $peticion)
  72.     {
  73.         $objGeneral $this->em->getRepository(General::class)->findAll();
  74.         
  75.         $logo $objGeneral[0]->{'getLogo' ucfirst($peticion->attributes->get('_locale'))}();
  76.         
  77.         $aIdioma = array();
  78.         foreach (array('ca','es','en','fr','pt') as $sVal)
  79.         {
  80.             if ($objGeneral[0]->{'getIdioma' ucfirst($sVal) . 'Visible'}())
  81.             {
  82.                 $aIdioma[] = $sVal;
  83.             }
  84.         }
  85.         $aParam = array('destacat' => 1);
  86.         
  87.         $aVideoYoutubeDestacat $this->em->getRepository(VideosYoutube::class)->findBy($aParam);
  88.         $objUtil = new Util($this->em);
  89.         $enMeteo $this->em->getRepository(Meteo::class)->findAll();
  90.         foreach ($enMeteo as $aMeteoPartial)
  91.         {
  92.             $aMeteo[$aMeteoPartial->getCodi()] = $aMeteoPartial;
  93.             $aMeteo[$aMeteoPartial->getCodi()] = number_format$aMeteoPartial->getValor(), $aMeteoPartial->getDecimals(), ","".") . ' ' $aMeteoPartial->getUnitats();
  94.         }
  95.         return $this->render(
  96.             'webHead.html.twig',
  97.             array(
  98.                 'logo'                  => $logo,
  99.                 'app_request'           => $peticion->attributes->get('app_request'),
  100.                 'entMenu'               => $peticion->attributes->get('entMenu'),
  101.                 'objGeneral'            => $objGeneral[0],
  102.                 'idiomaActiva'          => $aIdioma,
  103.                 'videoYoutubeDestacat'  => (array_key_exists('0'$aVideoYoutubeDestacat)?$aVideoYoutubeDestacat[0]:array()),
  104.                 'util'                  => $objUtil,
  105.                 'temperaturaLaTosa'     => (isset($aMeteo[32])?$aMeteo[32]:'--')
  106.                 )
  107.         );
  108.     }
  109. }