Ejemplo n.º 1
0
 /**
  * @Route("/admin/course_/cath/{cathedraId}", name = "admin_course_add")
  * @Template("LearningMainBundle:Admin:course_.html.twig")
  */
 public function addAction($cathedraId = null)
 {
     $portal = $this->container->getParameter('portal');
     $request = $this->getRequest();
     $em = $this->getDoctrine()->getManager();
     $course = new Course();
     $specialty = $em->getRepository('LearningMainBundle:Specialty')->findAll();
     $cathedra = $em->getRepository('LearningMainBundle:Cathedra')->findAll();
     if ($request->isMethod('POST')) {
         $cathId = $request->request->get('cathedra');
         $cath = $em->getRepository('LearningMainBundle:Cathedra')->findOneById($cathId);
         $course->setTitle($request->request->get('title'));
         $file = $request->files->get('image');
         if ($file) {
             $file = $file->getPathName();
             $newPath = $_SERVER['DOCUMENT_ROOT'] . '/upload/course/' . time() . '.jpg';
             move_uploaded_file($file, $newPath);
             $course->setImage($this->getArrayToImg($newPath));
         } else {
             $course->setImage('N;');
         }
         $course->setCathedra($cath);
         $course->setTimeToLearn($request->request->get('timeToLearn'));
         $course->setEnabled($request->request->get('enabled'));
         $course->setPrice($request->request->get('price'));
         $course->setRecording($request->request->get('recording'));
         $course->setPriceRoh(0);
         if ($this->get('security.context')->isGranted('ROLE_ADMIN')) {
             $orgTmp = $this->getDoctrine()->getRepository('LearningMainBundle:Organization')->findOneById($request->request->get('organization'));
             if ($orgTmp != null) {
                 $course->setOrganization($orgTmp);
             }
         }
         $course->setText($request->request->get('text'));
         if ($request->request->get('ballsRoh')) {
             $course->setBallsRoh(0);
         } else {
             $course->setBallsRoh(0);
         }
         if ($this->get('security.context')->isGranted('ROLE_ADMIN')) {
             if ($request->request->get('user') == null || $request->request->get('user') == 'null') {
             } else {
                 $user = $this->getDoctrine()->getRepository('LearningMainBundle:User')->findOneById($request->request->get('user'));
                 $course->setAuthor($user);
             }
         } else {
             $course->setAuthor($this->getUser());
         }
         if ($this->get('security.context')->isGranted('ROLE_ORGANIZATION')) {
             $course->setOrganization($this->getUser()->getOrganization());
         }
         $em->persist($course);
         if ($request->request->has('university')) {
             $universityId = $request->request->get('university');
             $university = $em->getRepository('LearningMainBundle:University')->findOneById($universityId);
             $course->setUniversity($university);
         }
         if ($request->request->get('specialty')) {
             $this->setSpecialties($course, $request->request->get('specialty'));
         } elseif ($request->request->get('specialization')) {
             $this->setSpecializations($course, $request->request->get('specialization'));
         }
         $em->flush();
         $em->refresh($course);
         $message = \Swift_Message::newInstance()->setSubject('Новый курс')->setContentType('text/html')->setCharset('utf-8')->setFrom('*****@*****.**', "Уведомление {$portal}")->setTo($this->container->getParameter('manager_emails'))->setBody($this->renderView('LearningMainBundle:Email:new_course_notice.html.twig', array('user' => $this->getUser(), 'course' => $course, 'portal' => $portal)));
         $this->get('mailer')->send($message);
         $this->get('session')->getFlashBag()->add('popup', 'Добавлен');
         return $this->redirect($this->generateUrl('admin_course_edit', array('courseId' => $course->getId())));
     }
     $thisCathedra = $cathedraId ? $em->getRepository('LearningMainBundle:Cathedra')->findOneById($cathedraId) : null;
     if ($this->getUser()->getOrganization()) {
         $organizationId = $this->getUser()->getOrganization()->getId();
     } else {
         $organizationId = null;
     }
     $organization = $organizationId ? $em->getRepository('LearningMainBundle:Organization')->findOneById($organizationId) : $em->getRepository('LearningMainBundle:Organization')->findAll();
     $specialization = $em->getRepository('LearningMainBundle:Specialization')->findAll();
     $universities = $this->getDoctrine()->getRepository('LearningMainBundle:University')->findAll();
     $tUsers = $em->getRepository('LearningMainBundle:user')->findAll();
     $users = array();
     foreach ($tUsers as $tUser) {
         if (in_array('ROLE_ADMIN', $tUser->getRoles()) || in_array('ROLE_ORGANIZATION', $tUser->getRoles()) || in_array('ROLE_EDITOR', $tUser->getRoles()) || in_array('ROLE_CURATOR', $tUser->getRoles())) {
             $users[] = $tUser;
         }
     }
     return array('specialty' => $specialty, 'specialization' => $specialization, 'portal' => $portal, 'cathedra' => $cathedra, 'organization' => $organization, 'thisCathedra' => $thisCathedra, 'users' => $users, 'universities' => $universities);
 }