}
if (!$CONFIG->disable_registration) {
    // For now, just try and register the user
    try {
        $guid = register_user($username, $password, $name, $email, false, $friend_guid, $invitecode);
        if (trim($password) != "" && strcmp($password, $password2) == 0 && $guid) {
            $new_user = get_entity($guid);
            if ($guid && $admin) {
                // Only admins can make someone an admin
                admin_gatekeeper();
                $new_user->admin = 'yes';
            }
            // Send user validation request on register only
            global $registering_admin;
            if (!$registering_admin) {
                request_user_validation($guid);
            }
            if (!$new_user->admin) {
                // Now disable if not an admin
                // Don't do a recursive disable.  Any entities owned by the user at this point
                // are products of plugins that hook into create user and might need
                // access to the entities.
                $new_user->disable('new_user', false);
            }
            system_message(sprintf(elgg_echo("registerok"), $CONFIG->sitename));
            // Forward on success, assume everything else is an error...
            forward();
        } else {
            register_error(elgg_echo("registerbad"));
        }
    } catch (RegistrationException $r) {
$user = "";
if (!$user_id) {
    $user = $_SESSION['user'];
} else {
    $user = get_entity($user_id);
}
if (!is_email_address($email)) {
    register_error(elgg_echo('email:save:fail'));
    forward($_SERVER['HTTP_REFERER']);
}
if ($user) {
    if (strcmp($email, $user->email) != 0) {
        if (!get_user_by_email($email)) {
            if ($user->email != $email) {
                $user->email = $email;
                if ($user->save()) {
                    request_user_validation($user->getGUID());
                    system_message(elgg_echo('email:save:success'));
                } else {
                    register_error(elgg_echo('email:save:fail'));
                }
            }
        } else {
            register_error(elgg_echo('registration:dupeemail'));
        }
    }
} else {
    register_error(elgg_echo('email:save:fail'));
}
//forward($_SERVER['HTTP_REFERER']);
//exit;
function publication_custom_register($hook, $entity_type, $ret, $params)
{
    global $CONFIG;
    // Get variables
    $publication = get_input('publication');
    $author = get_input('author');
    if (!($author && $publication)) {
        return;
    }
    $username = get_input('username');
    $password = get_input('password');
    $password2 = get_input('password2');
    $email = get_input('email');
    $name = get_input('name');
    $friend_guid = (int) get_input('friend_guid', 0);
    $invitecode = get_input('invitecode');
    $admin = get_input('admin');
    if (is_array($admin)) {
        $admin = $admin[0];
    }
    if (!$CONFIG->disable_registration) {
        // For now, just try and register the user
        try {
            if (trim($password) != "" && strcmp($password, $password2) == 0 && ($guid = register_user($username, $password, $name, $email, false, $friend_guid, $invitecode))) {
                $new_user = get_entity($guid);
                if ($guid && $admin) {
                    admin_gatekeeper();
                    $new_user->admin = 'yes';
                }
                // Send user validation request on register only
                global $registering_admin;
                if (!$registering_admin) {
                    request_user_validation($guid);
                }
                if (!$new_user->admin) {
                    $new_user->disable('new_user', false);
                }
                system_message(sprintf(elgg_echo("registerok"), $CONFIG->sitename));
                forward();
                // Forward on success, assume everything else is an error...
            } else {
                register_error(elgg_echo("registerbad"));
            }
        } catch (RegistrationException $r) {
            register_error($r->getMessage());
        }
    } else {
        register_error(elgg_echo('registerdisabled'));
    }
    $qs = explode('?', $_SERVER['HTTP_REFERER']);
    $qs = $qs[0];
    $qs .= "?u=" . urlencode($username) . "&e=" . urlencode($email) . "&n=" . urlencode($name) . "&friend_guid=" . $friend_guid . "&invidecode=" . $invitecode . "&author=" . urlencode($author) . "&publication=" . $publication;
    forward($qs);
}