<?php $guid = get_input('guid'); $entity = get_entity($guid); $inviter = elgg_get_logged_in_user_entity(); $message = get_input('message'); if (!$entity instanceof Events\API\Event) { register_error(elgg_echo('events:rsvp:not_found')); forward(REFERRER); } if (!events_rsvp_can_invite($entity)) { register_error(elgg_echo('events:rsvp:permission_denied')); forward(REFERRER); } $invitee_guids = get_input('invitee_guids'); 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)) {
/** * Setup event title menu * * @param string $hook "profile_buttons" * @param string $type "object:event" * @param ElggMenuItem[] $return Menu * @param array $params Hook params * @return ElggMenuItem[] */ function events_rsvp_prepare_profile_buttons($hook, $type, $return, $params) { $event = elgg_extract('event', $params); $user = elgg_extract('user', $params, elgg_get_logged_in_user_entity()); // foreach ($return as $key => $item) { // if ($item instanceof ElggMenuItem && $item->getName() == 'add_to_calendar') { // unset($return[$key]); // } // } if (events_rsvp_can_rsvp($event, $user)) { $rsvp_options_values = array('' => elgg_echo('events:rsvp')); $rsvp_options = events_rsvp_options($event); foreach ($rsvp_options as $option) { $rsvp_options_values[$option] = elgg_echo("events:rsvp:{$option}"); } $select = elgg_view('input/select', array('class' => 'events-rsvp-select', 'data-endpoint' => elgg_http_add_url_query_elements(elgg_normalize_url('action/events/rsvp'), array('event_guid' => $event->guid, 'user_guid' => $user->guid)), 'value' => events_rsvp_user_status($event, $user), 'options_values' => $rsvp_options_values)); $select .= elgg_format_element('script', [], "require(['events/rsvp']);"); $return[] = ElggMenuItem::factory(array('name' => 'rsvp', 'text' => $select, 'href' => false, 'priority' => 50)); } if (events_rsvp_can_invite($event, $user)) { $return[] = ElggMenuItem::factory(array('name' => 'invite', 'text' => elgg_echo('events:rsvp:invite'), 'href' => "/calendar/events/invite/{$event->guid}", 'link_class' => 'elgg-button elgg-button-action')); } return $return; }