public function execute(HTTPRequestCustom $request) { $event_id = $request->get_getint('event_id', 0); $current_user_id = AppContext::get_current_user()->get_id(); if (!empty($event_id)) { $this->get_event($event_id); $this->check_authorizations(); if (!in_array($current_user_id, array_keys($this->event->get_participants()))) { CalendarService::add_participant($event_id, $current_user_id); CalendarCurrentMonthEventsCache::invalidate(); } $category = $this->event->get_content()->get_category(); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : CalendarUrlBuilder::display_event($category->get_id(), $category->get_rewrited_name(), $event_id, $this->event->get_content()->get_rewrited_title())); } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } }