require_once('include/user.php');
if(! function_exists('register_post')) {
-function register_post(&$a) {
+function register_post(App &$a) {
global $lang;
}
- require_once('include/user.php');
-
$arr = $_POST;
$arr['blocked'] = $blocked;
$arr['verified'] = $verified;
+ $arr['language'] = get_browser_language();
$result = create_user($arr);
$user = $result['user'];
if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) {
- $url = $a->get_baseurl() . '/profile/' . $user['nickname'];
- proc_run('php',"include/directory.php","$url");
+ $url = App::get_baseurl() . '/profile/' . $user['nickname'];
+ proc_run(PRIORITY_LOW, "include/directory.php", $url);
}
$using_invites = get_config('system','invitation_only');
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
}
- send_register_open_eml(
- $user['email'],
- $a->config['sitename'],
- $a->get_baseurl(),
- $user['username'],
- $result['password']);
-
-
- if($res) {
- info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
+ // Only send a password mail when the password wasn't manually provided
+ if (!x($_POST,'password1') OR !x($_POST,'confirm')) {
+ $res = send_register_open_eml(
+ $user['email'],
+ $a->config['sitename'],
+ App::get_baseurl(),
+ $user['username'],
+ $result['password']);
+
+ if($res) {
+ info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
+ goaway(z_root());
+ } else {
+ notice(
+ sprintf(
+ t('Failed to send email message. Here your accout details:<br> login: %s<br> password: %s<br><br>You can change your password after login.'),
+ $user['email'],
+ $result['password']
+ ). EOL
+ );
+ }
+ } else {
+ info( t('Registration successful.') . EOL ) ;
goaway(z_root());
}
- else {
- notice( t('Failed to send email message. Here is the message that failed.') . $email_tpl . EOL );
- }
}
elseif($a->config['register_policy'] == REGISTER_APPROVE) {
if(! strlen($a->config['admin_email'])) {
}
$hash = random_string();
- $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language` ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ",
+ $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language`, `note` ) VALUES ( '%s', '%s', %d, '%s', '%s', '%s' ) ",
dbesc($hash),
dbesc(datetime_convert()),
intval($user['uid']),
dbesc($result['password']),
- dbesc($lang)
+ dbesc($lang),
+ dbesc($_POST['permonlybox'])
);
// invite system
// send email to admins
$admin_mail_list = "'".implode("','", array_map(dbesc, explode(",", str_replace(" ", "", $a->config['admin_email']))))."'";
- $adminlist = q("SELECT uid, language, email FROM user WHERE email IN (%s) LIMIT 1",
+ $adminlist = q("SELECT uid, language, email FROM user WHERE email IN (%s)",
$admin_mail_list
);
-
+ // send notification to admins
foreach ($adminlist as $admin) {
notification(array(
'type' => NOTIFY_SYSTEM,
'source_name' => $user['username'],
'source_mail' => $user['email'],
'source_nick' => $user['nickname'],
- 'source_link' => $a->get_baseurl()."/admin/users/",
- 'link' => $a->get_baseurl()."/admin/users/",
- 'source_photo' => $a->get_baseurl() . "/photo/avatar/".$user['uid'].".jpg",
- 'to_email' => $admin['mail'],
+ 'source_link' => App::get_baseurl()."/admin/users/",
+ 'link' => App::get_baseurl()."/admin/users/",
+ 'source_photo' => App::get_baseurl() . "/photo/avatar/".$user['uid'].".jpg",
+ 'to_email' => $admin['email'],
'uid' => $admin['uid'],
- 'language' => ($admin['language']?$admin['language']:'en'))
- );
+ 'language' => ($admin['language']?$admin['language']:'en'),
+ 'show_in_notification_page' => false
+ ));
}
-
+ // send notification to the user, that the registration is pending
+ send_register_pending_eml(
+ $user['email'],
+ $a->config['sitename'],
+ $user['username']);
info( t('Your registration is pending approval by the site owner.') . EOL ) ;
goaway(z_root());
if(! function_exists('register_content')) {
-function register_content(&$a) {
+function register_content(App &$a) {
// logged in users can register others (people/pages/groups)
// even with closed registrations, unless specifically prohibited by site policy.
));
}
+ $r = q("SELECT count(*) AS `contacts` FROM `contact`");
+ $passwords = !$r[0]["contacts"];
+
$license = '';
$o = get_markup_template("register.tpl");
$o = replace_macros($o, array(
'$oidhtml' => $oidhtml,
'$invitations' => get_config('system','invitation_only'),
+ '$permonly' => $a->config['register_policy'] == REGISTER_APPROVE,
+ '$permonlybox' => array('permonlybox', t('Note for the admin'), '', t('Leave a message for the admin, why you want to join this node')),
'$invite_desc' => t('Membership on this site is by invitation only.'),
'$invite_label' => t('Your invitation ID: '),
'$invite_id' => $invite_id,
'$fillext' => $fillext,
'$oidlabel' => $oidlabel,
'$openid' => $openid_url,
- '$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
+ '$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith, real or real-looking' . "\x29" . ': '),
'$addrlabel' => t('Your Email Address: '),
+ '$passwords' => $passwords,
+ '$password1' => array('password1', t('New Password:'), '', t('Leave empty for an auto generated password.')),
+ '$password2' => array('confirm', t('Confirm:'), '', ''),
'$nickdesc' => str_replace('$sitename',$a->get_hostname(),t('Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.')),
'$nicklabel' => t('Choose a nickname: '),
'$photo' => $photo,