<?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;
}