<?php
namespace App\Controller;
use App\Entity\General;
use App\Entity\Sidebar;
use App\Entity\Sponsors;
use App\Entity\Usuari;
use App\Entity\Webcams;
use App\Util\changeSize;
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\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Contracts\Translation\TranslatorInterface;
class WebcamController 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)
);
$this->enGeneral = $this->em->getRepository(General::class)->findAll();
$this->enSponsors = $this->em->getRepository(Sponsors::class)->findBy(
array( 'visible' => 1),
array('ordre' => 'ASC')
);
}
public function indexAction(Request $peticion)
{
$aRequest = $peticion->request;
$enWebcams = $this->em->getRepository(Webcams::class)->findBy(
array('visible' => 1),
array('orden' => 'ASC'));
return $this->render('webcam.html.twig', array(
'enSidebar' => $this->enSidebar[0],
'enWebcams' => $enWebcams,
'enGeneral' => $this->enGeneral,
'enSponsors'=> $this->enSponsors
));
}
public function imageResizeCampAction()
{
ini_set('gd.jpeg_ignore_warning', true);
$dir = getcwd() . '/cam1';
$files = scandir($dir);
foreach ($files as $key => $val)
{
if (!in_array($val, array(".", "..")))
{
if (!is_dir($dir . '/' . $val))
{
if (strpos ($val, '.jpg') !== false)
{
//$this->get('helper.imageresizer')->resizeImage($dir . '/' . $val, $dir . '/mini/' , $height=284);
if (filesize($dir . '/' . $val) > 0)
{
copy($dir . '/' . $val, $dir . '/mini/' . $val);
$miObjSize = new changeSize;
$miObjSize->canviTamanyImatge($dir . '/mini/' . $val, 0, 284);
}
}
}
}
}
return new Response('miniatura');
}
public function viewImageAction(Request $peticion)
{
$dir = getcwd() . '/cam1/';
$aRequest = $peticion->request;
$aAttributer = $peticion->attributes;
$enWebcams = $this->em->getRepository(Webcams::class)->findBy(array(
'id' => $aAttributer->get('id_webcam'),
'visible' => 1
));
if (!$enWebcams) die();
$response = new Response();
$disposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_INLINE, $enWebcams[0]->getUrl());
$response->headers->set('Content-Disposition', $disposition);
$response->headers->set('Content-Type', 'image/png');
$response->setContent(file_get_contents($dir . $enWebcams[0]->getUrl()));
return $response;
}
}