コード例 #1
0
ファイル: AcademyController.php プロジェクト: OKTOTV/FLUX2
 /**
  * @Route("/book/{course}", name="oktothek_academy_book_course")
  * @Method({"GET", "POST"})
  * @Template()
  */
 public function bookCourseAction(Request $request, Course $course)
 {
     $attendee = new Attendee();
     $course->addAttendee($attendee);
     $form = $this->createForm(new AttendeeType(), $attendee);
     if ($course->getCoursetype()->getPrice() <= 0) {
         $form->add('register', 'submit', ['label' => 'oktothek.register_attendee_button', 'attr' => ['class' => 'btn btn-primary']]);
     } else {
         $form->add('sofort', 'submit', ['label' => 'oktothek.book_sofort_button', 'attr' => ['class' => 'btn btn-primary']]);
         $form->add('submit', 'submit', ['label' => 'oktothek.attendee_create_button', 'attr' => ['class' => 'btn btn-default']]);
     }
     if ($request->getMethod() == "POST") {
         //sends form
         $form->handleRequest($request);
         if ($form->isValid()) {
             // die(var_dump($form->getClickedButton()));
             if ($form->has('sofort') && $form->get('sofort')->isClicked()) {
                 if ($url = $this->get('oktothek_academy')->bookCourseSOFORT($attendee, $course)) {
                     return $this->redirect($url);
                 }
                 $this->get('session')->getFlashBag()->add('error', 'oktothek.error_sofort_book_course');
             } elseif ($form->has('register') && $form->get('register')->isClicked()) {
                 $this->get('oktothek_academy')->registerCourse($attendee, $course);
                 $this->get('session')->getFlashBag()->add('success', 'oktothek.success_register_course');
                 return $this->redirect($this->generateUrl('oktothek_academy_coursetype', ['coursetype' => $course->getCoursetype()->getId()]));
             } else {
                 $this->get('oktothek_academy')->bookCourse($attendee, $course);
                 $this->get('session')->getFlashBag()->add('success', 'oktothek.success_book_course');
                 return $this->redirect($this->generateUrl('oktothek_academy_coursetype', ['coursetype' => $course->getCoursetype()->getId()]));
             }
         } else {
             $this->get('session')->getFlashBag()->add('error', 'oktothek.error_book_course');
         }
     }
     return ['form' => $form->createView(), 'course' => $course];
 }
コード例 #2
0
ファイル: CourseController.php プロジェクト: OKTOTV/FLUX2
 /**
  * @Route("/course/{coursetype}/new", name="oktothek_backend_new_course")
  * @Template()
  */
 public function newCourseAction(Request $request, Coursetype $coursetype)
 {
     $course = new Course();
     $course->setCoursetype($coursetype);
     $form = $this->createForm(new CourseFormType(), $course);
     $form->add('submit', 'submit', ['label' => 'oktothek.course_create_button', 'attr' => ['class' => 'btn btn-primary']]);
     if ($request->getMethod() == "POST") {
         //sends form
         $form->handleRequest($request);
         if ($form->isValid()) {
             $em = $this->getDoctrine()->getManager();
             $em->persist($course);
             $em->flush();
             $this->get('session')->getFlashBag()->add('success', 'oktothek.success_create_course');
             return $this->redirect($this->generateUrl('oktothek_backend_courses'));
         } else {
             $this->get('session')->getFlashBag()->add('error', 'oktothek.error_create_course');
         }
     }
     return ['form' => $form->createView()];
 }