<?php
namespace App\Controller\FrontMyflix;
use App\Controller\CoreController;
use App\Entity\DefaultSetting;
use App\Enum\Roles;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class FrontController
* @package App\Controller\FrontMyflix
* @Route("/")
*/
class FrontController extends CoreController
{
/**
* Front myflix
*
* @return Response
*
* @Route("/", name="front_myflix")
*/
public function index(): Response
{
$package = $this->repository->PackageRepository->findBy(["status" => true , "isDeleted" => false ],['createdAt' => 'asc'] , 3);
$percent = $this->repository->DefaultSettingRepository->findAll();
$conversionRate = $this->repository->ConversionRateRepository->findAll();
$get_conversion_rate = array();
$get_conversion_rate['count'] = 0;
foreach ($conversionRate as $rate){
$get_conversion_rate[$rate->getCurrency()] = $rate->getValue();
$get_conversion_rate['status'][$rate->getCurrency()] = $rate->getStatus();
if($rate->getStatus() == true) {
$get_conversion_rate['count'] += 1;
}
}
$user = $this->getUser(); $detail = null;
if($user && $this->isGranted(Roles::ROLE_SUPER_PARTNER)){
$detail = $this->repository->MemberPaymentDetailsRepository->findOneBy(['adminMyflix' => $user->getId(), 'statusPayment' => true],['id' => 'desc']);
}
return $this->render('front_myflix/index.html.twig', [
'packages' => $package,
'percent' => isset($percent[0]) ? $percent[0]->getPercentPackage() : 0,
'conversionRate' => $get_conversion_rate,
'detail' => $detail
]);
}
/**
* Ask for demo
*
* @return Response
*
* @Route("/ask/demo", name="ask_for_demo")
*/
public function askForDemo(): Response
{
/** send mail to partner */
$name = $this->requestStack->getCurrentRequest()->get('name');
$email = $this->requestStack->getCurrentRequest()->get('email');
$company = $this->requestStack->getCurrentRequest()->get('company');
try{
$data_mess = [
'name' => $name,
'company' => $company,
'email_' => $email,
'LOGO_MYFLIX' => 'logo-login.png',
'KEY_ICON' => 'key-icon.png'
];
$locale = $this->requestStack->getCurrentRequest()->getLocale();
$mailerSender = $this->getParameter('mailer.support_email');
$template = 'back/default/emails/notif_ask_demo_myflix.html.twig';
$subject = $this->translator->trans('email.request_demo');
$sendingMailOperation = $this->mailer->send($mailerSender,
trim($this->getParameter('mailer.form_email')),
$template,
$subject,
null,
$data_mess
);
}catch (\Exception $e){
return new Response('invalid');
}
return new Response('success');
}
/**
* Contact myflix
*
* @return Response
*
* @Route("/contact", name="contact_myflix")
*/
public function contactMyflix(): Response
{
/** send mail to partner */
try{
$name = $this->requestStack->getCurrentRequest()->get('name');;
$email = $this->requestStack->getCurrentRequest()->get('email');;
$phone = $this->requestStack->getCurrentRequest()->get('phone');;
$message = $this->requestStack->getCurrentRequest()->get('message');;
$data_mess = [
'name' => $name,
'phone' => $phone,
'email_' => $email,
'message' => $message,
'LOGO_MYFLIX' => 'logo-login.png',
'KEY_ICON' => 'key-icon.png'
];
$mailerSender = $this->getParameter('mailer.support_email');
$template = 'back/default/emails/notif_contact_myflix.html.twig';
$subject = $this->translator->trans('email.contact');
$sendingMailOperation = $this->mailer->send($mailerSender,
trim($this->getParameter('mailer.form_email')),
$template,
$subject,
null,
$data_mess
);
}catch (\Exception $e){
return new Response('invalid');
}
return new Response('success');
}
/**
* Change locale - front
*
* @param $locale
* @return Response
*
* @Route("/change/locale/front/{locale}", name="change_locale_front")
*/
public function changeLocale($locale): Response
{
// On stocke la langue dans la session
$this->requestStack->getCurrentRequest()->getSession()->set('_locale', $locale);
// On revient sur la page pr�c�dente
return $this->redirectToRoute('front_myflix' );
}
/**
* Change locale - front login
*
* @param $locale
* @return Response
*
* @Route("/change/locale/front/login/{locale}", name="change_locale_front_login")
*/
public function changeLocaleLogin($locale): Response
{
// On stocke la langue dans la session
$this->requestStack->getCurrentRequest()->getSession()->set('_locale', $locale);
// On revient sur la page pr�c�dente
return $this->redirect($this->requestStack->getCurrentRequest()->headers->get('referer'));
}
/**
* Page 404
*
* @return Response
*
* @Route("/error/404", name="error_404")
*/
public function page404() : Response
{
return $this->render('front/default/404.html.twig');
}
}