Пример #1
0
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++;
    }
Пример #2
0
/**
 * 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;
}