function event_calendar_get_page_content_fullcalendar_events($start_date, $end_date, $filter = 'all', $container_guid = 0, $region = '-') { //print "$start_date - $end_date"; $start_ts = strtotime($start_date); $end_ts = strtotime($end_date); if ($filter == 'all') { $events = event_calendar_get_events_between($start_ts, $end_ts, false, 0, 0, $container_guid, $region); } else { if ($filter == 'open') { $events = event_calendar_get_open_events_between($start_ts, $end_ts, false, 0, 0, $container_guid, $region); } else { if ($filter == 'friends') { $user_guid = elgg_get_logged_in_user_guid(); $events = event_calendar_get_events_for_friends_between($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region); } else { if ($filter == 'mine') { $user_guid = elgg_get_logged_in_user_guid(); $events = event_calendar_get_events_for_user_between2($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region); } } } } $event_array = array(); $times_supported = elgg_get_plugin_setting('times', 'event_calendar') != 'no'; $polls_supported = elgg_is_active_plugin('event_poll'); foreach ($events as $e) { $event = $e['event']; $event_data = $e['data']; $c = count($event_data); foreach ($event_data as $ed) { $event_item = array('guid' => $event->guid, 'title' => $event->title, 'start' => date('c', $ed['start_time']), 'end' => date('c', $ed['end_time'])); if (!$times_supported || $event->schedule_type == 'all_day') { $event_item['allDay'] = TRUE; } else { $event_item['allDay'] = FALSE; } if ($polls_supported && isset($e['is_event_poll']) && $e['is_event_poll']) { $event_item['className'] = 'event-poll-class'; $event_item['title'] .= ' ' . elgg_echo('event_calendar:poll_suffix'); $event_item['is_event_poll'] = TRUE; $event_item['url'] = elgg_get_site_url() . 'event_poll/vote/' . $event->guid; $event_item['minutes'] = $ed['minutes']; $event_item['iso_date'] = $ed['iso_date']; } else { $event_item['id'] = $event->guid; $event_item['is_event_poll'] = FALSE; $event_item['url'] = elgg_get_site_url() . 'event_calendar/view/' . $event->guid; } $event_array[] = $event_item; } } $json_events_string = json_encode($event_array); return $json_events_string; }
function event_calendar_generate_listing_params($page_type, $container_guid, $original_start_date, $display_mode, $filter, $region = '-') { $event_calendar_listing_format = elgg_get_plugin_setting('listing_format', 'event_calendar'); $event_calendar_spots_display = trim(elgg_get_plugin_setting('spots_display', 'event_calendar')); $event_calendar_first_date = trim(elgg_get_plugin_setting('first_date', 'event_calendar')); $event_calendar_last_date = trim(elgg_get_plugin_setting('last_date', 'event_calendar')); if (!$original_start_date) { $original_start_date = date('Y-m-d'); } if ($event_calendar_first_date && $original_start_date < $event_calendar_first_date) { $original_start_date = $event_calendar_first_date; } if ($event_calendar_last_date && $original_start_date > $event_calendar_last_date) { $original_start_date = $event_calendar_first_date; } if ($event_calendar_listing_format == 'paged') { $start_ts = strtotime($original_start_date); $start_date = $original_start_date; if ($event_calendar_last_date) { $end_ts = strtotime($event_calendar_last_date); } else { // set to a large number $end_ts = 2000000000; } $mode = 'paged'; } else { // the default interval is one month $day = 60 * 60 * 24; $week = 7 * $day; $month = 31 * $day; $mode = trim($display_mode); if (!$mode) { $mode = 'month'; } if ($mode == "day") { $start_date = $original_start_date; $end_date = $start_date; $start_ts = strtotime($start_date); $end_ts = strtotime($end_date) + $day - 1; } else { if ($mode == "week") { // need to adjust start_date to be the beginning of the week $start_ts = strtotime($original_start_date); $start_ts -= date("w", $start_ts) * $day; $end_ts = $start_ts + 6 * $day; $start_date = date('Y-m-d', $start_ts); $end_date = date('Y-m-d', $end_ts); } else { $start_ts = strtotime($original_start_date); $month = date('m', $start_ts); $year = date('Y', $start_ts); $start_date = $year . '-' . $month . '-1'; $end_date = $year . '-' . $month . '-' . getLastDayOfMonth($month, $year); } } if ($event_calendar_first_date && $start_date < $event_calendar_first_date) { $start_date = $event_calendar_first_date; } if ($event_calendar_last_date && $end_date > $event_calendar_last_date) { $end_date = $event_calendar_last_date; } $start_ts = strtotime($start_date); if ($mode == "day") { $end_ts = strtotime($end_date) + $day - 1; $subtitle = elgg_echo('event_calendar:day_label') . ': ' . date('j F Y', strtotime($start_date)); } else { if ($mode == "week") { // KJ - fix for end date bug //$end_ts = $start_ts + 6*$day; $end_ts = $start_ts + 7 * $day; $subtitle = elgg_echo('event_calendar:week_label') . ': ' . date('j F', $start_ts) . ' - ' . date('j F Y', $end_ts); } else { // KJ - fix for end date bug //$end_ts = strtotime($end_date); $end_ts = strtotime($end_date) + 24 * 60 * 60 - 1; $subtitle = date('F Y', $start_ts); } } } $current_user_guid = elgg_get_logged_in_user_guid(); $access_status = elgg_get_ignore_access(); if ($page_type == 'owner') { $container = get_entity($container_guid); if (elgg_instanceof($container, 'user')) { $auth_token = get_input('auth_token'); if ($auth_token) { $secret_key = event_calendar_get_secret_key(); if ($secret_key && $auth_token === sha1($container->username . $secret_key)) { elgg_set_ignore_access(TRUE); } } if ($container->canEdit()) { $user_guid = $container_guid; $group_guid = 0; } else { register_error('event_calendar:owner:permissions_error'); forward(); exit; } } else { register_error('event_calendar:owner:permissions_error'); forward(); exit; } } else { $user_guid = $current_user_guid; $group_guid = $container_guid; } $offset = get_input('offset'); $limit = get_input('limit', 15); if ($event_calendar_spots_display == 'yes') { if (!$filter) { $filter = 'open'; } } else { if (!$filter) { $filter = 'all'; } } if ($filter == 'all') { $count = event_calendar_get_events_between($start_ts, $end_ts, true, $limit, $offset, $container_guid, $region); $events = event_calendar_get_events_between($start_ts, $end_ts, false, $limit, $offset, $container_guid, $region); } else { if ($filter == 'open') { $count = event_calendar_get_open_events_between($start_ts, $end_ts, true, $limit, $offset, $container_guid, $region); $events = event_calendar_get_open_events_between($start_ts, $end_ts, false, $limit, $offset, $container_guid, $region); } else { if ($filter == 'friends') { $count = event_calendar_get_events_for_friends_between($start_ts, $end_ts, true, $limit, $offset, $user_guid, $container_guid, $region); $events = event_calendar_get_events_for_friends_between($start_ts, $end_ts, false, $limit, $offset, $user_guid, $container_guid, $region); } else { if ($filter == 'mine') { $count = event_calendar_get_events_for_user_between2($start_ts, $end_ts, true, $limit, $offset, $user_guid, $container_guid, $region); $events = event_calendar_get_events_for_user_between2($start_ts, $end_ts, false, $limit, $offset, $user_guid, $container_guid, $region); } } } } $vars = array('original_start_date' => $original_start_date, 'start_date' => $start_date, 'end_date' => $end_date, 'first_date' => $event_calendar_first_date, 'last_date' => $event_calendar_last_date, 'mode' => $mode, 'events' => $events, 'count' => $count, 'offset' => $offset, 'limit' => $limit, 'group_guid' => $group_guid, 'filter' => $filter, 'region' => $region, 'listing_format' => $event_calendar_listing_format); $content = elgg_view('event_calendar/show_events', $vars); if ($page_type == 'owner') { $filter_override = ''; } else { $filter_override = elgg_view('event_calendar/filter_menu', $vars); } if ($event_calendar_listing_format == 'paged') { $title = elgg_echo('event_calendar:upcoming_events_title'); } else { if ($page_type == 'group') { $title = elgg_echo('event_calendar:group') . ' (' . $subtitle . ')'; } else { $title = elgg_echo('event_calendar:listing_title:' . $filter) . ' (' . $subtitle . ')'; } } $params = array('title' => $title, 'content' => $content, 'filter_override' => $filter_override); elgg_set_ignore_access($access_status); return $params; }
function event_calendar_get_page_content_fullcalendar_events($start_date, $end_date, $filter = 'all', $container_guid = 0, $region = '-') { $start_ts = strtotime($start_date); $end_ts = strtotime($end_date); if ($filter == 'all') { $events = event_calendar_get_events_between($start_ts, $end_ts, false, 0, 0, $container_guid, $region); } else { if ($filter == 'open') { $events = event_calendar_get_open_events_between($start_ts, $end_ts, false, 0, 0, $container_guid, $region); } else { if ($filter == 'friends') { $user_guid = elgg_get_logged_in_user_guid(); $events = event_calendar_get_events_for_friends_between($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region); } else { if ($filter == 'mine') { $user_guid = elgg_get_logged_in_user_guid(); $events = event_calendar_get_events_for_user_between($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region); } } } } $event_array = array(); $times_supported = elgg_get_plugin_setting('times', 'event_calendar') != 'no'; $type_display = elgg_get_plugin_setting('type_display', 'event_calendar'); $polls_supported = elgg_is_active_plugin('event_poll'); foreach ($events as $e) { $event = $e['event']; $event_data = $e['data']; $c = count($event_data); foreach ($event_data as $ed) { $event_item = array('guid' => $event->guid, 'title' => $event->title, 'start' => date('c', $ed['start_time']), 'end' => date('c', $ed['end_time'])); if (!$times_supported || $event->schedule_type == 'all_day') { $event_item['allDay'] = true; } else { $event_item['allDay'] = false; } if ($type_display == 'yes' && $event->event_type) { $color = event_calendar_map_type_to_color($event->event_type); if ($color) { $event_item['backgroundColor'] = $color; $event_item['borderColor'] = $color; } } if ($polls_supported && isset($e['is_event_poll']) && $e['is_event_poll']) { $event_item['className'] = 'event-poll-class'; $event_item['title'] .= ' ' . elgg_echo('event_calendar:poll_suffix'); $event_item['is_event_poll'] = true; $event_item['url'] = elgg_get_site_url() . 'event_poll/vote/' . $event->guid; $event_item['minutes'] = $ed['minutes']; $event_item['iso_date'] = $ed['iso_date']; } else { $event_item['id'] = $event->guid; $event_item['is_event_poll'] = false; $event_item['url'] = elgg_get_site_url() . 'ajax/view/event_calendar/popup?guid=' . $event->guid; } // Allow other plugins to modify the data $params = array('entity' => $event); $event_item = elgg_trigger_plugin_hook('prepare', 'event_calendar:json', $params, $event_item); $event_array[] = $event_item; } } $json_events_string = json_encode($event_array); return $json_events_string; }