]> git.mxchange.org Git - friendica.git/blobdiff - mod/register.php
Merge pull request #3110 from tobiasd/20170127-translationdocs
[friendica.git] / mod / register.php
index 4c0860e6e3f3362a9ace2b2a732886114e95a85b..81e8c3ad83927c03bd06fdc6a175eadf7d7c6838 100644 (file)
@@ -5,7 +5,7 @@ require_once('include/bbcode.php');
 require_once('include/user.php');
 
 if(! function_exists('register_post')) {
-function register_post(&$a) {
+function register_post(App $a) {
 
        global $lang;
 
@@ -52,6 +52,7 @@ function register_post(&$a) {
 
        $arr['blocked'] = $blocked;
        $arr['verified'] = $verified;
+       $arr['language'] = get_browser_language();
 
        $result = create_user($arr);
 
@@ -63,8 +64,8 @@ function register_post(&$a) {
        $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');
@@ -79,26 +80,31 @@ function register_post(&$a) {
                        set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
                }
 
-               $res = 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(
-                               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
-                       );
-               }
        }
        elseif($a->config['register_policy'] == REGISTER_APPROVE) {
                if(! strlen($a->config['admin_email'])) {
@@ -107,12 +113,13 @@ function register_post(&$a) {
                }
 
                $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
@@ -127,7 +134,7 @@ function register_post(&$a) {
                        $admin_mail_list
                );
 
-
+               // send notification to admins
                foreach ($adminlist as $admin) {
                        notification(array(
                                'type' => NOTIFY_SYSTEM,
@@ -135,15 +142,20 @@ function register_post(&$a) {
                                '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",
+                               '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());
@@ -160,7 +172,7 @@ function register_post(&$a) {
 
 
 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.
@@ -235,6 +247,9 @@ function register_content(&$a) {
                ));
        }
 
+       $r = q("SELECT count(*) AS `contacts` FROM `contact`");
+       $passwords = !$r[0]["contacts"];
+
        $license = '';
 
        $o = get_markup_template("register.tpl");
@@ -248,6 +263,8 @@ function register_content(&$a) {
        $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,
@@ -260,8 +277,11 @@ function register_content(&$a) {
                '$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,