Index: signup.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.module,v
retrieving revision 1.205.2.27
diff -u -p -r1.205.2.27 signup.module
--- signup.module	10 Aug 2009 17:45:53 -0000	1.205.2.27
+++ signup.module	14 Aug 2009 21:58:08 -0000
@@ -173,13 +173,6 @@ function signup_theme() {
         'view' => NULL,
       ),
     ),
-    'signup_token_help' => array(
-      'file' => 'token_help.inc',
-      'path' => drupal_get_path('module', 'signup') .'/includes',
-      'arguments' => array(
-        'tokens' => NULL,
-      ),
-    ),
   );
 }
 
@@ -1209,6 +1202,7 @@ function signup_sign_up_user($signup_for
     $signup = $user;
     $signup->form_data = $signup_info;
     $signup->sid = $sid;
+    $signup->signup_time = $curtime;
     if (!empty($signup_anon_mail)) {
       $signup->anon_mail = $signup_anon_mail;
     }
@@ -1272,7 +1266,7 @@ function signup_send_confirmation_mail($
     'signup' => $signup,
   );
   if (module_exists('token')) {
-    $params['body'] = token_replace($params['body'], 'node', $node);
+    $params['body'] = token_replace_multiple($params['body'], array('node' => $node, 'signup' => $signup, 'global' => NULL));
   }
   $language = user_preferred_language($signup);
   return  drupal_mail('signup', 'signup_confirmation_mail', $user_mail, $language, $params);
@@ -1329,7 +1323,7 @@ function signup_send_forwarding_mail($si
     'header' => array('From' => t('New !node_type Signup', array('!node_type' => $node_type_name)) ."<$from>"),
   );
   if (module_exists('token')) {
-    $params['body'] = token_replace($params['body'], 'node', $node);
+    $params['body'] = token_replace_multiple($params['body'], array('node' => $node, 'signup' => $signup, 'global' => NULL));
   }
   $language = user_preferred_language($signup);
   return drupal_mail('signup', 'signup_forwarding_mail', $node->signup_forwarding_email, $language, $params, $from);
@@ -1626,3 +1620,67 @@ function signup_view_user_list_access($v
   return $user->uid == $view->argument[$argument_name]->get_value();
 }
 
+/**
+ * Implement hook_token_list() (from token.module)
+ */
+function signup_token_list($type) {
+  $tokens = array();
+  if ($type == 'node') {
+    $tokens['node'] = array(
+      'node_signup_enabled' => t('True/False for if signups are enabled on a node'),
+      'node_signup_status' => t("Are signups 'open' or 'closed' for this node."),
+      'node_signup_limit' => t('The signup limit for this node'),
+    );
+  }
+  elseif ($type == 'signup') {
+    $tokens['signup'] = array(
+      'signup_user_data' => t('Any custom fields the user filled out when signing up.'),
+      'signup_date_short' => t('The date/time when the user signed up, short date format.'),
+      'signup_date_medium' => t('The date/time when the user signed up, medium date format.'),
+      'signup_date_long' => t('The date/time when the user signed up, long date format.'),
+      'signup_cancel_url' => t('The URL for a user to cancel their signup (if they have permission to do so).'),
+      'signup_email' => t('The e-mail address for the signup (either anonymous or authenticated).'),
+      'signup_anonymous_email' => t('The e-mail addressed entered for an anonymous signup, or an empty string if an authenticated user signed up.'),
+    );
+  }
+  return $tokens;
+}
+
+/**
+ * Implement hook_token_values() (from token.module)
+ */
+function signup_token_values($type = 'all', $object = NULL) {
+  $values = array();
+  if ($type == 'node') {
+    if (empty($object->signup)) {
+      $values['node_signup_enabled'] = t('disabled');
+      $values['node_signup_status'] = '';
+      $values['node_signup_limit'] = '';
+    }
+    else {
+      $values['node_signup_enabled'] = t('enabled');
+      $values['node_signup_status'] = $object->signup_status ? t('open') : t('closed');
+      $values['node_signup_limit'] = $object->signup_close_signup_limit;
+    }
+  }
+  elseif ($type == 'signup') {
+    $signup_data = array();
+    if (!empty($object->form_data)) {
+      if (is_array($object->form_data)) {
+        $signup_data = $object->form_data;
+      }
+      else {
+        $signup_data = unserialize($object->form_data);
+      }
+    }
+    $values['signup_user_data'] = theme('signup_email_token_custom_data', $signup_data);
+    $values['signup_date_short'] = format_date($object->signup_time, 'small');
+    $values['signup_date_medium'] = format_date($object->signup_time, 'medium');
+    $values['signup_date_long'] = format_date($object->signup_time, 'large');
+'';
+    $values['signup_cancel_url'] = _signup_get_cancel_link($object->sid);
+    $values['signup_email'] = !empty($object->anon_mail) ? $object->anon_mail : $object->mail;
+    $values['signup_anonymous_email'] = !empty($object->anon_mail) ? $object->anon_mail : '';
+  }
+  return $values;
+}
cvs diff: Diffing includes
Index: includes/broadcast.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/broadcast.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 broadcast.inc
--- includes/broadcast.inc	19 Jan 2009 16:45:24 -0000	1.1.2.2
+++ includes/broadcast.inc	14 Aug 2009 21:58:08 -0000
@@ -153,7 +153,7 @@ function signup_send_broadcast($nid, $su
         'signup' => $signup,
       );
       if (module_exists('token')) {
-        $params['body'] = token_replace($params['body'], 'node', $node);
+        $params['body'] = token_replace_multiple($params['body'], array('node' => $node, 'signup' => $signup, 'global' => NULL));
       }
       $language = user_preferred_language($signup);
       drupal_mail('signup', 'signup_broadcast_mail', $user_mail, $language, $params, $from);
@@ -165,7 +165,7 @@ function signup_send_broadcast($nid, $su
       $message = strtr($body, $signup_tokens);
       if (module_exists('token')) {
         // If the token.module is enabled, also handle any tokens it provides.
-        $message = token_replace($message, 'node', $node);
+        $message = token_replace_multiple($message, array('node' => $node, 'signup' => $signup, 'global' => NULL));
       }
       $final_text = theme('signup_broadcast_sender_copy', $body, $message);
       $params = array(
Index: includes/cron.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/cron.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 cron.inc
--- includes/cron.inc	20 Dec 2008 04:28:56 -0000	1.1.2.1
+++ includes/cron.inc	14 Aug 2009 21:58:08 -0000
@@ -62,7 +62,7 @@ function _signup_cron_send_reminders() {
           'signup' => $signup,
         );
         if (module_exists('token')) {
-          $params['body'] = token_replace($params['body'], 'node', node_load($node->nid));
+          $params['body'] = token_replace_multiple($params['body'], array('node' => node_load($node->nid), 'signup' => $signup, 'global' => NULL));
         }
         $language = user_preferred_language($signup);
         drupal_mail('signup', 'signup_reminder_mail', $user_mail, $language, $params, $from);
Index: includes/token_help.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/token_help.inc,v
retrieving revision 1.1
diff -u -p -r1.1 token_help.inc
--- includes/token_help.inc	15 Nov 2008 02:03:50 -0000	1.1
+++ includes/token_help.inc	14 Aug 2009 21:58:08 -0000
@@ -35,33 +35,7 @@ function _signup_token_help(&$form, $ele
 function _signup_build_token_help() {
   static $help_html = '';
   if (empty($help_html)) {
-    $patterns = token_get_list('node');
-    foreach ($patterns as $type => $pattern_set) {
-      foreach ($pattern_set as $pattern => $description) {
-        $tokens[$pattern] = $description;
-      }
-    }
-    $help_html = theme('signup_token_help', $tokens);
+    $help_html = theme('token_help', array('signup', 'node', 'global'));
   }
   return $help_html;
 }
-
-/**
- * theme_signup_token_help()
- *
- * @param $tokens
- *   An array of token patterns mapping to their description
- *
- * @return The themed representation of the tokens.
- */
-function theme_signup_token_help($tokens) {
-  $tokens_html = "<dl>\n";
-  foreach ($tokens as $name => $description) {
-    $tokens_html .= '<dt>['. $name .']</dt>';
-    $tokens_html .= '<dd>'. $description ."</dd>\n";
-  }
-  $tokens_html .= "</dl>\n";
-
-  return $tokens_html;
-}
-
