Index: signup.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.install,v retrieving revision 1.24.2.3 diff -u -p -r1.24.2.3 signup.install --- signup.install 27 Dec 2008 00:40:30 -0000 1.24.2.3 +++ signup.install 13 Feb 2009 17:00:47 -0000 @@ -37,16 +37,15 @@ function signup_schema() { ), 'send_reminder' => array( 'description' => t('Boolean indicating whether reminder emails should be sent. This is set to 0 once the reminders are sent.'), - 'type' => 'int', + 'type' => 'text', + 'size' => 'big', 'not null' => TRUE, - 'default' => 0, ), 'reminder_days_before' => array( 'description' => t('Number of days before the start of a time-based node when the reminder emails should be sent.'), - 'type' => 'int', - 'unsigned' => TRUE, + 'type' => 'text', + 'size' => 'big', 'not null' => TRUE, - 'default' => 0, ), 'reminder_email' => array( 'description' => t('Email template to send to users to remind them about a signup.'), Index: signup.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.module,v retrieving revision 1.205.2.15 diff -u -p -r1.205.2.15 signup.module --- signup.module 25 Jan 2009 03:10:58 -0000 1.205.2.15 +++ signup.module 13 Feb 2009 17:00:47 -0000 @@ -733,9 +733,12 @@ function signup_nodeapi(&$node, $op, $te $node->signup_forwarding_email = $signup->forwarding_email; $node->signup_send_confirmation = $signup->send_confirmation; $node->signup_confirmation_email = $signup->confirmation_email; - $node->signup_send_reminder = $signup->send_reminder ; - $node->signup_reminder_days_before = $signup->reminder_days_before; - $node->signup_reminder_email = $signup->reminder_email; + $node->signup_send_reminder = array(); + $node->signup_send_reminder = unserialize($signup->send_reminder); + $node->signup_reminder_days_before = array(); + $node->signup_reminder_days_before = unserialize($signup->reminder_days_before); + $node->signup_reminder_email = array(); + $node->signup_reminder_email = unserialize($signup->reminder_email); $node->signup_close_signup_limit = $signup->close_signup_limit; $node->signup_status = $signup->status; if ($node->nid) { Index: includes/admin.settings.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/admin.settings.inc,v retrieving revision 1.2.2.5 diff -u -p -r1.2.2.5 admin.settings.inc --- includes/admin.settings.inc 24 Jan 2009 08:52:46 -0000 1.2.2.5 +++ includes/admin.settings.inc 13 Feb 2009 17:00:48 -0000 @@ -21,6 +21,14 @@ function signup_settings_form() { '#description' => t('The number of hours before the event which signups will no longer be allowed. Use negative numbers to close signups after the event start (example: -12).'), ); }; + // Set number of reminders. + $form['signup_reminder_number'] = array( + '#title' => t('Number of allowed reminders'), + '#type' => 'textfield', + '#default_value' => variable_get('signup_reminder_number', 1), + '#size' => 5, '#maxlength' => 10, + '#description' => t('The number of allowed email reminders, which will appear below (for filling defaults) and on the signup-enabled node edit form. Use 0 to disable this feature.'), + ); $form['node_defaults'] = array( '#type' => 'fieldset', '#title' => t('Default signup information'), @@ -205,9 +213,18 @@ function signup_settings_form_submit($fo $form_state['values']['signup_confirmation_email'], $form_state['values']['signup_close_signup_limit'], ); - $values[] = isset($form_state['values']['signup_send_reminder']) ? $form_state['values']['signup_send_reminder'] : 0; - $values[] = isset($form_state['values']['signup_reminder_days_before']) ? $form_state['values']['signup_reminder_days_before'] : 0; - $values[] = isset($form_state['values']['signup_reminder_email']) ? $form_state['values']['signup_reminder_email'] : ''; + // Add number of reminders from the configs above. + $reminder_number = variable_get('signup_reminder_number', 1); + // Now add data from multiple reminder form elements as an array. + for ($r = 1; $r <= $reminder_number; $r++) { + $signup_send_reminder_values[] = isset($form_state['values']['signup_send_reminder' . $r]) ? $form_state['values']['signup_send_reminder' . $r] : 0; + $signup_reminder_days_before_values[] = isset($form_state['values']['signup_reminder_days_before' . $r]) ? $form_state['values']['signup_reminder_days_before' . $r] : 0; + $signup_reminder_email_values[] = isset($form_state['values']['signup_reminder_email' . $r]) ? $form_state['values']['signup_reminder_email' . $r] : ''; + } + // Serialize reminder data. + $values[] = serialize($signup_send_reminder_values); + $values[] = serialize($signup_reminder_days_before_values); + $values[] = serialize($signup_reminder_email_values); $values[] = 0; // "nid" of the row in {signup} for the global settings. db_query("UPDATE {signup} SET forwarding_email = '%s', send_confirmation = %d, confirmation_email = '%s', close_signup_limit = %d, send_reminder = %d, reminder_days_before = %d, reminder_email = '%s' WHERE nid = %d", $values); } Index: includes/node_form.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/node_form.inc,v retrieving revision 1.4.2.1 diff -u -p -r1.4.2.1 node_form.inc --- includes/node_form.inc 8 Jan 2009 19:36:27 -0000 1.4.2.1 +++ includes/node_form.inc 13 Feb 2009 17:00:48 -0000 @@ -45,9 +45,18 @@ function signup_save_node($node, $op) { // If we're dealing with a node that doesn't have a start time, these // fields are missing from the signup settings form, so we can't assume // they're defined. - $values[] = isset($node->signup_send_reminder) ? $node->signup_send_reminder : 0; - $values[] = isset($node->signup_reminder_days_before) ? $node->signup_reminder_days_before : 0; - $values[] = isset($node->signup_reminder_email) ? $node->signup_reminder_email : ''; + // Add number of reminders from configs. + $reminder_number = variable_get('signup_reminder_number', 1); + // Now add data from multiple reminder form elements as an array. + for ($r = 1; $r <= $reminder_number; $r++) { + $signup_send_reminder_values[] = isset($node->signup_send_reminder[$r -1]) ? $node->signup_send_reminder[$r -1] : 0; + $signup_reminder_days_before_values[] = isset($node->signup_reminder_days_before[$r -1]) ? $node->signup_reminder_days_before[$r -1] : '9'; + $signup_reminder_email_values[] = isset($node->signup_reminder_email[$r -1]) ? $node->signup_reminder_email[$r -1] : 'TEST'; + } + // Serialize reminder data. + $values[] = serialize($signup_send_reminder_values); + $values[] = serialize($signup_reminder_days_before_values); + $values[] = serialize($signup_reminder_email_values); } } elseif ($op == 'insert' && variable_get('signup_node_default_state_'. $node->type, 'disabled') == 'enabled_on') { Index: includes/node_settings.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/node_settings.inc,v retrieving revision 1.1.2.1 diff -u -p -r1.1.2.1 node_settings.inc --- includes/node_settings.inc 20 Dec 2008 04:28:56 -0000 1.1.2.1 +++ includes/node_settings.inc 13 Feb 2009 17:00:48 -0000 @@ -40,11 +40,18 @@ function signup_node_settings_form($form $node->signup_forwarding_email = $result->forwarding_email; $node->signup_send_confirmation = $result->send_confirmation; $node->signup_confirmation_email = $result->confirmation_email; - $node->signup_send_reminder = $result->send_reminder; - $node->signup_reminder_days_before = $result->reminder_days_before; - $node->signup_reminder_email = $result->reminder_email; + $node->signup_send_reminder = array(); + $node->signup_send_reminder = unserialize($result->send_reminder); + $node->signup_reminder_days_before = array(); + $node->signup_reminder_days_before = unserialize($result->reminder_days_before); + $node->signup_reminder_email = array(); + $node->signup_reminder_email = unserialize($result->reminder_email); $node->signup_close_signup_limit = $result->close_signup_limit; } + // Debug + drupal_set_message('
' . print_r($node->signup_send_reminder, TRUE) . ''); + drupal_set_message('
' . print_r($node->signup_reminder_days_before, TRUE) . ''); + drupal_set_message('
' . print_r($node->signup_reminder_email, TRUE) . ''); $form['signup_forwarding_email'] = array( '#type' => 'textfield', @@ -71,35 +78,46 @@ function signup_node_settings_form($form } if ($has_date) { - // Define a sub-tree to wrap the next 2 form elements together in an - // inline div for better display. - $form['signup_reminder'] = array( - '#prefix' => '