src/Controller/MainController.php line 172

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Basket;
  4. use App\Entity\Chilidocument;
  5. use App\Entity\Settings;
  6. use App\Entity\Whishlist;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpFoundation\Session\Session;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class MainController extends AbstractController
  13. {
  14.     public function getCurrentBasket() {
  15.         $basketcookie getBasketCookie();
  16.         $em $this->getDoctrine()->getManager();
  17.         if ($this->getUser()) {
  18.             $basket $em->getRepository(Basket::class)->findBy(['user' => $this->getUser()->getId(), 'is_order' => false]);
  19.         } else {
  20.             $basket $em->getRepository(Basket::class)->findBy(['csrftoken' => $basketcookie'is_order' => false]);
  21.         }
  22.         if ($basket) {
  23.             $basket $basket[0];
  24.         } else {
  25.             $basket = new Basket();
  26.         }
  27.         // Check for duplicates and clean up
  28.         // Make sure basket items is attached to correct basket
  29.         return $basket;
  30.     }
  31.     public function getLeartsHeader() {
  32.         $response $this->forward('App\Controller\BasketController::getNumberOfCurrentBasketItems');
  33.         $content json_decode($response->getContent(),1);
  34.         $numbasketitems $content['num'];
  35.         $basketcookie getBasketCookie();
  36.         $whishlist $this->getDoctrine()->getRepository(Whishlist::class)->findBy(['user' => $this->getUser()]);
  37.         $numonwhishlist count($whishlist);
  38.         $folders $this->getDoctrine()->getRepository(Chilidocument::class)->findBy(['is_folder' => true],['sortorder' => 'asc','name' => 'asc']);
  39.         foreach ($folders as $folder) {
  40.             $f[$folder->getMother()][] = $folder->getName();
  41.         }
  42.         return $this->render('theme_learts/header.html.twig', [
  43.             'numbasketitems' => $numbasketitems,
  44.             'basketcookie' => $basketcookie,
  45.             'numonwhishlist' => $numonwhishlist,
  46.             'folders' => $f,
  47.         ]);
  48.     }
  49.     public function getLeartsOffcanvasMobileMenu() {
  50.         $response $this->forward('App\Controller\BasketController::getNumberOfCurrentBasketItems');
  51.         $content json_decode($response->getContent(),1);
  52.         $numbasketitems $content['num'];
  53.         $basketcookie getBasketCookie();
  54.         $whishlist $this->getDoctrine()->getRepository(Whishlist::class)->findBy(['user' => $this->getUser()]);
  55.         $numonwhishlist count($whishlist);
  56.         $folders $this->getDoctrine()->getRepository(Chilidocument::class)->findBy(['is_folder' => true],['sortorder' => 'asc','name' => 'asc']);
  57.         foreach ($folders as $folder) {
  58.             $f[$folder->getMother()][] = $folder->getName();
  59.         }
  60.         return $this->render('theme_learts/offcanvasmobilemenu.html.twig', [
  61.             'numbasketitems' => $numbasketitems,
  62.             'basketcookie' => $basketcookie,
  63.             'numonwhishlist' => $numonwhishlist,
  64.             'folders' => $f,
  65.         ]);
  66.     }
  67.     public function getLeartsOffcanvasCart() {
  68.         $basketcookie getBasketCookie();
  69.         $em $this->getDoctrine()->getManager();
  70.         if ($this->getUser()) {
  71.             $basket $em->getRepository(Basket::class)->findBy(['user' => $this->getUser()->getId(), 'is_order' => false]);
  72.         } else {
  73.             $basket $em->getRepository(Basket::class)->findBy(['csrftoken' => $basketcookie'is_order' => false]);
  74.         }
  75.         if ($basket) {
  76.             $basket $basket[0];
  77.         } else {
  78.             $basket = new Basket();
  79.         }
  80. //        $current_basket = $this->forward('App\Controller\BasketController::getCurrentBasket');
  81.         return $this->render('theme_learts/offcanvascart.html.twig', [
  82.             'basket' => $basket,
  83.         ]);
  84.     }
  85.     public function getLeartsWhishlist() {
  86.         $whishlist $this->getDoctrine()->getRepository(Whishlist::class)->findBy(['user' => $this->getUser()]);
  87.         return $this->render('theme_learts/whishlist.html.twig', [
  88.             'whishlist' => $whishlist,
  89.         ]);
  90.     }
  91.     public function getLeartsDebugInfo() {
  92.         $current_basket $this->getCurrentBasket();
  93.         return $this->render('theme_learts/debuginfo.html.twig', [
  94.             'current_basket' => $current_basket,
  95.         ]);
  96.     }
  97.     public function getNavbar()    {
  98.         $response $this->forward('App\Controller\BasketController::getNumberOfCurrentBasketItems');
  99.         $content json_decode($response->getContent(),1);
  100.         $numbasketitems $content['num'];
  101.         $basketcookie getBasketCookie();
  102.         return $this->render('theme_' config_theme '/navbar.html.twig', [
  103.             'numbasketitems' => $numbasketitems,
  104.             'basketcookie' => $basketcookie,
  105.         ]);
  106.     }
  107.     public function getBreadcrumb($level) {
  108.         return $this->render('theme_' config_theme '/breadcrumb.html.twig', [
  109.             'level' => explode('/',$level),
  110.         ]);
  111.     }
  112.     /**
  113.      * @Route("/", name="homepage")
  114.      */
  115.     public function homepage(): Response
  116.     {
  117.         $em $this->getDoctrine()->getManager();
  118.         $chilidocs $em->getRepository(Chilidocument::class)->findBy(['on_front' => true'is_active' => true]);
  119.         $favourites $em->getRepository(Whishlist::class)->findBy(['user' => $this->getUser()]);
  120.         $favs = [];
  121.         foreach ($favourites as $f) {
  122.             array_push($favs,$f->getChilidocument()->getId());
  123.         }
  124.         return $this->render('theme_' config_theme '/index.html.twig', [
  125.             'theme' => config_theme,
  126.             'chilidocs' => $chilidocs,
  127.             'favourites' => $favs,
  128.         ]);
  129.     }
  130.     /**
  131.      * @Route("/terms", name="termspage")
  132.      */
  133.     public function terms(): Response
  134.     {
  135.         $settings $this->getDoctrine()->getRepository(Settings::class)->find(1);
  136.         return $this->render('theme_' config_theme '/terms.html.twig', [
  137.             'settings' => $settings,
  138.         ]);
  139.     }
  140.     /**
  141.      * @Route("/aboutus", name="aboutuspage")
  142.      */
  143.     public function aboutuspage(): Response
  144.     {
  145.         $settings $this->getDoctrine()->getRepository(Settings::class)->find(1);
  146.         return $this->render('theme_' config_theme '/aboutus.html.twig', [
  147.             'settings' => $settings,
  148.         ]);
  149.     }
  150.     /**
  151.      * @Route("/setbrowserwidth", name="setbrowserwidth_page")
  152.      */
  153.     public function setbrowserwidth(Request $requestSession $session): Response
  154.     {
  155.         if ($request->getMethod() == 'POST') {
  156.             $p $_POST;
  157.             $session->set('browserwidth',$p['width']);
  158.             return $this->redirectToRoute('Handlekurv');
  159.         }
  160.         return $this->render('main/setbrowserwidth.html.twig');
  161.     }
  162. }