Index: simplenews.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/simplenews/simplenews.module,v retrieving revision 1.43 diff -u -F^f -r1.43 simplenews.module --- simplenews.module 31 Mar 2006 16:54:34 -0000 1.43 +++ simplenews.module 7 Apr 2006 00:03:48 -0000 @@ -445,8 +445,9 @@ function simplenews_user($op, &$edit, &$ } break; case 'form': - if ($category == 'newsletter' && user_access('subscribe to newsletters')) { - $form['newsletters'] = _simplenews_subscription_manager($account); + case 'register': + if (($category == 'newsletter' || ($op == 'register' && variable_get('simplenews_registration', FALSE))) && user_access('subscribe to newsletters')) { + $form['newsletters'] = _simplenews_subscription_manager($account ? $account : new StdClass()); $form['newsletters']['#title'] = t('Current newsletter subscriptions'); $form['newsletters']['sn_email'] = array( '#type' => 'hidden', @@ -653,7 +654,7 @@ function simplenews_subscription_manager if (user_access('subscribe to newsletters')) { global $user; if ($user->uid == 0) { - return _simplenews_subscription_manager(); + return drupal_get_form('_simplenews_subscription_manager', _simplenews_subscription_manager()); } else { drupal_goto('user/'.$user->uid.'/edit/newsletter'); @@ -686,6 +687,10 @@ function _simplenews_subscription_manage } elseif ($_POST['sn_update'] || $edit['sn_update']) { if ($tree) { + if (isset($edit['mail'])) { + // The user registration form has mail, but sn_email is blank. + $edit['sn_email'] = $edit['mail']; + } foreach ($tree as $newsletter) { if ($edit['sn_'.$newsletter->tid] == 1) { simplenews_process_subscription($newsletter->tid, $edit['sn_email'], 'Subscribe'); @@ -698,7 +703,6 @@ function _simplenews_subscription_manage } if ($pre_process_only) return; if ($snid && $_POST['sn_update']) drupal_goto('admin/newsletter/users'); - $output = '