Example #1
0
function event_calendar_handle_join($event, $object_type, $object)
{
    elgg_load_library('elgg:event_calendar');
    $group = $object['group'];
    $user = $object['user'];
    $user_guid = $user->getGUID();
    $events = event_calendar_get_events_for_group($group->getGUID());
    foreach ($events as $event) {
        $event_id = $event->getGUID();
        event_calendar_add_personal_event($event_id, $user_guid);
    }
}
Example #2
0
// start a new sticky form session in case of failure
elgg_make_sticky_form('event_calendar');
$event_guid = get_input('event_guid', 0);
$group_guid = get_input('group_guid', 0);
$event = event_calendar_set_event_from_form($event_guid, $group_guid);
if ($event) {
    // remove sticky form entries
    elgg_clear_sticky_form('event_calendar');
    $user_guid = elgg_get_logged_in_user_guid();
    if ($event_guid) {
        add_to_river('river/object/event_calendar/update', 'update', $user_guid, $event_guid);
        system_message(elgg_echo('event_calendar:manage_event_response'));
    } else {
        $event_calendar_autopersonal = elgg_get_plugin_setting('autopersonal', 'event_calendar');
        if (!$event_calendar_autopersonal || $event_calendar_autopersonal == 'yes') {
            event_calendar_add_personal_event($event->guid, $user_guid);
        }
        add_to_river('river/object/event_calendar/create', 'create', $user_guid, $event->guid);
        system_message(elgg_echo('event_calendar:add_event_response'));
    }
    forward($event->getURL());
} else {
    // redisplay form with error message
    register_error(elgg_echo('event_calendar:manage_event_error'));
    if ($event_guid) {
        forward('event_calendar/edit/' . $event_guid);
    } else {
        if ($group_guid) {
            forward('event_calendar/add/' . $group_guid);
        } else {
            forward('event_calendar/add/');
Example #3
0
<?php

elgg_load_library('elgg:event_calendar');
$event_guid = get_input("event_guid", 0);
$event = get_entity($event_guid);
$group = get_entity($event->container_guid);
if (elgg_instanceof($group, 'group') && elgg_instanceof($event, 'object', 'event_calendar') && $group->canEdit()) {
    $members = $group->getMembers(0, 0);
    foreach ($members as $member) {
        event_calendar_add_personal_event($event->guid, $member->guid);
    }
    system_message(elgg_echo('event_calendar:add_to_group_members:success'));
} else {
    register_error(elgg_echo('event_calendar:add_to_group_members:error'));
}
forward("event_calendar/manage_users/{$event_guid}");
function sched_conf_set_event_from_form($conf_guid = 0, $group_guid = 0)
{
    // TODO - save conf, create associated event and add the current user to the event
    $fields = array('title', 'description', 'application', 'immediate', 'start_date', 'tags', 'access_id', 'group_guid');
    $user_guid = elgg_get_logged_in_user_guid();
    $required_fields = array('title', 'application');
    if ($conf_guid) {
        $conf = get_entity($conf_guid);
        if (!elgg_instanceof($conf, 'object', 'conference')) {
            // do nothing because this is a bad conference guid
            return FALSE;
        }
    } else {
        $conf = new ElggObject();
        $conf->subtype = 'conference';
        $conf->owner_guid = $user_guid;
        if ($group_guid) {
            $conf->container_guid = $group_guid;
        } else {
            $conf->container_guid = $user_guid;
        }
    }
    $missing_fields = FALSE;
    foreach ($fields as $fn) {
        $value = trim(get_input($fn, ''));
        if ($value === '' && in_array($fn, $required_fields)) {
            $missing_fields = TRUE;
            break;
        }
        $conf->{$fn} = $value;
    }
    if (!$missing_fields) {
        $sh = get_input('start_time_h', '');
        $sm = get_input('start_time_m', '');
        if (is_numeric($sh) && is_numeric($sm)) {
            // workaround for pulldown zero value bug
            $sh--;
            $sm--;
            $conf->start_time = $sh * 60 + $sm;
        } else {
            $conf->start_time = '';
        }
        if (is_numeric($conf->start_time)) {
            // Set start date to the Unix start time, if set.
            // This allows sorting by date *and* time.
            $conf->start_date += $conf->start_time * 60;
        }
        if ($conf->immediate === '' && (!$conf->start_date || !$conf->start_time)) {
            $missing_fields = TRUE;
        }
    }
    // handle the immediate case
    // set start date and start time to now
    if ($conf->immediate !== '') {
        $conf->start_date = time();
        $today = date('Y-m-d', $conf->start_date);
        $midnight = strtotime($today);
        $conf->start_time = (int) (($conf->start_date - $midnight) / (60 * 5)) * 5;
    }
    if (!$missing_fields && $conf->save()) {
        if ($conf_guid) {
            $event = sched_conf_get_event_for_conference($conf_guid);
            sched_conf_sync_event_for_conference($conf, $event);
        } else {
            $event = sched_conf_sync_event_for_conference($conf);
            add_entity_relationship($conf->guid, 'conference_has_event', $event->guid);
            if (elgg_plugin_exists('event_calendar')) {
                elgg_load_library('elgg:event_calendar');
                event_calendar_add_personal_event($event->guid, $user_guid);
            }
        }
        return $conf;
    }
    return FALSE;
}
Example #5
0
function event_calendar_add_personal_events_from_group($event_guid, $group_guid)
{
    $members = get_group_members($group_guid, 100000);
    foreach ($members as $member) {
        $member_id = $member->getGUID();
        event_calendar_add_personal_event($event_guid, $member_id);
    }
}
Example #6
0
function event_calendar_add_personal_events_from_group($event_guid, $group_guid)
{
    $group = get_entity($group_guid);
    $members = $group->getMembers(array('limit' => false));
    foreach ($members as $member) {
        event_calendar_add_personal_event($event_guid, $member->guid);
    }
}