if ($invitee_guids && !is_array($invitee_guids)) { $invitee_guids = string_to_tag_array($invitee_guids); } $error = 0; $skipped = 0; $invited = 0; foreach ($invitee_guids as $invitee_guid) { $invitee = get_entity($invitee_guid); if (!$invitee) { $error++; } if (check_entity_relationship($entity->guid, 'invited', $invitee->guid)) { // already invited $skipped++; } if (events_rsvp_user_status($entity, $invitee)) { // already RSVP'ed $skipped++; } add_entity_relationship($entity->guid, 'invited', $invitee->guid); add_entity_relationship($entity->guid, 'access_grant', $invitee->guid); $notification_params = array('inviter' => elgg_view('output/url', array('text' => $inviter->getDisplayName(), 'href' => $inviter->getURL())), 'event' => elgg_view('output/url', array('text' => $entity->getDisplayName(), 'href' => $entity->getURL())), 'date' => elgg_view('output/events_ui/date_range', array('user' => $invitee, 'start' => $entity->start_timestamp, 'end' => $entity->end_timestamp, 'timezone' => $entity->timezone)), 'message' => $message ? elgg_echo('events:rsvp:invite:notify:message', array($message), $invitee->language) : '', 'url' => $entity->getURL()); $subject = elgg_echo('events:rsvp:invite:notify:subject', array($entity->getDisplayName()), $invitee->language); $body = elgg_echo('events:rsvp:invite:notify:body', $notification_params, $invitee->language); $params = ['action' => 'invite', 'object' => $entity]; $result = notify_user($invitee->guid, $inviter->guid, $subject, $body, $params); if ($result) { $invited++; } else { $error++; }
/** * Setup event user menu * * @param string $hook "register" * @param string $type "menu:event:user" * @param ElggMenuItem[] $return Menu * @param array $params Hook params * @return array */ function events_rsvp_setup_event_user_menu($hook, $type, $return, $params) { $event = elgg_extract('event', $params); $user = elgg_extract('user', $params); if (!$event instanceof Event || !$user instanceof ElggUser) { return; } if (!$event->canEdit()) { return; } if (events_rsvp_user_status($event, $user)) { $return[] = ElggMenuItem::factory(array('name' => 'rsvp:remove', 'text' => elgg_echo('events:rsvp:remove'), 'href' => elgg_http_add_url_query_elements(elgg_normalize_url('/action/events/rsvp_remove'), array('user_guid' => $user->guid, 'event_guid' => $event->guid)), 'confirm' => elgg_echo('events:rsvp:remove:confirm'), 'link_class' => 'elgg-button elgg-button-delete', 'item_class' => 'elgg-menu-item-delete')); } if (check_entity_relationship($event->guid, 'invited', $user->guid)) { $return[] = ElggMenuItem::factory(array('name' => 'rsvp:uninvite', 'text' => elgg_echo('events:rsvp:uninvite'), 'href' => elgg_http_add_url_query_elements(elgg_normalize_url('/action/events/uninvite'), array('user_guid' => $user->guid, 'event_guid' => $event->guid)), 'confirm' => elgg_echo('events:rsvp:uninvite:confirm'), 'link_class' => 'elgg-button elgg-button-delete', 'item_class' => 'elgg-menu-item-delete')); } return $return; }