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); } }
// 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/');
<?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; }
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); } }
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); } }