allow_registration) { try { if (trim($password) == "" || trim($password2) == "") { throw new RegistrationException(elgg_echo('RegistrationException:EmptyPassword')); } if (strcmp($password, $password2) != 0) { throw new RegistrationException(elgg_echo('RegistrationException:PasswordMismatch')); } $guid = register_user($username, $password, $name, $email, false, $friend_guid, $invitecode); if ($guid) { $new_user = get_entity($guid); // allow plugins to respond to self registration // note: To catch all new users, even those created by an admin, // register for the create, user event instead. // only passing vars that aren't in ElggUser. $params = array( 'user' => $new_user, 'password' => $password, 'friend_guid' => $friend_guid, 'invitecode' => $invitecode ); // @todo should registration be allowed no matter what the plugins return? if (!elgg_trigger_plugin_hook('register', 'user', $params, TRUE)) { $new_user->delete(); // @todo this is a generic messages. We could have plugins // throw a RegistrationException, but that is very odd // for the plugin hooks system. throw new RegistrationException(elgg_echo('registerbad')); } system_message(elgg_echo("registerok", array($CONFIG->sitename))); // Forward on success, assume everything else is an error... login($new_user); forward(); } else { register_error(elgg_echo("registerbad")); } } catch (RegistrationException $r) { register_error($r->getMessage()); } } else { register_error(elgg_echo('registerdisabled')); } forward(REFERER);