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

nord51

Пользователь
Gemini_13,если я не ошибаюсь, у тебя было реализована система с возможностью позолотить раздачу за бонусные баллы ?
 
G

Gemini_13

Гость
Решил выложить немного улучшеный вариант смены ника на базе кода от Bustra

Код:
INSERT INTO `bb_config` VALUES ('seed_bonus_change_nik', '1');
INSERT INTO `bb_config` VALUES ('seed_bonus_change_nik_price', '10000');
ALTER TABLE `bb_users` ADD `username_old` varchar(25) DEFAULT NULL;
ALTER TABLE `bb_users` ADD `username_change_time` int(11) NOT NULL DEFAULT '0';
PHP:
$username_new = !empty($_POST['ch_nik_name']) ? clean_username($_POST['ch_nik_name']) : '';
$return = '<br /><br /><a href="'. BONUS_URL .'">'. $lang['BONUS_RETURN'] .'</a>';
----------------
    // Смена ника за сидбонус
    if ($_POST['bonus_id'] == 'ch_nik')
    {
        require(INC_DIR .'functions_validate.php');
        $points = $bb_cfg['seed_bonus_change_nik_price'];
 
        if ($userdata['username_old'] != '' && $userdata['username_change_time'] != 0)
        {
            $time = bb_date($userdata['username_change_time'], $lang['DATE_FORMAT']);
            message_die(GENERAL_ERROR, sprintf($lang['BONUS_CHANGED_NIK'], $userdata['username_old'], $userdata['username'], $time) . $return);
        }
 
        if ($user_points < $points)
        {
            message_die(GENERAL_ERROR, $lang['BONUS_NOT_SUCCES'] . $return);
        }
 
        if (IS_AM)
        {
            message_die(GENERAL_ERROR, $lang['BONUS_NOT_AM'] . $return);
        }
 
        if (empty($username_new))
        {
            message_die(GENERAL_ERROR, $lang['CHOOSE_A_NAME'] . $return);
        }
 
        if ($err = validate_username($username_new))
        {
            message_die(GENERAL_ERROR, $err . $return);
        }
        else
        {
            DB()->query("UPDATE ". BB_USERS ." u
                SET
                    username_old            = '". DB()->escape_string($username) ."',
                    username_change_time    = ".time().",
                    u.username                = '". DB()->escape_string($username_new) ."',
                    u.user_points            = u.user_points  - $points
                WHERE
                    u.user_id                = $user_id
            ");
 
            cache_rm_user_sessions($user_id);
 
            $log_action->admin('adm_user_ch_nik', array('log_msg' => "<b>$username</b> » <b>$username_new</b><br>id = $user_id"));
            bb_die(sprintf($lang['CHANGE_NIK_GOOD'], $username_new) . $return);
        }
    }
--------------
    if ($bb_cfg['seed_bonus_change_nik'])
    {
        $points = $bb_cfg['seed_bonus_change_nik_price'];
        $class = ($user_points >= $points) ? 'seed' : 'leech';
        $template->assign_block_vars('ch_nik', array(
            'ROW_CLASS' => 'row1',
            'ID'        => 'ch_nik',
            'DESC'        => $lang['CHANGE_NIK'],
            'PRICE'        => sprintf($lang['BONUS_UPLOAD_PRICE'], $class, sprintf('%.2f', $points)),
        ));
    }
PHP:
$lang['BONUS_NOT_SUCCES'] = '<span class="leech">У Вас недостаточно Бонусов в наличии. Больше сидируйте!</span>';
$lang['BONUS_RETURN'] = 'Вернуться к обмену Сидбонусов';
$lang['BONUS_ADDITIONAL_FUNCTIONS'] = 'Другие возможности обмена Сидбонуса';
$lang['CHANGE_NIK'] = '<b>Смена логина</b> <br />Смена логина (ника) за сидбонус.<br><i>Новый ник:</i>&nbsp;<input type="text" name="ch_nik_name" value="">';
$lang['CHANGE_NIK_GOOD'] = 'Ник был успешно изменен на <b>%s</b>';
$lang['BONUS_NOT_AM'] = 'Администраторам и Модераторам запрещается смена ника.';
$lang['BONUS_CHANGED_NIK'] = 'Вы не можете больше изменять ник.<br />Вы изменили ник с <b>%s</b> на <b>%s</b> <b>%s</b>';
PHP:
'adm_user_ch_nik'  => 'Юзер:<br /> <b>изменен ник</b>',
PHP:
'adm_user_ch_nik'    => 10,
 

connet_fl

Пользователь
смысл ваших постов? лучше бы написали куда ставить, не думаю что все телепатами стали на форуме.

Gemini_13, понятен только первый и третий код, а куда остальное как-то неясно.
 
A

alexey555

Гость
второй кусок в usercp_bonus.php тока после чего не понятно,там вроде в трёх местах толкать
третий фрагмент в functions.php
с четвёртым...шаблон с первого поста надо взять помоему...вот такой блин пазл((
 
G

Gemini_13

Гость
connet_fl, если нету смысла в моих постах, то просто не читай их.

Vitalychez_, уверен?
 

Mafiozi

Пользователь
мде, помоему Gemini_13 ничего сложного не написал. Надо затронуть usercp_bonus.php, functions.php, lang_log_action.php ну и lang_main.php
 
Сверху