<?php
namespace App\Controller;
use App\Entity\Meteo;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\General;
use App\Entity\VideosYoutube;
use App\Util\Util;
use App\Entity\Usuari;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\RedirectResponse;
class HeadController extends AbstractController {
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
$this->redirectToNewDomain();
}
/**
* Mirem si són les planes relacionades amb l'escola i si ho són redireccionem
* @return RedirectResponse|Response|void
*/
public function redirectToNewDomain()
{
$objUtil = new Util($this->em);
$sUrl = $_SERVER['REQUEST_URI'];
// Definir un array amb les planes a comprovar per canviar de domini
$aValors = $objUtil->aValors;
$sOriginalDomain = 'www.masella.com';
$sNewDomain = 'www.masellaescolaesqui.com';
if ($_SERVER['SERVER_NAME'] != $sNewDomain)
{
if (strpos($sUrl, 'pagina') !== false)
{
foreach ($aValors as $sValor)
{
if (strpos($sUrl, $sValor) !== false)
{
// Redirigir a la nova URL amb el domini especificat
//die($sNewDomain . $sUrl);
header('Location: https://' . $sNewDomain . $sUrl);
exit; // Assegura que el codi PHP s'atura després de la redirecció
}
}
}
} else {
// S'ha de fer que si no són aquestes planes torni a www.masella.com
$bCanviDomini = true;
foreach ($aValors as $sValor)
{
if (strpos($sUrl, $sValor) !== false) {
$bCanviDomini = false;
break;
}
}
if ($bCanviDomini) {
header('Location: https://' . $sOriginalDomain . $sUrl);
exit; // Assegura que el codi PHP s'atura després de la redirecció
}
return new RedirectResponse($sNewDomain . $sUrl);
}
// No cal redirigir, simplement retornem una resposta buida amb el codi d'estat 200
return new Response();
}
public function indexAction(Request $peticion)
{
$objGeneral = $this->em->getRepository(General::class)->findAll();
$logo = $objGeneral[0]->{'getLogo' . ucfirst($peticion->attributes->get('_locale'))}();
$aIdioma = array();
foreach (array('ca','es','en','fr','pt') as $sVal)
{
if ($objGeneral[0]->{'getIdioma' . ucfirst($sVal) . 'Visible'}())
{
$aIdioma[] = $sVal;
}
}
$aParam = array('destacat' => 1);
$aVideoYoutubeDestacat = $this->em->getRepository(VideosYoutube::class)->findBy($aParam);
$objUtil = new Util($this->em);
$enMeteo = $this->em->getRepository(Meteo::class)->findAll();
foreach ($enMeteo as $aMeteoPartial)
{
$aMeteo[$aMeteoPartial->getCodi()] = $aMeteoPartial;
$aMeteo[$aMeteoPartial->getCodi()] = number_format( $aMeteoPartial->getValor(), $aMeteoPartial->getDecimals(), ",", ".") . ' ' . $aMeteoPartial->getUnitats();
}
return $this->render(
'webHead.html.twig',
array(
'logo' => $logo,
'app_request' => $peticion->attributes->get('app_request'),
'entMenu' => $peticion->attributes->get('entMenu'),
'objGeneral' => $objGeneral[0],
'idiomaActiva' => $aIdioma,
'videoYoutubeDestacat' => (array_key_exists('0', $aVideoYoutubeDestacat)?$aVideoYoutubeDestacat[0]:array()),
'util' => $objUtil,
'temperaturaLaTosa' => (isset($aMeteo[32])?$aMeteo[32]:'--')
)
);
}
}