<?php
namespace PortalBundle\Controller;
use CoreBundle\Component\CoreFormFactory;
use CoreBundle\Model\Vehicles\Repository;
use CoreBundle\Services\MediaExtensionVidi;
use Doctrine\ORM\EntityManagerInterface;
use PortalBundle\Entity\Founders;
use PortalBundle\Entity\FoundersBiography;
use PortalBundle\Entity\FoundersNews;
use PortalBundle\Entity\FoundersPhoto;
use PortalBundle\Entity\FoundersPublications;
use PortalBundle\Entity\FoundersVideo;
use PortalBundle\Services\ServiceService;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\RouterInterface;
class FoundersController extends BaseController
{
public function __construct(CoreFormFactory $coreFormFactory, RequestStack $requestStack, RouterInterface $router,
Repository $vehicleRepository, ServiceService $serviceService)
{
parent::__construct($coreFormFactory, $requestStack, $router, $vehicleRepository, $serviceService);
}
private $perPage = 9;
/**
* Засновники
*
* @param Request $request
* @return Response
*/
public function founders(Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$founders = $em->getRepository(Founders::class)
->setLocale($request->getLocale())
->getFounders();
$founders = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
$row['media']['image_mobile'] = $mediaExtensionVidi->getPath($row['media']['image_mobile'], 'reference');
return $row;
}, $founders);
if (empty($founders)) {
return $this->redirectToRoute('portal_404');
}
return $this->basePortalRender('@Portal/About/founders.html.twig', ['founders' => $founders[0]]);
}
public function foundersBiography(Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersBiography = $em->getRepository(FoundersBiography::class)
->setLocale($request->getLocale())
->getFoundersBiography();
$foundersBiography = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
return $row;
}, $foundersBiography);
return $this->basePortalRender('@Portal/About/foundersBiography.html.twig', ['foundersBiography' => $foundersBiography]);
}
/**
* Біографія по засновнику
*
* @param int $id
* @param Request $request
* @return Response
*/
public function foundersBiographySingle(int $id, Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersBiographySingle = $em->getRepository(FoundersBiography::class)
->setLocale($request->getLocale())
->getFoundersBiographyById($id);
$foundersBiographySingle = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
return $row;
}, $foundersBiographySingle);
if (empty($foundersBiographySingle)) {
return $this->redirectToRoute('portal_404');
}
return $this->basePortalRender('@Portal/About/foundersBiographySingle.html.twig', ['foundersBiographySingle' => $foundersBiographySingle[0]]);
}
/**
* Новина
*
* @param int $id
* @param Request $request
* @return Response
*/
public function foundersNewsSingle(int $id, Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersNews = $em
->getRepository(FoundersNews::class)
->setLocale($request->getLocale())
->getFoundersNewsLast($id);
$foundersNewsSingle = $em
->getRepository(FoundersNews::class)
->setLocale($request->getLocale())
->getFoundersNewsById($id);
$foundersNewsSingle = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image_preview'] = $mediaExtensionVidi->getPath($row['media']['image_preview'], 'reference');
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
return $row;
}, $foundersNewsSingle);
if (empty($foundersNewsSingle)) {
return $this->redirectToRoute('portal_404');
}
return $this->basePortalRender('@Portal/About/foundersNewsSingle.html.twig', [
'foundersNews' => $foundersNews,
'foundersNewsSingle' => $foundersNewsSingle[0]
]);
}
/**
* Публікація
*
* @param int $id
* @param Request $request
* @return Response
*/
public function foundersPublicationsSingle(int $id, Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersPublications = $em->getRepository(FoundersPublications::class)
->setLocale($request->getLocale())
->getFoundersPublicationsLast($id);
$foundersPublicationsSingle = $em->getRepository(FoundersPublications::class)
->setLocale($request->getLocale())
->getFoundersPublicationsById($id);
$foundersPublicationsSingle = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image_preview'] = $mediaExtensionVidi->getPath($row['media']['image_preview'], 'reference');
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
return $row;
}, $foundersPublicationsSingle);
if (empty($foundersPublicationsSingle)) {
return $this->redirectToRoute('portal_404');
}
return $this->basePortalRender('@Portal/About/foundersPublicationsSingle.html.twig', [
'foundersPublications' => $foundersPublications,
'foundersPublicationsSingle' => $foundersPublicationsSingle[0]
]);
}
/**
* Фото
*
* @param Request $request
* @return Response
*/
public function foundersPhoto(Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersPhoto = $em->getRepository(FoundersPhoto::class)
->setLocale($request->getLocale())
->getFoundersPhoto($request->get('page', '1'), $this->perPage);
$foundersPhoto['rows'] = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image'] = $mediaExtensionVidi->getPath($row['media']['image'], 'reference');
return $row;
}, $foundersPhoto['rows']);
return $this->basePortalRender('@Portal/About/foundersPhoto.html.twig', $foundersPhoto);
}
/**
* Відео
*
* @param Request $request
* @return Response
*/
public function foundersVideo(Request $request, EntityManagerInterface $em, MediaExtensionVidi $mediaExtensionVidi): Response
{
$foundersVideo = $em->getRepository(FoundersVideo::class)
->setLocale($request->getLocale())
->getFoundersVideo($request->get('page', '1'), $this->perPage);
$foundersVideo['rows'] = array_map(function($row) use ($mediaExtensionVidi) {
$row['media']['image_preview'] = $mediaExtensionVidi->getPath($row['media']['image_preview'], 'reference');
return $row;
}, $foundersVideo['rows']);
return $this->basePortalRender('@Portal/About/foundersVideo.html.twig', $foundersVideo);
}
}