/** * Dispatches event calendar pages. * * URLs take the form of * Site event calendar: event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region> * Single event: event_calendar/view/<event_guid>/<title> * New event: event_calendar/add * Edit event: event_calendar/edit/<event_guid> * Group event calendar: event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region> * Add group event: event_calendar/add/<group_guid> * Review requests: event_calendar/review_requests/<event_guid> * Display event subscribers: event_calendar/display_users/<event_guid> * Events for a user's calendar: event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region> * * Title is ignored * * @param array $page * @return NULL */ function event_calendar_page_handler($page) { elgg_load_library('elgg:event_calendar'); $page_type = $page[0]; switch ($page_type) { case 'list': if (isset($page[1])) { $start_date = $page[1]; if (isset($page[2])) { $display_mode = $page[2]; if (isset($page[3])) { $filter_mode = $page[3]; if (isset($page[4])) { $region = $page[4]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = 0; } echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region); break; case 'view': echo event_calendar_get_page_content_view($page[1]); break; case 'view_light_box': echo event_calendar_get_page_content_view($page[1], TRUE); break; case 'display_users': echo event_calendar_get_page_content_display_users($page[1]); break; case 'manage_users': echo event_calendar_get_page_content_manage_users($page[1]); break; case 'schedule': case 'add': if (isset($page[1])) { group_gatekeeper(); $group_guid = $page[1]; } else { gatekeeper(); $group_guid = 0; } echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]); break; case 'edit': gatekeeper(); echo event_calendar_get_page_content_edit($page_type, $page[1]); break; case 'group': group_gatekeeper(); if (isset($page[1])) { $group_guid = $page[1]; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'owner': if (isset($page[1])) { $username = $page[1]; $user = get_user_by_username($username); $user_guid = $user->guid; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'review_requests': gatekeeper(); echo event_calendar_get_page_content_review_requests($page[1]); break; case 'get_fullcalendar_events': echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4]); break; default: return FALSE; } return TRUE; }
/** * Dispatches event calendar pages. * * URLs take the form of * Site event calendar: event_calendar/list/<start_date>/<display_mode>/<filter_context>/<region> * Single event: event_calendar/view/<event_guid>/<title> * New event: event_calendar/add * Edit event: event_calendar/edit/<event_guid> * Group event calendar: event_calendar/group/<group_guid>/<start_date>/<display_mode>/<filter_context>/<region> * Add group event: event_calendar/add/<group_guid> * Review requests: event_calendar/review_requests/<event_guid> * Display event subscribers: event_calendar/display_users/<event_guid> * Events for a user's calendar: event_calendar/owner/<username>/<start_date>/<display_mode>/<filter_context>/<region> * * Title is ignored * * @param array $page * @return null */ function event_calendar_page_handler($page) { if (elgg_get_plugin_setting('ical_import_export', 'event_calendar') == "yes") { set_input('ical_calendar_title_menu', true); } elgg_load_library('elgg:event_calendar'); $page_type = $page[0]; switch ($page_type) { case 'list': if (isset($page[1])) { $start_date = $page[1]; set_input('ical_date', $page[1]); if (isset($page[2])) { $display_mode = $page[2]; set_input('ical_interval', $page[2]); if (isset($page[3])) { $filter_mode = $page[3]; switch ($page[3]) { case 'mine': set_input('ical_calendar_filter', 'mine'); break; case 'friends': set_input('ical_calendar_filter', 'friends'); break; default: set_input('ical_calendar_filter', 'all'); break; } if (isset($page[4])) { $region = $page[4]; set_input('ical_region', $page[4]); } else { $region = ''; set_input('ical_region', ''); } } else { $filter_mode = ''; set_input('ical_calendar_filter', 'all'); } } else { $display_mode = ''; set_input('ical_interval', ''); } } else { $start_date = 0; set_input('ical_date', 0); } echo event_calendar_get_page_content_list($page_type, 0, $start_date, $display_mode, $filter_mode, $region); break; case 'view': echo event_calendar_get_page_content_view($page[1]); break; case 'display_users': echo event_calendar_get_page_content_display_users($page[1]); break; case 'manage_users': echo event_calendar_get_page_content_manage_users($page[1]); break; case 'schedule': case 'add': if (isset($page[1])) { group_gatekeeper(); $group_guid = $page[1]; } else { gatekeeper(); $group_guid = 0; } echo event_calendar_get_page_content_edit($page_type, $group_guid, $page[2]); break; case 'edit': gatekeeper(); echo event_calendar_get_page_content_edit($page_type, $page[1]); break; case 'group': group_gatekeeper(); if (isset($page[1])) { $group_guid = $page[1]; set_input('ical_group_guid', $page[1]); if (isset($page[2])) { $start_date = $page[2]; set_input('ical_date', $page[2]); if (isset($page[3])) { $display_mode = $page[3]; set_input('ical_interval', $page[3]); if (isset($page[4])) { $filter_mode = $page[4]; switch ($page[4]) { case 'mine': set_input('ical_calendar_filter', 'mine'); break; case 'friends': set_input('ical_calendar_filter', 'friends'); break; default: set_input('ical_calendar_filter', 'all'); break; } if (isset($page[5])) { $region = $page[5]; set_input('ical_region', $page[5]); } else { $region = ''; set_input('ical_region', ''); } } else { $filter_mode = ''; set_input('ical_calendar_filter', 'all'); } } else { $display_mode = ''; set_input('ical_interval', ''); } } else { $start_date = ''; set_input('ical_date', 0); } } else { $group_guid = 0; set_input('ical_group_guid', 0); } echo event_calendar_get_page_content_list($page_type, $group_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'owner': if (isset($page[1])) { $username = $page[1]; $user = get_user_by_username($username); $user_guid = $user->guid; if (isset($page[2])) { $start_date = $page[2]; if (isset($page[3])) { $display_mode = $page[3]; if (isset($page[4])) { $filter_mode = $page[4]; if (isset($page[5])) { $region = $page[5]; } else { $region = ''; } } else { $filter_mode = ''; } } else { $display_mode = ''; } } else { $start_date = ''; } } else { $group_guid = 0; } echo event_calendar_get_page_content_list($page_type, $user_guid, $start_date, $display_mode, $filter_mode, $region); break; case 'review_requests': gatekeeper(); echo event_calendar_get_page_content_review_requests($page[1]); break; case 'get_fullcalendar_events': echo event_calendar_get_page_content_fullcalendar_events($page[1], $page[2], $page[3], $page[4], $page[5]); break; case 'ical': $resource_vars['action_type'] = $page[1]; echo elgg_view_resource('event_calendar/export', $resource_vars); break; default: return false; } return true; }