Example #1
0
 /**
  * View event controller
  * 
  * @param array $params
  */
 public function view($params)
 {
     $event = $this->getEventForParams($params);
     $cmpId = UTIL_HtmlTag::generateAutoId('cmp');
     $this->assign('contId', $cmpId);
     if (!OW::getUser()->isAuthorized('event', 'view_event') && $event->getUserId() != OW::getUser()->getId()) {
         $this->assign('authErrorText', OW::getLanguage()->text('event', 'event_view_permission_error_message'));
         return;
     }
     // guest gan't view private events
     if ((int) $event->getWhoCanView() === EVENT_BOL_EventService::CAN_VIEW_INVITATION_ONLY && !OW::getUser()->isAuthenticated()) {
         $this->redirect(OW::getRouter()->urlForRoute('event.private_event', array('eventId' => $event->getId())));
     }
     $eventInvite = $this->eventService->findEventInvite($event->getId(), OW::getUser()->getId());
     $eventUser = $this->eventService->findEventUser($event->getId(), OW::getUser()->getId());
     // check if user can view event
     if ((int) $event->getWhoCanView() === EVENT_BOL_EventService::CAN_VIEW_INVITATION_ONLY && $eventUser === null && $eventInvite === null && !OW::getUser()->isAuthorized('event')) {
         $this->redirect(OW::getRouter()->urlForRoute('event.private_event', array('eventId' => $event->getId())));
     }
     if (OW::getUser()->isAuthorized('event') || OW::getUser()->getId() == $event->getUserId()) {
         $this->assign('editArray', array('edit' => array('url' => OW::getRouter()->urlForRoute('event.edit', array('eventId' => $event->getId())), 'label' => OW::getLanguage()->text('event', 'edit_button_label')), 'delete' => array('url' => OW::getRouter()->urlForRoute('event.delete', array('eventId' => $event->getId())), 'label' => OW::getLanguage()->text('event', 'delete_button_label'), 'confirmMessage' => OW::getLanguage()->text('event', 'delete_confirm_message'))));
     }
     OW::getNavigation()->activateMenuItem(OW_Navigation::MAIN, 'event', 'main_menu_item');
     $this->setPageHeading($event->getTitle());
     $this->setPageTitle(OW::getLanguage()->text('event', 'event_view_page_heading', array('event_title' => $event->getTitle())));
     $this->setPageHeadingIconClass('ow_ic_calendar');
     OW::getDocument()->setDescription(UTIL_String::truncate(strip_tags($event->getDescription()), 200, '...'));
     $infoArray = array('id' => $event->getId(), 'image' => $event->getImage() ? $this->eventService->generateImageUrl($event->getImage(), false) : null, 'date' => UTIL_DateTime::formatSimpleDate($event->getStartTimeStamp(), $event->getStartTimeDisable()), 'endDate' => $event->getEndTimeStamp() === null || !$event->getEndDateFlag() ? null : UTIL_DateTime::formatSimpleDate($event->getEndTimeDisable() ? strtotime("-1 day", $event->getEndTimeStamp()) : $event->getEndTimeStamp(), $event->getEndTimeDisable()), 'location' => $event->getLocation(), 'desc' => UTIL_HtmlTag::autoLink($event->getDescription()), 'title' => $event->getTitle(), 'creatorName' => BOL_UserService::getInstance()->getDisplayName($event->getUserId()), 'creatorLink' => BOL_UserService::getInstance()->getUserUrl($event->getUserId()));
     $this->assign('info', $infoArray);
     // event attend form
     if (OW::getUser()->isAuthenticated() && $event->getEndTimeStamp() > time()) {
         if ($eventUser !== null) {
             $this->assign('currentStatus', OW::getLanguage()->text('event', 'user_status_label_' . $eventUser->getStatus()));
         }
         $this->addForm(new AttendForm($event->getId(), $cmpId));
         $onloadJs = "\n                var \$context = \$('#" . $cmpId . "');\n                \$('#event_attend_yes_btn').click(\n                    function(){\n                        \$('input[name=attend_status]', \$context).val(" . EVENT_BOL_EventService::USER_STATUS_YES . ");\n                    }\n                );\n                \$('#event_attend_maybe_btn').click(\n                    function(){\n                        \$('input[name=attend_status]', \$context).val(" . EVENT_BOL_EventService::USER_STATUS_MAYBE . ");\n                    }\n                );\n                \$('#event_attend_no_btn').click(\n                    function(){\n                        \$('input[name=attend_status]', \$context).val(" . EVENT_BOL_EventService::USER_STATUS_NO . ");\n                    }\n                );\n\n                \$('.current_status a', \$context).click(\n                    function(){\n                        \$('.attend_buttons .buttons', \$context).fadeIn(500);\n                    }\n                );\n            ";
         OW::getDocument()->addOnloadScript($onloadJs);
     } else {
         $this->assign('no_attend_form', true);
     }
     if ($event->getEndTimeStamp() > time() && ((int) $event->getUserId() === OW::getUser()->getId() || (int) $event->getWhoCanInvite() === EVENT_BOL_EventService::CAN_INVITE_PARTICIPANT && $eventUser !== null)) {
         $params = array($event->id);
         $this->assign('inviteLink', true);
         OW::getDocument()->addOnloadScript("\n                var eventFloatBox;\n                \$('#inviteLink', \$('#" . $cmpId . "')).click(\n                    function(){\n                        eventFloatBox = OW.ajaxFloatBox('EVENT_CMP_InviteUserListSelect', " . json_encode($params) . ", {width:600, iconClass: 'ow_ic_user', title: " . json_encode(OW::getLanguage()->text('event', 'friends_invite_button_label')) . "});\n                    }\n                );\n                OW.bind('base.avatar_user_list_select',\n                    function(list){\n                        eventFloatBox.close();\n                        \$.ajax({\n                            type: 'POST',\n                            url: " . json_encode(OW::getRouter()->urlFor('EVENT_CTRL_Base', 'inviteResponder')) . ",\n                            data: 'eventId=" . json_encode($event->getId()) . "&userIdList='+JSON.stringify(list),\n                            dataType: 'json',\n                            success : function(data){\n                                if( data.messageType == 'error' ){\n                                    OW.error(data.message);\n                                }\n                                else{\n                                    OW.info(data.message);\n                                }\n                            },\n                            error : function( XMLHttpRequest, textStatus, errorThrown ){\n                                OW.error(textStatus);\n                            }\n                        });\n                    }\n                );\n            ");
     }
     $cmntParams = new BASE_CommentsParams('event', 'event');
     $cmntParams->setEntityId($event->getId());
     $cmntParams->setOwnerId($event->getUserId());
     $this->addComponent('comments', new BASE_CMP_Comments($cmntParams));
     $this->addComponent('userListCmp', new EVENT_CMP_EventUsers($event->getId()));
     $event = new BASE_CLASS_EventCollector(EVENT_BOL_EventService::EVENT_COLLECT_TOOLBAR, array("eventId" => $event->getId()));
     $this->assign("toolbar", $event->getData());
 }