Index: signup.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.module,v
retrieving revision 1.168.2.16
diff -u -p -r1.168.2.16 signup.module
--- signup.module	10 Nov 2008 16:04:26 -0000	1.168.2.16
+++ signup.module	11 Nov 2008 23:15:40 -0000
@@ -432,13 +432,14 @@ function signup_alter_node_form($form_id
   else {
     $node = NULL;
   }
+  $node_type = $form['type']['#value'];
 
-  $signup_type_default = variable_get('signup_node_default_state_'. $form['type']['#value'], 'disabled');
+  $signup_type_default = variable_get('signup_node_default_state_'. $node_type, 'disabled');
   if (!empty($node)) {
     $node_scheduler = _signup_get_node_scheduler($node);
   }
   else {
-    $node_scheduler = _signup_get_node_type_scheduler($form['type']['#value']);
+    $node_scheduler = _signup_get_node_type_scheduler($node_type);
   }
   $node_has_date = $node_scheduler != 'none';
 
@@ -484,7 +485,7 @@ function signup_alter_node_form($form_id
       $default_option = $signup_type_default == 'enabled_on' ? 1 : 0;
     }
     if ($default_option == 1) {
-      $hint = t('If enabled, you can control whether users may sign up by visiting the !signups tab and toggling if signups are %open or %closed for this @node_type.', array('!signups' => !empty($node) ? l(t('Signups'), 'node/'. $node->nid .'/signups') : theme('placeholder', t('Signups')), '%open' => t('open'), '%closed' => t('closed'), '@node_type' => drupal_strtolower(node_get_types('name', $form['type']['#value']))));
+      $hint = t('If enabled, you can control whether users may sign up by visiting the !signups tab and toggling if signups are %open or %closed for this @node_type.', array('!signups' => !empty($node) ? l(t('Signups'), 'node/'. $node->nid .'/signups') : theme('placeholder', t('Signups')), '%open' => t('open'), '%closed' => t('closed'), '@node_type' => drupal_strtolower(node_get_types('name', $node_type))));
     }
     else {
       $hint = '';
@@ -514,7 +515,7 @@ function signup_alter_node_form($form_id
       '#prefix' => '<div class="'. $settings_class .'">',
       '#suffix' => '</div>',
     );
-    $form['signup']['node_settings']['settings'] = _signup_admin_form($node, $node_has_date);
+    $form['signup']['node_settings']['settings'] = signup_node_settings_form($node, $node_type, $node_has_date);
   }
 }
 
@@ -1469,7 +1470,7 @@ function signup_settings_page() {
     '#description' => t('New signup-enabled nodes will start with these settings.'),
     '#collapsible' => TRUE,
   );
-  $form['node_defaults']['_signup_admin_form'] = _signup_admin_form(NULL, signup_site_has_dates());
+  $form['node_defaults']['signup_node_settings_form'] = signup_node_settings_form(NULL, NULL, signup_site_has_dates());
 
   $form['adv_settings'] = array(
     '#type' => 'fieldset',
@@ -1668,7 +1669,7 @@ function signup_settings_page_submit($fo
   foreach ($settings as $setting) {
     unset($form_values[$setting]);
   }
-  // Remove the hidden element from _signup_admin_form(), too.
+  // Remove the hidden element from signup_node_settings_form(), too.
   unset($form_values['signup']);
 
   // Finally, let system_settings_form_submit() do its magic with the
@@ -2141,6 +2142,9 @@ function signup_validate_anon_email($nid
  *
  * @param $node
  *   The fully loaded node object if we've got it.
+ * @param $node_type
+ *   The type of the node.  When creating new content, the caller can know the
+ *   node type, even if $node is NULL.
  * @param $has_date
  *   Boolean flag indicating if this node (or site) has signup-aware
  *   date functionality, which is required for reminder emails to be in
@@ -2151,7 +2155,7 @@ function signup_validate_anon_email($nid
  *
  * @ingroup signup_internal
  */
-function _signup_admin_form($node = NULL, $has_date = FALSE) {
+function signup_node_settings_form($node = NULL, $node_type = NULL, $has_date = FALSE) {
   if (module_exists('token')) {
     $signup_token_description = t('Supported string substitutions: %node_title, %node_url, %node_start_time, %user_name, %user_mail, %user_signup_info (additional information from the signup form), and any tokens in the %replacement_tokens list.', array('%replacement_tokens' => t('Replacement tokens')));
   }
@@ -2210,19 +2214,19 @@ function _signup_admin_form($node = NULL
     for ($i = 1; $i <= 60; $i++) {
       $options[$i] = $i;
     }
-    $node_type_name = node_get_types('name', $node->type);
+    $node_type_name = isset($node_type) ? node_get_types('name', $node_type) : '';
     $form['signup_reminder']['signup_reminder_days_before'] = array(
       '#type' => 'select',
       '#default_value' => $node->signup_reminder_days_before,
       '#options' => $options,
-      '#suffix' => t('day(s) before %node_type', array('%node_type' => $node_type_name)),
+      '#suffix' => !empty($node_type_name) ? t('day(s) before %node_type', array('%node_type' => $node_type_name)) : t('day(s) before start time'),
     );
     $form['signup_reminder_email'] = array(
       '#type' => 'textarea',
       '#title' => t('Reminder email'),
       '#default_value' => $node->signup_reminder_email,
       '#cols' => 40, '#rows' => 6,
-      '#description' => t('Email sent to user as a reminder before the %node_type starts. !token_description', array('%node_type' => $node_type_name, '!token_description' => $signup_token_description)),
+      '#description' => !empty($node_type_name) ? t('Email sent to user as a reminder before the %node_type starts. !token_description', array('%node_type' => $node_type_name, '!token_description' => $signup_token_description)) : t('Email sent to user as a reminder before the start time. !token_description', array('!token_description' => $signup_token_description)),
     );
     if (module_exists('token')) {
       _signup_token_help($form, 'signup_reminder_token_fieldset');
