<?php
namespace App\Controller;
use App\Entity\General;
use App\Entity\Sidebar;
use App\Entity\Sponsors;
use App\Entity\LinksTipus;
use App\Entity\Links;
use App\Entity\Usuari;
use App\Util\Util;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Contracts\Translation\TranslatorInterface;
class LinksController extends AbstractController
{
protected $enSidebar;
protected $enGeneral;
protected $enSponsors;
private $em;
private $objUtil;
private $requestStack;
private $session;
private $translator;
private $params;
private $correuController;
private $mailer;
private $sPathUploads;
public function __construct(EntityManagerInterface $em,RequestStack $requestStack,TranslatorInterface $translator, ContainerBagInterface $params, CorreuController $correuController,MailerInterface $mailer)
{
$this->em = $em;
$this->objUtil = new Util($this->em);
$this->requestStack = $requestStack;
$this->session = $this->requestStack->getSession();
$this->translator = $translator;
$this->params = $params;
$this->correuController = $correuController;
$this->mailer = $mailer;
$this->sPathUploads = dirname(__FILE__) . "/../../public/uploads/";
$this->enSidebar = $this->em->getRepository(Sidebar::class)->findBy(
array( 'general' => 1)
);
/////////////////////////
// Recoger dades generals
/////////////////////////
$this->enGeneral = $this->em->getRepository(General::class)->findAll();
///////////
// Sponsors
///////////
$this->enSponsors = $this->em->getRepository(Sponsors::class)->findBy(
array( 'visible' => 1),
array('ordre' => 'ASC')
);
}
public function indexAction(Request $peticion, $slug = '')
{
$aRequest = $peticion->request;
$enLinks = '';
$nomLinkTipus = '';
$enLinksTipus = '';
$aParam = array();
if ($slug == '')
{
$slug = $peticion->attributes->get('_slug');
}
if ($slug != '')
{
$aParam = array('slug_' . $peticion->attributes->get('_locale') => $slug);
$enLinksTipus = $this->em->getRepository(LinksTipus::class)->findOneBy($aParam);
$sNomFunction = 'getTitol'. ucfirst($peticion->attributes->get('_locale'));
$nomLinkTipus = $enLinksTipus->$sNomFunction();
$aParam = array('linkstipus' => $enLinksTipus->getId());
$enLinks = $this->em->getRepository(Links::class)->findBy(
$aParam,
array(
'ordre' => 'ASC'
));
}
$enLinksTipus2 = $this->em->getRepository(LinksTipus::class)->findBy(
array(
'linkstipus' => null),
array(
'ordre' => 'ASC')
);
return $this->render('links.html.twig', array(
'enSidebar' => $this->enSidebar[0],
'enLinksTipus' => $enLinksTipus2,
'entMenu' => $enLinksTipus,
'enLinks' => $enLinks,
'nomLinkTipus' => $nomLinkTipus,
'enGeneral' => $this->enGeneral,
'enSponsors' => $this->enSponsors
));
}
public function linkTipusAction(Request $peticion, $id)
{
$aRequest = $peticion->request;
$aParam = array('linkstipus' => $id);
$enLinks = $this->em->getRepository(Links::class)->findBy(
$aParam,
array(
'ordre' => 'ASC')
);
$sNomFunction = 'getTitol'. ucfirst($peticion->attributes->get('_locale'));
return $this->render('_links_detall.html.twig', array(
'enLinks' => $enLinks,
'nomLinkTipus' => $enLinks[0]->getLinksTipus()->$sNomFunction())
);
}
}