src/Controller/CourseListController.php line 95

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\CourseService;
  4. use App\Entity\Course;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
  10. class CourseListController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/kursy", name="app_course_list")
  14.      * @Cache(smaxage=3600)
  15.      */
  16.     public function index(ManagerRegistry $doctrine): Response
  17.     {
  18.         return $this->render('course_list/index.html.twig');
  19.     }
  20.     /**
  21.      * @Route("/lista_kursow", name="course_list")
  22.      */
  23.     public function courseList(ManagerRegistry $doctrine): Response
  24.     {
  25.         $courses $doctrine->getRepository(Course::class)->findByCourseDetailHidden(0);
  26.         foreach ($courses as $course) {
  27.             $courseService = new CourseService($course);
  28.             $courseDetail $course->getCourseDetail();
  29.             $courseList[] = [
  30.                 'level' => $courseService->getLevel(),
  31.                 'category' => $courseService->getCategory(),
  32.                 'id' => $course->getId(),
  33.                 'name' => $course->getName(),
  34.                 'photo' => $courseDetail->getPhoto(),
  35.                 'duration' => $courseDetail->getDuration(),
  36.                 'lessons' => $courseDetail->getLessonsInCourse(),
  37.                 'description' => $courseDetail->getDescription(),
  38.                 'price' => [
  39.                     'monthly' => $course->getCoursePrice()->getMonthly(),
  40.                     'quarterly' => $course->getCoursePrice()->getQuarterly(),
  41.                     'yearly' => $course->getCoursePrice()->getYearly(),
  42.                 ]
  43.             ];
  44.         }
  45.         usort($courseList, function($a$b) {
  46.             return strcmp($a['price']['monthly'], $b['price']['monthly']);
  47.         });
  48.         return $this->render('course_list/courses.html.twig', [
  49.             'courseList' => $courseList
  50.         ])->setSharedMaxAge(3600);
  51.     }
  52.     /**
  53.      * @Route("/kursy-wakacyjne", name="app_vacation_course_list")
  54.      */
  55.     public function vacationCourses(ManagerRegistry $doctrine): Response
  56.     {
  57.         $courses $doctrine->getRepository(Course::class)->findByCourseGroupType('vacation');
  58.         foreach ($courses as $course) {
  59.             $courseService = new CourseService($course);
  60.             $courseDetail $course->getCourseDetail();
  61.             $courseList[] = [
  62.                 'level' => $courseService->getLevel(),
  63.                 'category' => $courseService->getCategory(),
  64.                 'id' => $course->getId(),
  65.                 'name' => $course->getName(),
  66.                 'photo' => $courseDetail->getPhoto(),
  67.                 'duration' => $courseDetail->getDuration(),
  68.                 'lessons' => $courseDetail->getLessonsInCourse(),
  69.                 'description' => $courseDetail->getDescription(),
  70.                 'price' => [
  71.                     'monthly' => $course->getCoursePrice()->getMonthly(),
  72.                     'quarterly' => $course->getCoursePrice()->getQuarterly(),
  73.                     'yearly' => $course->getCoursePrice()->getYearly(),
  74.                 ]
  75.             ];
  76.         }
  77.         usort($courseList, function($a$b) {
  78.             return strcmp($a['price']['monthly'], $b['price']['monthly']);
  79.         });
  80.         return $this->render('course_list/index_vacation.html.twig', [
  81.             'courseList' => $courseList
  82.         ]);
  83.     }
  84.     /**
  85.      * @Route("/darmowe-zajecia", name="app_free_class")
  86.      */
  87.     public function freeclass(ManagerRegistry $doctrine): Response
  88.     {
  89.         $courses $doctrine->getRepository(Course::class)->findAll();
  90.         foreach ($courses as $course) {
  91.             $courseService = new CourseService($course);
  92.             $courseDetail $course->getCourseDetail();
  93.             if ($courseDetail->getFreeLesson())
  94.             {
  95.                 $courseList[] = [
  96.                     'level' => $courseService->getLevel(),
  97.                     'category' => $courseService->getCategory(),
  98.                     'id' => $course->getId(),
  99.                     'name' => $course->getName(),
  100.                     'photo' => $courseDetail->getPhoto(),
  101.                     'duration' => $courseDetail->getDuration(),
  102.                     'lessons' => $courseDetail->getLessonsInCourse(),
  103.                     'description' => $courseDetail->getDescription(),
  104.                     'price' => [
  105.                         'monthly' => $course->getCoursePrice()->getMonthly(),
  106.                         'quarterly' => $course->getCoursePrice()->getQuarterly(),
  107.                         'yearly' => '0',
  108.                     ]
  109.                 ];
  110.             }
  111.         }
  112.         usort($courseList, function($a$b) {
  113.             return strcmp($a['price']['monthly'], $b['price']['monthly']);
  114.         });
  115.         return $this->render('course_list/index.html.twig', [
  116.             'courseList' => $courseList,
  117.             'free_class' => true
  118.         ]);
  119.     }
  120. }