B
Bustra
Гость
Описание: все понятно на скриншоте.
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> <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('/^(&|<|>)$/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 -->