1

Topic: Как создать дополнительные поля при регистрации?

Как создать дополнительные поля при регистрации на форуме PunBB?
Вначале редактируем файл register.php, т.е. добавляем новую форму при регистрации. Вот как это было сделано на примере изменения поля MSN на цель регистрации.
Итак, открыв register.php, найти:

<div class="frm-group group<?php echo ++$forum_page['group_count'] ?>">

сразу после него вставить форму ввода:

                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text">
                         <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['MSN'] ?></span> <small><?php echo $lang_profile['MSN help'] ?></small></label><br />
                        <span class="fld-input"><input type="text" data-suggest-role="msn" id="fld<?php echo $forum_page['fld_count'] ?>" name="req_msn" value="<?php echo(isset($_POST['req_msn']) ? forum_htmlencode($_POST['req_msn']) : '') ?>" size="60" maxlength="80" required spellcheck="false" /></span>
                     </div>
                </div>

2

Re: Как создать дополнительные поля при регистрации?

Примерно на 131 строке найти

        $username = forum_trim($_POST['req_username']);
        $email1 = strtolower(forum_trim($_POST['req_email1']));

сразу после них вставить строку

                $msn = forum_trim($_POST['req_msn']);

Так же найти

            // Insert the new user into the database. We do this now to get the last inserted id for later use.
            $user_info = array(
                'username'                =>    $username,
                'group_id'                =>    $initial_group_id,
                'salt'                    =>    $salt,
                'password'                =>    $password1,
                'password_hash'            =>    $password_hash,
                'email'                    =>    $email1,
                'email_setting'            =>    $forum_config['o_default_email_setting'],

Вставить между email и email_setting

                'msn'                   =>  $msn,

3

Re: Как создать дополнительные поля при регистрации?

Последний шаг, открыть файл /include/functions.php, найти ( примерно 1844 строка)

    // Add the user 

И создать новый запрос к БД, добавив в

'INSERT' => msn,

и в

'VALUES' => \''.$forum_db->escape($user_info['msn']).'\',

Вот такой должен получиться общий запрос:

    // Add the user
    $query = array(
        'INSERT'    => 'username, group_id, password, email, msn, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, salt, activate_key',
        'INTO'        => 'users',
        'VALUES'    => '\''.$forum_db->escape($user_info['username']).'\', '.$user_info['group_id'].', \''.$forum_db->escape($user_info['password_hash']).'\', \''.$forum_db->escape($user_info['email']).'\', \''.$forum_db->escape($user_info['msn']).'\', '.$user_info['email_setting'].', '.floatval($user_info['timezone']).', '.$user_info['dst'].', \''.$forum_db->escape($user_info['language']).'\', \''.$forum_db->escape($user_info['style']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['registration_ip']).'\', '.$user_info['registered'].', \''.$forum_db->escape($user_info['salt']).'\', '.$user_info['activate_key'].''
    );

4

Re: Как создать дополнительные поля при регистрации?

Нужно так же настроить локализацию открыв /lang/Russian/profile.php и заменив MSN на свое:

'MSN'                        => 'Цель',
'MSN help'                    => 'Ваша цель регистрации, напишите пару слов',

5

Re: Как создать дополнительные поля при регистрации?

Скажите, а можно ли сделать дополнительные поля при регистрации, чтобы пользователь регисрируясь сразу мог добавить нужную информацию, но еще и добавить что нибудь новое?

6

Re: Как создать дополнительные поля при регистрации?

Скажите, а можно ли сделать дополнительные поля при регистрации, чтобы пользователь регисрируясь сразу мог добавить нужную информацию

Вроде есть уже такое расширение.

но еще и добавить что нибудь новое?

Под новым, что подразумевается?

7

Re: Как создать дополнительные поля при регистрации?

Есть расширение для добавления дополнительных полей в профоль прльзователей?
Можно было бы добавить некоторые соц сети, даже тот же Вконтакте, пол, возможность выбрать город проживания, дату рождения и часовой пояс.
Просто, мне кажется, что некоторым пользователям удобней настроить все сразу при регистрации, а не входить в профиль и дополнительно настраивать профиль. Народ у нас ленивенький стал  PunBB_INFO_ICQ/wink