Аддок к сидбонусам (смена ника)

B

Bustra

Гость
#1
Описание: все понятно на скриншоте.
PHP:
$username = !empty($_POST['ch_nik_name']) ? clean_username($_POST['ch_nik_name']) : '';
PHP:
$return = '<br /><br /><a href="profile.php?mode=bonus">Вернуться к управлению бонусами</a>';
    if ($_POST['bonus_id'] == 'ch_nik')
    {
        if (IS_AM)
        {
            message_die(GENERAL_ERROR, 'Администраторам и Модераторам запрещается смена ника.' . $return);
        }
 
        if (empty($username))
        {
            message_die(GENERAL_ERROR, 'Вы должны выбрать имя' . $return);
        }
 
        require(INC_DIR .'functions_validate.php');
 
        if ($err = clean_username($username))
        {
            message_die(GENERAL_ERROR, $err . $return);
        }
        else
        {
            $cost = 50000; // цена за смену ника
            if ($user_points >= $cost)
            {
                DB()->query("UPDATE ". BB_USERS ." u SET
                    u.username = '". DB()->escape_string($username) ."',
                    u.user_points  = u.user_points  - $cost
                    WHERE u.user_id = $user_id");
 
                $log_action->admin('login_change', array('log_msg' => "<b>$username [$user_id]</b> на <b>$username</b>"));
         
                message_die(GENERAL_ERROR, "Ник был успешно изменен на <b>$username</b>" . $return);
            }
            else
            {
                message_die(GENERAL_ERROR, 'Недостаточно бонусов' . $return);
            }
        }
    }
    else
    {
PHP:
}
PHP:
if ($bb_cfg['seed_bonus_change_nik'])
    {
        $cost = 50000;
        $class = ($user_points >= $cost) ? 'seed' : 'leech';
        $template->assign_block_vars('ch_nik', array(
            'BONUS_ID'  => "ch_nik",
            'BONUS_DESC' => 'Смена логина',
            'BONUS_TIP'  => "<p>Если тебе надоел твой логин, то возьми и смени его.<br>
            Проверка на занятость логина в системе работает автоматически.<br><br>
            <i>Новый ник:</i>&nbsp;<input type=\"text\" name=\"ch_nik_name\" value=\"\"> (цена ". commify($cost) ." поинтов)</p>",
            'POINTS'    => commify($cost) . " / <b class=\"$class\">$user_points</b>",
        ));
    }
PHP:
$bb_cfg['seed_bonus_change_nik'] =true;
PHP:
function check_username ($username)
{
    static $name_chars = 'a-z0-9а-яё_@$%^&;(){}\#\-\'.:+ ';
 
    // Length
    if (strlen($username) > USERNAME_MAX_LENGTH)
    {
        return 'Слишком длинное имя пользователя';
    }
    // Allowed symbols
    if (!preg_match('#^['.$name_chars.']+$#i', $username, $m))
    {
        $invalid_chars = preg_replace('#['.$name_chars.']#i', '', $username);
        return "Имя <b>$username</b> содержит неподходящие символы: <b>". htmlCHR($invalid_chars) .'</b>';
    }
    // HTML Entities
    if (preg_match_all('/&(#[0-9]+|[a-z]+);/i', $username, $m))
    {
        foreach ($m[0] as $ent)
        {
            if (!preg_match('/^(&amp;|&lt;|&gt;)$/i', $ent))
            {
                return 'Это имя содержит неподходящие символы';
            }
        }
    }
 
    // Занято
    $username_sql = DB()->escape($username);
 
    if ($row = DB()->fetch_row("SELECT username FROM ". BB_USERS ." WHERE username = '$username_sql' LIMIT 1"))
    {
        return 'Пользователь с таким именем уже существует';
    }
 
    return false;
}
PHP:
<tr>
    <th colspan="3">Другие функции обмена</th>
</tr>
<!-- BEGIN ch_nik -->
<tr>
    <td class="tLeft"><b>{ch_nik.BONUS_DESC}</b><br>{ch_nik.BONUS_TIP}</td>
    <td><span>{ch_nik.POINTS}</span></td>
    <td style="width: 5%;"><input type="radio" name="bonus_id" value="{ch_nik.BONUS_ID}" /></td>
</tr>
<!-- END ch_nik -->
 

Вложения

B

Bustra

Гость
#3
Что возможно уйдет в пабик

"Перекрасить ник" на 1 неделю
При желании Вы можете изменить цвет своего отображения на трекере, например элите "перекраситься" в новичка или просто выделиться одним из доступных цветов на свое усмотрение.
5000.00

Total Freeleeeeeeeech!
Хотите устроить ТОТАЛЬНЫЙ ФРИЛИЧ и порадовать пользователей? Дерзайте! Тотальный фрилич для всех на сутки!
1000000.00
 
B

Bustra

Гость
#5
Vitalychez_,
Я буду делать под Vip-ку Roman(Админ тапок..), под другие влом.. + они все косячные.
 

Lange

Пользователь
#7
Что возможно уйдет в пабик

"Перекрасить ник" на 1 неделю
При желании Вы можете изменить цвет своего отображения на трекере, например элите "перекраситься" в новичка или просто выделиться одним из доступных цветов на свое усмотрение.
5000.00

Total Freeleeeeeeeech!
Хотите устроить ТОТАЛЬНЫЙ ФРИЛИЧ и порадовать пользователей? Дерзайте! Тотальный фрилич для всех на сутки!
1000000.00
Поддерживаю всё это.
 

Sprinx

Пользователь
#8
Подскажите что не так?

Только галочка есть.И то при нажатии,меняет на 5 gb.

Без имени-1.png
 

Sprinx

Пользователь
#10
Вот этот кусок не пойму куда ставить.
Подскажите.
Код:
$return = '<br /><br /><a href="profile.php?mode=bonus">Вернуться к управлению бонусами</a>';
    if ($_POST['bonus_id'] == 'ch_nik')
    {
        if (IS_AM)
        {
            message_die(GENERAL_ERROR, 'Администраторам и Модераторам запрещается смена ника.' . $return);
        }
 
        if (empty($username))
        {
            message_die(GENERAL_ERROR, 'Вы должны выбрать имя' . $return);
        }
 
        require(INC_DIR .'functions_validate.php');
 
        if ($err = clean_username($username))
        {
            message_die(GENERAL_ERROR, $err . $return);
        }
        else
        {
            $cost = 50000; // цена за смену ника
            if ($user_points >= $cost)
            {
                DB()->query("UPDATE ". BB_USERS ." u SET
                    u.username = '". DB()->escape_string($username) ."',
                    u.user_points  = u.user_points  - $cost
                    WHERE u.user_id = $user_id");
 
                $log_action->admin('login_change', array('log_msg' => "<b>$username [$user_id]</b> на <b>$username</b>"));
       
                message_die(GENERAL_ERROR, "Ник был успешно изменен на <b>$username</b>" . $return);
            }
            else
            {
                message_die(GENERAL_ERROR, 'Недостаточно бонусов' . $return);
            }
        }
    }
    else
    {
 
Сверху