You are here

function signup_user_list_output in Signup 6.2

Same name and namespace in other branches
  1. 6 includes/node_output.inc \signup_user_list_output()
  2. 7 includes/node_output.inc \signup_user_list_output()

Helper function to generate the list of users signed up for a node.

1 call to signup_user_list_output()
signup_nodeapi in ./signup.module
Implementation of hook_nodeapi().
1 string reference to 'signup_user_list_output'
signup_menu in ./signup.module
Implementation of hook_menu().

File

includes/node_output.inc, line 113
Code used to generate singup-related output when viewing nodes.

Code

function signup_user_list_output($node) {
  $output = '';

  // How should the list of signed-up users be displayed, if at all?
  $display_list = variable_get('signup_display_signup_user_list', 'signup');

  // Ensure the user has permission to view the signup list for this node.
  if (_signup_menu_access($node, 'list')) {
    if ($display_list == 'signup' || $display_list == 'signup-tab') {

      // Admin wants the hard-coded signup listing.
      $registered_query = db_query("SELECT u.uid, u.name, s.signup_time, s.form_data FROM {signup_log} s INNER JOIN {users} u ON u.uid = s.uid WHERE s.nid = %d AND u.uid <> 0", $node->nid);
      $registered_signups = array();
      while ($signed_up_user = db_fetch_object($registered_query)) {
        $registered_signups[] = $signed_up_user;
      }
      $anon_query = db_query("SELECT * FROM {signup_log} WHERE nid = %d AND uid = 0", $node->nid);
      $anon_signups = array();
      while ($signed_up_user = db_fetch_object($anon_query)) {
        $anon_signups[] = $signed_up_user;
      }
      $output .= theme('signup_user_list', $node, $registered_signups, $anon_signups);
    }
    elseif (($display_list == 'embed-view' || $display_list == 'embed-view-tab') && module_exists('views')) {
      $signup_view = variable_get('signup_user_list_view', 'signup_user_list:default');
      $signup_view_parts = explode(':', $signup_view);
      $view_name = $signup_view_parts[0];
      $view_display = $signup_view_parts[1];
      $view = views_get_view($view_name);
      if ($display_list == 'embed-view-tab') {
        $view->override_path = 'node/%/signups/list';
      }
      else {
        $view->override_path = 'node/%';
      }
      $view_args = array(
        $node->nid,
      );
      $output .= $view
        ->preview($view_display, $view_args);
    }

    // Otherwise, they're on their own, and either don't want it displayed at
    // all, or they want to handle where/how it's displayed via views.
  }
  return $output;
}