diff --git a/phpBB/includes/usercp_register.php b/phpBB/includes/usercp_register.php index 05495a3760..3171264405 100644 --- a/phpBB/includes/usercp_register.php +++ b/phpBB/includes/usercp_register.php @@ -532,22 +532,56 @@ if ( isset($HTTP_POST_VARS['submit']) ) include($phpbb_root_path . 'includes/emailer.'.$phpEx); $emailer = new emailer($board_config['smtp_delivery']); - $emailer->from($board_config['board_email']); - $emailer->replyto($board_config['board_email']); - - $emailer->use_template('user_activate', stripslashes($user_lang)); - $emailer->email_address($email); - $emailer->set_subject($lang['Reactivate']); - - $emailer->assign_vars(array( - 'SITENAME' => $board_config['sitename'], - 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), - 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', - - 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) - ); - $emailer->send(); - $emailer->reset(); + if ( $board_config['require_activation'] != USER_ACTIVATION_ADMIN ) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->use_template('user_activate', stripslashes($user_lang)); + $emailer->email_address($email); + $emailer->set_subject($lang['Reactivate']); + + $emailer->assign_vars(array( + 'SITENAME' => $board_config['sitename'], + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']) : '', + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN ) + { + $sql = 'SELECT user_email, user_lang + FROM ' . USERS_TABLE . ' + WHERE user_level = ' . ADMIN; + + if ( !($result = $db->sql_query($sql)) ) + { + message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql); + } + + while ($row = $db->sql_fetchrow($result)) + { + $emailer->from($board_config['board_email']); + $emailer->replyto($board_config['board_email']); + + $emailer->email_address(trim($row['user_email'])); + $emailer->use_template("admin_activate", $row['user_lang']); + $emailer->set_subject($lang['Reactivate']); + + $emailer->assign_vars(array( + 'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)), + 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $board_config['board_email_sig']), + + 'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) + ); + $emailer->send(); + $emailer->reset(); + } + $db->sql_freeresult($result); + } $message = $lang['Profile_updated_inactive'] . '

' . sprintf($lang['Click_return_index'], '', ''); }