Ejemplo n.º 1
0
elgg_load_library('elgg:event_calendar');
elgg_load_library('event_calendar:ical');
$filter = get_input('filter', 'mine');
$container_guid = get_input('container_guid', 0);
$region = get_input('region');
$start_date = get_input('start_date', date('Y-n-j'));
$end_date = get_input('end_date', date('Y-n-j'));
$start_ts = strtotime($start_date . " " . date_default_timezone_get());
$end_ts = strtotime($end_date . " " . date_default_timezone_get()) + 60 * 60 * 24 - 1;
$user_guid = elgg_get_logged_in_user_guid();
switch ($filter) {
    case 'mine':
        $events = event_calendar_get_events_for_user_between($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region);
        break;
    case 'friends':
        $events = event_calendar_get_events_for_friends_between($start_ts, $end_ts, false, 0, 0, $user_guid, $container_guid, $region);
        break;
    case 'site':
        $container_guid = 0;
    case 'all':
        $events = event_calendar_get_events_between($start_ts, $end_ts, false, 0, 0, $container_guid, $region);
        break;
    default:
        // see if we're exporting just a single event
        $events = false;
        $event = get_entity($filter);
        if (elgg_instanceof($event, 'object', 'event_calendar')) {
            $events = array(array('event' => $event));
        }
        break;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}