Example #1
0
/**
 * 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;
}
Example #2
0
<?php

$entity = elgg_extract('entity', $vars);
if (!$entity instanceof \Events\API\Event) {
    return;
}
$filter_context = elgg_extract('filter_context', $vars, 'attending');
$rsvp_options = events_rsvp_options($entity);
$rsvp_options[] = 'invited';
$tabs = array();
foreach ($rsvp_options as $option) {
    $tabs[] = array('name' => $option, 'text' => elgg_echo("events:rsvp:list:{$option}"), 'href' => "/calendar/events/rsvps/{$entity->guid}/{$option}", 'selected' => $option == $filter_context);
}
foreach ($tabs as $tab) {
    elgg_register_menu_item('filter', $tab);
}
echo elgg_view_menu('filter', array('entity' => $entity, 'sort_by' => 'priority'));
<?php

$event_guid = get_input('event_guid');
$user_guid = get_input('user_guid');
$event = get_entity($event_guid);
$user = get_entity($user_guid);
if (!$user || !$event instanceof \Events\API\Event) {
    register_error(elgg_echo('events:rsvp:not_found'));
    forward(REFERRER, '404');
}
if (!$event->canEdit()) {
    register_error(elgg_echo('events:rsvp:permission_denied'));
    forward(REFERRER, '403');
}
$options = events_rsvp_options();
foreach ($options as $option) {
    remove_entity_relationship($user->guid, $option, $event->guid);
}
remove_entity_relationship($event->guid, 'access_grant', $user->guid);
$calendar = \Events\API\Calendar::getPublicCalendar($user);
$calendar->removeEvent($event);
system_message(elgg_echo('events:rsvp:remove:success'));