예제 #1
0
 /**
  * Responder for event invite form
  */
 public function inviteResponder()
 {
     $respondArray = array();
     if (empty($_POST['eventId']) || empty($_POST['userIdList']) || !OW::getUser()->isAuthenticated()) {
         $respondArray['messageType'] = 'error';
         $respondArray['message'] = '_ERROR_';
         echo json_encode($respondArray);
         exit;
     }
     $idList = json_decode($_POST['userIdList']);
     if (empty($_POST['eventId']) || empty($idList)) {
         $respondArray['messageType'] = 'error';
         $respondArray['message'] = '_EMPTY_EVENT_ID_';
         echo json_encode($respondArray);
         exit;
     }
     $event = $this->eventService->findEvent($_POST['eventId']);
     if ($event->getEndTimeStamp() < time()) {
         throw new Redirect404Exception();
     }
     if ($event === null) {
         $respondArray['messageType'] = 'error';
         $respondArray['message'] = '_EMPTY_EVENT_';
         echo json_encode($respondArray);
         exit;
     }
     if ((int) $event->getUserId() === OW::getUser()->getId() || (int) $event->getWhoCanInvite() === EVENT_BOL_EventService::CAN_INVITE_PARTICIPANT) {
         $count = 0;
         $userList = BOL_UserService::getInstance()->findUserListByIdList($idList);
         foreach ($userList as $user) {
             $userId = $user->id;
             $eventInvite = $this->eventService->findEventInvite($event->getId(), $userId);
             if ($eventInvite === null) {
                 $eventInvite = $this->eventService->inviteUser($event->getId(), $userId, OW::getUser()->getId());
                 $eventObj = new OW_Event('event.invite_user', array('userId' => $userId, 'inviterId' => OW::getUser()->getId(), 'eventId' => $event->getId(), 'imageId' => $event->getImage(), 'eventTitle' => $event->getTitle(), 'eventDesc' => $event->getDescription(), 'displayInvitation' => $eventInvite->displayInvitation));
                 OW::getEventManager()->trigger($eventObj);
                 $count++;
             }
         }
     }
     $respondArray['messageType'] = 'info';
     $respondArray['message'] = OW::getLanguage()->text('event', 'users_invite_success_message', array('count' => $count));
     exit(json_encode($respondArray));
 }