/** * Добавляет событие в календарь пользователя * @Route("/addmycalendar/{event_id}", name = "add_user_calendar", options={"expose"=true} ) */ public function addMyCalendarAction(Request $request, $event_id) { $event = new UserCalendar(); $event_tmp = $this->getDoctrine()->getManager()->getRepository('EvrikaMainBundle:Event')->findOneById($event_id); $event->setEvent($event_tmp); $event->setUser($this->getUser()); $event->setStarts($event_tmp->getStarts()); $event->setEnds($event_tmp->getEnds()); $event->setTitle($event_tmp->getTitle()); $em = $this->getDoctrine()->getManager(); $em->persist($event); $em->flush(); $referer = $request->headers->get('referer'); return new RedirectResponse($referer); }
/** Пригласить на мероприятие, на которое сам НЕ подписан * @Secure(roles="IS_AUTHENTICATED_REMEMBERED") * @Route("/sharecalendarother/{guestId}/{eventId}", name = "User_calendar_share_other", defaults={"guestId"=null, "eventId"=null }, requirements = {"guestId" = "\d+", "eventId" = "\d+"}, options={"expose"=true}) */ public function shareUserCalendarOtherAction($guestId, $eventId) { $UserEvent = new UserCalendar(); $event = $this->getDoctrine()->getManager()->getRepository('EvrikaMainBundle:Event')->findOneById($eventId); $user = $this->getDoctrine()->getManager()->getRepository('EvrikaMainBundle:User')->findOneById($guestId); //Нет ли у него уже этого события $is = $this->getDoctrine()->getManager()->getRepository('EvrikaMainBundle:UserCalendar')->findBy(array('event' => $event, 'user' => $user)); if ($is == NULL) { $is = $this->getDoctrine()->getManager()->getRepository('EvrikaMainBundle:UserCalendar')->findBy(array('event' => $event, 'guest' => $user)); } if ($is == NULL) { $UserEvent = new UserCalendar(); $UserEvent->setEvent($event); $UserEvent->setUser($user); $UserEvent->setStarts($event->getStarts()); $UserEvent->setEnds($event->getEnds()); $UserEvent->setTitle($event->getTitle()); $recipient = $user; $em = $this->getDoctrine()->getManager(); $message = new PrivateMessage(); $message->setRecipient($recipient); $message->setSender($this->getUser()); $message->setHeader('Вас пригласили на событие'); $msg = "Пользователь "; $msg .= $this->getUser()->getLastName() . " " . $this->getUser()->getFirstName(); $msg .= " пригласил вас на событие"; $message->setBody($msg); $em->persist($UserEvent); $em->persist($message); $em->flush(); } return $this->render('EvrikaMainBundle::response.json.twig', array('status' => 'OK', 'data' => 'ok')); }