src/Controller/Main/DefaultController.php line 80

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Main;
  3. use App\Entity\Adres;
  4. use App\Entity\AlbumDil;
  5. use App\Entity\AnasayfaBolumDil;
  6. use App\Entity\AnasayfaDil;
  7. use App\Entity\Ayarlar;
  8. use App\Entity\BasinDil;
  9. use App\Entity\BlogBolumDil;
  10. use App\Entity\BlogBolumResim;
  11. use App\Entity\BlogResim;
  12. use App\Entity\ContactDil;
  13. use App\Entity\ContactMesaj;
  14. use App\Entity\Dil;
  15. use App\Entity\Katalog;
  16. use App\Entity\UretimlerBolum;
  17. use App\Entity\SayfaBaslik;
  18. use App\Entity\SayfaBaslikDil;
  19. use App\Entity\PopupResim;
  20. use App\Entity\Salon;
  21. use App\Entity\Kurumsal;
  22. use App\Entity\KurumsalDil;
  23. use App\Entity\Uretimler;
  24. use App\Entity\UretimlerBolumDil;
  25. use App\Entity\UretimlerDil;
  26. use App\Entity\SalonDil;
  27. use App\Entity\Slider;
  28. use App\Entity\SliderDil;
  29. use App\Entity\SosyalMedya;
  30. use App\Entity\Blog;
  31. use App\Entity\BlogBolum;
  32. use App\Entity\BlogDil;
  33. use App\Entity\UrunGruplari;
  34. use App\Entity\UrunGruplariDil;
  35. use App\Entity\UrunGruplariUrunler;
  36. use App\Entity\UrunKategorileri;
  37. use App\Entity\UrunKategorileriDil;
  38. use App\Entity\UrunKategoriResim;
  39. use App\Entity\UrunSayfasi;
  40. use App\Entity\Video;
  41. use App\Repository\AyarlarRepository;
  42. use App\Repository\BlogBolumRepository;
  43. use App\Repository\KatalogRepository;
  44. use App\Repository\SliderDilRepository;
  45. use App\Repository\SliderRepository;
  46. use App\Service\Helper;
  47. use Doctrine\ORM\EntityManagerInterface;
  48. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  49. use Symfony\Component\HttpFoundation\Request;
  50. use Symfony\Component\HttpFoundation\Response;
  51. use Symfony\Component\Mailer\Exception\TransportException;
  52. use Symfony\Component\Mailer\MailerInterface;
  53. use Symfony\Component\Mime\Email;
  54. use Symfony\Component\Routing\Annotation\Route;
  55. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  56. use function Symfony\Component\Translation\t;
  57. #[Route('/{_locale}')]
  58. class DefaultController extends AbstractController
  59. {
  60.     public function __construct(private readonly EntityManagerInterface $em)
  61.     {
  62.     }
  63.     #[Route('/login'name'app_login')]
  64.     public function login(AuthenticationUtils $authenticationUtils): Response
  65.     {
  66.         $error $authenticationUtils->getLastAuthenticationError();
  67.         $lastUsername $authenticationUtils->getLastUsername();
  68.         return $this->render('main/login/index.html.twig', [
  69.             'last_username' => $lastUsername,
  70.             'error' => $error,
  71.         ]);
  72.     }
  73.     public function header(Request $request): Response
  74.     {
  75.         $em $this->em;
  76.         $diller $em->getRepository(Dil::class)->findBy(array('del' => 0));
  77.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  78.         $urunkategorileri $em->getRepository(UrunKategorileri::class)->findBy(array('del' => 0), array('sira' => 'asc'));
  79.         $sosyalmedya $em->getRepository(SosyalMedya::class)->findBy(array('del' => 0));
  80.         return $this->render('main/default/header.html.twig', array(
  81.             'diller' => $diller,
  82.             'adresler' => $adresler,
  83.             'urunkategorileri' => $urunkategorileri,
  84.             'sosyalmedya' => $sosyalmedya,
  85.             'route_name' => $request->attributes->get('_    route')
  86.         ));
  87.     }
  88.     public function footer(Request $request): Response
  89.     {
  90.         $em $this->em;
  91.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  92.         $sosyalmedya $em->getRepository(SosyalMedya::class)->findBy(array('del' => 0));
  93.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  94.         $urunkategorileri $em->getRepository(UrunKategorileri::class)->findBy(array('del' => 0), array('sira' => 'asc'));
  95.         $urunKategorileriDil2 $em->getRepository(UrunKategorileriDil::class)->findBy(['gosterFooter' => 1]);
  96.         $uretimler $em->getRepository(UretimlerBolum::class)->createQueryBuilder('ur')
  97.             ->join('ur.diller''diller')
  98.             ->andWhere('ur.sira''asc')
  99.             ->where('diller.gosterFooter = 1')
  100.             ->getQuery()
  101.             ->getResult();
  102.         $blog $em->getRepository(Blog::class)->createQueryBuilder('bl')
  103.             ->join('bl.diller''diller')
  104.             ->andWhere('bl.del = 0')
  105.             ->where('diller.gosterFooter = 1')
  106.             ->getQuery()
  107.             ->getResult();
  108.         return $this->render('main/default/footer.html.twig', array(
  109.             'adresler' => $adresler,
  110.             'urunkategorileri' => $urunkategorileri,
  111.             'urunkategorileriDil' => $urunKategorileriDil2,
  112.             'sosyalmedya' => $sosyalmedya,
  113.             'uretimler' => $uretimler,
  114.             'blog' => $blog,
  115.             'adresler' => $adresler,
  116.         ));
  117.     }
  118.     #[Route('/'name'app_main_default')]
  119.     public function index(Request $requestSliderRepository $sliderRepositorySliderDilRepository $sliderDilRepository): Response
  120.     {
  121.         $em $this->em;
  122.         $locale $request->getLocale();
  123.         $entity $sliderDilRepository->findBy(['del' => 0]);
  124.         $uretim $em->getRepository(UretimlerBolum::class)->createQueryBuilder('ur')
  125.             ->leftJoin('ur.diller''diller')
  126.             ->where('ur.del = 0')
  127.             ->getQuery()
  128.             ->getResult();
  129.         $entityDil $sliderDilRepository->createQueryBuilder('t')
  130.             ->select('sd.sira as sSira''t.baslik''sd.resim as sResim')
  131.             ->join('t.slider''sd')
  132.             ->where('t.del = 0')
  133.             ->orderBy('sd.sira''ASC')
  134.             ->getQuery()->getResult();
  135.         $baslik $em->getRepository(AnasayfaDil::class)->createQueryBuilder('t')
  136.             ->select('t.title''t.description')
  137.             ->join('t.dil''d')
  138.             ->where('d.kisaBaslik = :kisaBaslik')
  139.             ->setParameter('kisaBaslik'$locale)
  140.             ->getQuery()->getOneOrNullResult();
  141.         $bolumler $em->getRepository(AnasayfaBolumDil::class)->createQueryBuilder('t')
  142.             ->join('t.dil''d')
  143.             ->where('d.kisaBaslik = :kisaBaslik')
  144.             ->setParameter('kisaBaslik'$locale)
  145.             ->getQuery()->getResult();
  146.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  147.         $urunkategorileri $em->getRepository(UrunKategorileri::class)->findBy(array('del' => 0), array('sira' => 'asc'));
  148.         $urunkategorileriResimler $em->getRepository(UrunKategoriResim::class)->findBy(array('del' => 0), array('sira' => 'asc'));
  149.         $urunkategorileriResimler2 $em->getRepository(UrunKategoriResim::class)->findBy(array('del' => 0), array('sira' => 'desc'));
  150.         $urunKategorileriDil2 $em->getRepository(UrunKategorileriDil::class)->findBy(['goster' => 1]);
  151.         return $this->render('main/default/index.html.twig', array(
  152.             'entity' => $entity,
  153.             'baslik' => $baslik,
  154.             'bolumler' => $bolumler,
  155.             'adresler' => $adresler,
  156.             'entities' => $entityDil,
  157.             'uretim' => $uretim,
  158.             'urunkategorileri' => $urunkategorileri,
  159.             'urunKategorileriDil2' => $urunKategorileriDil2,
  160.             'urunKategorileriResim' => $urunkategorileriResimler,
  161.             'urunKategorileriResim2' => $urunkategorileriResimler2,
  162.         ));
  163.     }
  164.     #[Route(path: [
  165.         'tr' => '/hakkimizda',
  166.         'en' => '/about-us',
  167.         'ar' => '/about-us',
  168.     ], name'app_main_hakkimizda')]
  169.     public function hakkimizda(Request $request): Response
  170.     {
  171.         $em $this->em;
  172.         $locale $request->getLocale();
  173.         $entity $em->getRepository(KurumsalDil::class)->findBy(array('del' => 0));
  174.         $sosyalmedya $em->getRepository(SosyalMedya::class)->findBy(array('del' => 0));
  175.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  176.         $hakkimizda $em->getRepository(Kurumsal::class)->findBy(array('del' => 0));
  177.         $sayfa $em->getRepository(SayfaBaslik::class)->createQueryBuilder('sb')
  178.             ->join('sb.sayfabaslikDilleri''sayfabaslikDilleri')
  179.             ->where('sb.del = 0')
  180.             ->getQuery()
  181.             ->getResult();
  182.         return $this->render('main/default/hakkimizda.html.twig', [
  183.             'kurumsal' => $entity,
  184.             'sosyalmedya' => $sosyalmedya,
  185.             'hakkimizda' => $hakkimizda,
  186.             'sayfa' => $sayfa,
  187.             'contact' => $adresler,
  188.         ]);
  189.     }
  190.     #[Route(path: [
  191.         'tr' => '/uretim',
  192.         'en' => '/production',
  193.         'ar' => '/production',
  194.     ], name'app_main_uretim')]
  195.     public function uretim(Request $request): Response
  196.     {
  197.         $em $this->em;
  198.         $queryBuilder $em->getRepository(UretimlerBolum::class)->createQueryBuilder('lb');
  199.         $entities $queryBuilder
  200.             ->leftJoin('lb.diller''diller')
  201.             ->leftJoin('lb.resimler''resimler')
  202.             ->where('lb.del = 0')
  203.             ->getQuery()
  204.             ->getResult();
  205.         $sayfa $em->getRepository(SayfaBaslik::class)->createQueryBuilder('sb')
  206.             ->join('sb.sayfabaslikDilleri''sayfabaslikDilleri')
  207.             ->where('sb.del = 0')
  208.             ->getQuery()
  209.             ->getResult();
  210.         return $this->render('main/default/uretim.html.twig', [
  211.             'uretimlerDil' => $entities,
  212.              'sayfa' => $sayfa,
  213.         ]);
  214.     }
  215.     #[Route(path: [
  216.         'tr' => '/urun-gruplari/{code}',
  217.         'en' => '/product-groups/{code?}',
  218.         'ar' => '/product-groups/{code}'
  219.     ], name'app_main_urun_gruplari')]
  220.     public function urunGruplari(Request $requestAyarlarRepository $ayarlarRepository): Response
  221.     {
  222.         $em $this->em;
  223.         $locale $request->getLocale();
  224.         $ayarlar $ayarlarRepository->findAll();
  225.         $urunler $em->getRepository(UrunGruplariUrunler::class)->createQueryBuilder('t')
  226.             ->join('t.diller''diller')
  227.             ->where('t.del = 0')
  228.             ->orderBy('diller.baslik''asc');
  229.         $sayfa $em->getRepository(SayfaBaslik::class)->createQueryBuilder('sb')
  230.             ->join('sb.sayfabaslikDilleri''sayfabaslikDilleri')
  231.             ->where('sb.del = 0')
  232.             ->getQuery()
  233.             ->getResult();
  234.         $urunKategorileriDil '';
  235.         if ($request->get('link') != '') {
  236.             exit();
  237.             $urunKategorileriDil $em->getRepository(UrunKategorileriDil::class)->findOneBy(array('link' => $request->get('link')));
  238.             $urunler $urunler
  239.                 ->join('t.urungruplari''urungruplari')
  240.                 ->join('urungruplari.urunkategorileri''urunkategorileri')
  241.                 ->join('urunkategorileri.diller''urunkategorileridiller')
  242.                 ->andWhere('urunkategorileridiller.link = :link')->setParameter('link'$request->get('link'));
  243.         }
  244.         $urunGruplariDil '';
  245.         if ($request->get('link2') != '') {
  246.             exit();
  247.             $urunGruplariDil $em->getRepository(UrunGruplariDil::class)->findOneBy(array('link' => $request->get('link2')));
  248.             $urunler $urunler
  249.                 ->join('urungruplari.diller''urungruplaridiller')
  250.                 ->andWhere('urungruplaridiller.link = :link2')->setParameter('link2'$request->get('link2'));
  251.         }
  252.         $urunler $urunler->getQuery()->getResult();
  253.         $urunkategorileri $em->getRepository(UrunKategorileri::class)->createQueryBuilder('kt')
  254.             ->join('kt.diller''diller')
  255.             ->join('kt.gruplar''gruplar')
  256.             ->andWhere('kt.del = 0')
  257.             ->andWhere('diller.del = 0')
  258.             ->andWhere('gruplar.del = 0')
  259.             ->getQuery()
  260.             ->getResult();
  261.         return $this->render('main/default/urun_gruplari.html.twig', array(
  262.             'urunKategorileriDil' => $urunKategorileriDil,
  263.             'urunGruplariDil' => $urunGruplariDil,
  264.             'urunkategorileri' => $urunkategorileri,
  265.             'urunler' => $urunler,
  266.             'ayarlar' => $ayarlar,
  267.             'sayfa' => $sayfa,
  268.         ));
  269.     }
  270.     #[Route(path: [
  271.         'tr' => '/urun-gruplari_detay/{code?}',
  272.         'en' => '/product-group-details/{code?}',
  273.         'ar' => '/product-group-details/{code?}'
  274.     ], name'app_main_urun_gruplari_detay')]
  275.     public function urunGruplariDetay(Request $request$codeAyarlarRepository $ayarlarRepository): Response
  276.     {
  277.         $em $this->em;
  278.         $locale $request->getLocale();
  279.         $ayarlar $ayarlarRepository->findAll();
  280.         $sayfa $em->getRepository(SayfaBaslik::class)->createQueryBuilder('sb')
  281.             ->join('sb.sayfabaslikDilleri''sayfabaslikDilleri')
  282.             ->where('sb.del = 0')
  283.             ->getQuery()
  284.             ->getResult();
  285.         $urunkategorileri $em->getRepository(UrunKategorileri::class)->createQueryBuilder("uk")
  286.             ->leftJoin("uk.diller""diller")
  287.             ->leftJoin("uk.gruplar""gruplar")
  288.             ->leftJoin("gruplar.diller""dillerGrup")
  289.             ->leftJoin("gruplar.urunler""urunler")
  290.             ->leftJoin("urunler.diller""dillerUrun")
  291.             ->andWhere("uk.del = 0")
  292.             ->andWhere("uk.code = :code")
  293.             ->setParameter('code'$code)
  294.             ->getQuery()
  295.             ->getResult();
  296.         return $this->render('main/default/urun_gruplari_detay.html.twig', array(
  297.             'urunkategorileri' => $urunkategorileri,
  298.             'ayarlar' => $ayarlar,
  299.             'sayfa' => $sayfa,
  300.         ));
  301.     }
  302.     #[Route(path: [
  303.         'tr' => '/cerez-politikasi',
  304.         'en' => '/cookie-policy',
  305.         'ar' => '/cookie-policy',
  306.     ], name'app_main_cerez_politikasi')]
  307.     public function cerezPolitikasi(Request $request): Response
  308.     {
  309.         $em $this->em;
  310.         $locale $request->getLocale();
  311.         $entity $em->getRepository(KurumsalDil::class)->createQueryBuilder('t')
  312.             ->join('t.kurumsal''kurumsal')
  313.             ->join('t.dil''dil')
  314.             ->where('dil.kisaBaslik = :kisaBaslik')->setParameter('kisaBaslik'$locale)
  315.             ->andWhere('kurumsal.id = 2')
  316.             ->getQuery()->getOneOrNullResult();
  317.         return $this->render('main/default/cerez_politikasi.html.twig', ['entity' => $entity]);
  318.     }
  319.     #[Route(path: [
  320.         'tr' => '/blog',
  321.         'en' => '/blog',
  322.         'ar' => '/blog',
  323.     ], name'app_main_blog')]
  324.     public function blog(Request $request): Response
  325.     {
  326.         $em $this->em;
  327.         $queryBuilder $em->getRepository(Blog::class)->createQueryBuilder('lb');
  328.         $entities $queryBuilder
  329.             ->leftJoin('lb.diller''diller')
  330.             ->leftJoin('lb.resimler''resimler')
  331.             ->leftJoin('lb.bolumler''bolumler')
  332.             ->where('lb.del = 0')
  333.             ->getQuery()
  334.             ->getResult();
  335.         $sayfa $em->getRepository(SayfaBaslik::class)->createQueryBuilder('sb')
  336.             ->join('sb.sayfabaslikDilleri''sayfabaslikDilleri')
  337.             ->where('sb.del = 0')
  338.             ->getQuery()
  339.             ->getResult();
  340.         return $this->render('main/default/blog.html.twig', [
  341.             'sayfa' => $sayfa,
  342.             'blogResim' => $entities,
  343.         ]);
  344.     }
  345.     #[Route('/bolum/{code}/'name'app_main_bolum')]
  346.     public function bolum(request $request$codeBlogBolumRepository $blogBolumRepository): Response
  347.     {
  348.         $em $this->em;
  349.         $locale $request->getLocale();
  350.         $blog $blogBolumRepository->findOneBy(['code' => $code]);
  351.         if (!$blog) {
  352.             throw $this->createNotFoundException('Blog not found');
  353.         }
  354.         $entity $em->getRepository(BlogBolum::class)->createQueryBuilder('bb')
  355.             ->leftJoin('bb.diller''diller')
  356.             ->leftJoin('bb.resimler''resimler')
  357.             ->getQuery()
  358.             ->getResult();
  359.         return $this->render('main/default/blog-details.html.twig', [
  360.             'entities' => $blogBolumRepository->findBy(array('blog' => $blog'del' => 0), array('sira' => 'asc')),
  361.             'entity' => $entity,
  362.         ]);
  363.     }
  364.     #[Route(path: [
  365.         'tr' => '/katalog',
  366.         'en' => '/catalogue',
  367.         'ar' => '/catalogue',
  368.     ], name'app_main_katalog')]
  369.     public function katalog(Request $requestKatalogRepository $katalogRepository,AyarlarRepository $ayarlarRepository): Response
  370.     {
  371.         $em $this->em;
  372.         $katalog $katalogRepository->findBy(array('del' => 0), array('sira' => 'asc'));
  373.         $ayarlar $ayarlarRepository->findAll();
  374.         return $this->render('main/default/katalog.html.twig', [
  375.             'entity' => $katalog,
  376.             'ayarlar' => $ayarlar,
  377.         ]);
  378.     }
  379.     #[Route('/kvkk'name'app_main_kvkk')]
  380.     public function kvkk(Request $request): Response
  381.     {
  382.         $em $this->em;
  383.         $locale $request->getLocale();
  384.         $entity $em->getRepository(KurumsalDil::class)->createQueryBuilder('t')
  385.             ->join('t.kurumsal''kurumsal')
  386.             ->join('t.dil''dil')
  387.             ->where('dil.kisaBaslik = :kisaBaslik')->setParameter('kisaBaslik'$locale)
  388.             ->andWhere('kurumsal.id = 3')
  389.             ->getQuery()->getOneOrNullResult();
  390.         return $this->render('main/default/kvkk.html.twig', ['entity' => $entity]);
  391.     }
  392.     #[Route(path: [
  393.         'tr' => '/iletisim',
  394.         'en' => '/contact-us',
  395.         'ar' => '/contact-us',
  396.     ], name'app_main_iletisim')]
  397.     public function iletisim(Request $requestMailerInterface $mailerAyarlarRepository $ayarlarRepository): Response
  398.     {
  399.         $em $this->em;
  400.         $locale $request->getLocale();
  401.         $ayarlar $ayarlarRepository->findAll();
  402.         $entity $em->getRepository(ContactDil::class)->createQueryBuilder('t')
  403.             ->join('t.dil''d')
  404.             ->where('d.kisaBaslik = :kisaBaslik')
  405.             ->setParameter('kisaBaslik'$locale)
  406.             ->getQuery()->getOneOrNullResult();
  407.         $adresler $em->getRepository(Adres::class)->findBy(array('del' => 0));
  408.         $sosyalmedya $em->getRepository(SosyalMedya::class)->findBy(array('del' => 0));
  409.         if ($request->isMethod('POST')) {
  410.             $ad $request->get('ad');
  411.             $soyad $request->get('soyad');
  412.             $email $request->get('email');
  413.             $telefon $request->get('telefon');
  414.             $not $request->get('not');
  415.             $status 'success';
  416.             $newMail = (new Email())
  417.                 ->from('sistem@elefante.com.tr')
  418.                 ->to('info@elefante.com.tr')
  419.                 /*->from('ik@askondemir.com')
  420.                 ->to('ik@askondemir.com')*/
  421.                 ->subject('İletişim Formu')
  422.                 ->html('<b>Ad: </b>' $ad '<br>' .
  423.                     '<b>Soyad: </b>' $soyad '<br>' .
  424.                     '<b>E-Mail: </b>' $email '<br>' .
  425.                     '<b>Telefon: </b>' $telefon '<br>' .
  426.                     '<b>Not: </b>' $not);
  427.             $iletisimMesaj = new ContactMesaj();
  428.             $iletisimMesaj->setAdsoyad($ad ' ' $soyad);
  429.             $iletisimMesaj->setTelefon($telefon);
  430.             $iletisimMesaj->setEmail($email);
  431.             $iletisimMesaj->setMesaj($not);
  432.             $em->persist($iletisimMesaj);
  433.             $em->flush();
  434.             try {
  435.                 $mailer->send($newMail);
  436.             } catch (TransportException $e) {
  437.                 $status 'error';
  438.                 dd($e);
  439.             }
  440.             return $this->redirectToRoute('app_main_iletisim', ['mailStatus' => $status]);
  441.         }
  442.         return $this->render('main/default/iletisim.html.twig', [
  443.             'entity' => $entity,
  444.             'adresler' => $adresler,
  445.             'sosyalmedya' => $sosyalmedya,
  446.         ]);
  447.     }
  448. }