src/Controller/Front/FrontController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Manager\LanguageManager;
  7. class FrontController extends \App\Controller\BaseController
  8. {
  9. /**
  10. * @Route("/", name="default_index")
  11. */
  12. public function defaultIndex(Request $request, LanguageManager $lgMgr)
  13. {
  14. return $this->redirect('/fr', 302);
  15. }
  16. /**
  17. * @Route("/{_locale}", name="index", requirements={"_locale":"fr|en"})
  18. */
  19. public function index(Request $request, \App\Manager\ModuleManager $moduleMgr, LanguageManager $lgMgr)
  20. {
  21. $moduleHooked = $moduleMgr->getHook('homepage');
  22. return $this->render('front/index.html.twig',[
  23. 'moduleHooked' => $moduleHooked
  24. ]);
  25. }
  26. /**
  27. * @Route("/{_locale}/maintenance", name="maintenance", requirements={"_locale":"fr|en"})
  28. */
  29. public function maintenance(Request $request)
  30. {
  31. return $this->render('front/maintenance.html.twig',[]);
  32. }
  33. /**
  34. * @Route("/{_locale}/email/test", name="email_test", requirements={"_locale":"fr|en"})
  35. */
  36. public function testEmail(\Doctrine\ORM\EntityManagerInterface $em, \App\Service\Mailer $mailer)
  37. {
  38. $rootCategories = $em->getRepository('App:Category')->getRoots();
  39. $mailer->sendOrderConfirmation($order);
  40. // return $this->render('mails/layout.html.twig',[
  41. // 'rootCategories' => $rootCategories
  42. // ]);
  43. }
  44. /**
  45. * @Route("/{_locale}/email/order", name="email_order", requirements={"_locale":"fr|en"})
  46. */
  47. public function orderEmail(\Doctrine\ORM\EntityManagerInterface $em, \App\Service\Mailer $mailer)
  48. {
  49. $order = $em->getRepository('App:Order')->find(90288);
  50. $mailer->sendOrderConfirmation($order);
  51. }
  52. /**
  53. * @Route("/send-email", name="sendemail")
  54. */
  55. public function sendEmail(\Swift_Mailer $mailer)
  56. {
  57. $message = (new \Swift_Message('Hello Email'))
  58. ->setFrom('website@dogcat.com')
  59. ->setTo('qkaulek@gmail.com')
  60. ->setBody('You should see me from the profiler!');
  61. $mailer->send($message);
  62. return $this->redirectToRoute('index');
  63. }
  64. /**
  65. * @Route("/change-locale/{_locale}", name="change_locale", requirements={"_locale=":"en|fr"})
  66. */
  67. public function changeLocale(Request $request, LanguageManager $lgMgr)
  68. {
  69. $request->getSession()->set('_locale', $request->getLocale());
  70. $lgMgr->switchTo($request->getLocale());
  71. $redirect = $request->get('redirect',null);
  72. if($redirect){
  73. return $this->redirect($redirect);
  74. }
  75. return $this->redirectToRoute('index');
  76. }
  77. protected function getDiscountList($products)
  78. {
  79. $priceGroup = $this->cartMgr->getPriceContext();
  80. $em = $this->getDoctrine()->getManager();
  81. $data = [];
  82. $prices = [];
  83. foreach($products as $product) {
  84. $parent = $product;
  85. if($product->hasChildren() && $product->getFromProduct($priceGroup)) {
  86. $product = $product->getFromProduct($priceGroup);
  87. }
  88. $discounts = $em->getRepository(\App\Entity\MarketingRule::class)->getByProduct($product, true);
  89. if($discounts) {
  90. foreach($discounts as $discount){
  91. $price = $this->priceMgr->getPrice($product, 1, false);
  92. if(empty($data[$parent->getId()]) || ($prices[$parent->getId()] > $price)) {
  93. $prices[$parent->getId()] = $price;
  94. $data[$parent->getId()] = $discount->getTitle();
  95. }
  96. }
  97. }
  98. }
  99. return $data;
  100. }
  101. }