rsvp_manage

Definition

rsvp_manage($nid = NULL)
rsvp/rsvp.module, line 242

Description

  • Handles the rsvp manage requests.
*
  • *

Return value

themed rsvp manage response.

Related topics

Namesort iconDescription
core functions for rsvp.

Code

<?php
function rsvp_manage($nid = NULL) {

  $header = array(
    array('data' => t('Title'), 'field' => 'name', 'sort' => 'asc', 'width' => '30%'), 
    t('Invites'),
    t('Attending'),
    t('Not attending'),
    t('Might attend'),
    t('No response'),
    array('data' => t('Operations'), 'colspan' => 3),
  );

  if ($nid) {
    global $user;
    $node = node_load($nid);
    drupal_set_title($node->title);
    if (user_access('administer rsvp') || user_access('rsvp on events') || (user_access('rsvp on own events') && $node->uid == $user->uid)) {
      if ($node->event_end >= time()) {
        $content = l(t('Create RSVP'), 'node/'. $nid .'/rsvp/create');
      }
      else {
        $content = t('This event has expired, invitations can only be sent to events <br />that have not expired yet.');
      }
    }
  }
  else {
    $header = array_merge(array(array('data' => t('Event'), 'field' => 'title')), $header);
  }

  $rows = array();
  $rsvps = _rsvp_get_rsvps($nid, NULL, tablesort_sql($header));

  if (db_num_rows($rsvps)) {
    while ($rsvp = db_fetch_object($rsvps)) {
      $row = array();
      is_null($nid) ? $row[] = l($rsvp->title, 'node/'. $rsvp->nid, array('title' => 'View event')) : '';
      $row[] = l($rsvp->name, 'node/'. $rsvp->nid .'/rsvp/'. $rsvp->rid .'/view', array('title' => 'View RSVP'));
      // add statistics
      $row[] = db_num_rows(_rsvp_get_attendees($rsvp->rid));
      $row[] = db_num_rows(_rsvp_get_attendees($rsvp->rid, 'yes'));
      $row[] = db_num_rows(_rsvp_get_attendees($rsvp->rid, 'no'));
      $row[] = db_num_rows(_rsvp_get_attendees($rsvp->rid, 'maybe'));
      $row[] = db_num_rows(_rsvp_get_attendees($rsvp->rid, 'none'));
      $row[] = l(t('Edit'), 'node/'. $rsvp->nid .'/rsvp/'. $rsvp->rid .'/edit', array('title' => 'Edit RSVP'));
      $row[] = l(t('Invite'), 'node/'. $rsvp->nid .'/rsvp/'. $rsvp->rid .'/attendees', array('title' => 'Invite more people to attend your rsvp'));
      $row[] = l(t('Send a message'), 'node/'. $rsvp->nid .'/rsvp/'. $rsvp->rid .'/message', array('title' => 'Send people you invited a message'));
      $rows[] = $row;
    }
    $content .= theme('table', $header, $rows);
  }

  if (!$content) {
    // no RSVPs found for the requested user
    $content = t('You don\'t have any RSVPs.');
  }
  return $content;
}
?>