Вход Регистрация
Файл: core/modules/users_nick.php
Строк: 257
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$colors = array(
    
'006400' => 'Темно-зеленый',
    
'0000FF' => 'Синий',
    
'000080' => 'Темно-синий',
    
'00FFFF' => 'Голубой',
    
'FFFF00' => 'Желтый',
    
'808080' => 'Серый',
    
'C0C0C0' => 'Светло-серый',
    
'9ACD32' => 'Желто-зеленый',
    
'7FFF00' => 'Салатовый',
    
'90EE90' => 'Светло-зеленый',
    
'D1E231' => 'Грушевый',
    
'4B0082' => 'Индиго',
    
'8A2BE2' => 'Фиолетовый',
    
'991199' => 'Фиолетово-баклажанный',
    
'008B8B' => 'Темно-голубой',
    
'4682B4' => 'Голубая сталь',
    
'87CEEB' => 'Светло-голубой',
    
'FF7F50' => 'Кораловый',
    
'8B4513' => 'Коричневый',
    
'FF2400' => 'Алый',
    
'DC143C' => 'Малиновый',
    
'FF1493' => 'Ярко-розовый',
    
'FF69B4' => 'Розовый',
    
'FF8C00' => 'Оранжевый',
    
'FFD700' => 'Золото',
    
'BDB76B' => 'Хаки',
    
'FFA07A' => 'Оранжево-розовый',
    
'008080' => 'Мурена',
    
'FFDB58' => 'Горчичный',
    
'40826D' => 'Ядовито-зелёный',
    
'1E90FF' => 'Защитно-синий',
    
'808000' => 'Оливковый',
    
'660000' => 'Коричнево-малиновый',
    
'D2B48C' => 'Желто-коричневый',
);

$arr = array();
foreach(
$colors as $key => $val) {

    
$arr[$key] = '<span style="font-weight:bold;color:#' $key '">' $val '</span>';
}

function 
gradient($text ''$from ''$to ''$mode 'hex') {

    if (empty(
$to)) return '<span style="font-weight:bold;color: #' $from ';">' $text '</span>';

    if (
$mode == 'hex') {

        
$to   = array( @hexdec($to[0].$to[1]), @hexdec($to[2].$to[3]), @hexdec($to[4].$to[5]));
        
$from = array( @hexdec($from[0].$from[1]), @hexdec($from[2].$from[3]), @hexdec($from[4].$from[5]));
    }

    if ( empty(
$text) ) {

        return 
'';
    }
    else {
        
$levels cms_strlen($text);
    }

    
$from = !empty($from) ? $from : array(0,0,255);
    
$to   = !empty($to)   ? $to   : array(255,0,0);

    
$output '';

    
$text iconv('UTF-8''cp1251'$text);

    for (
$i 1$i <= $levels$i++) {

        for (
$ii 0$ii 3$ii++) {

            
$tmp[$ii] = $from[$ii] - $to[$ii];
            
$tmp[$ii] = floor($tmp[$ii] / $levels);
            
$rgb[$ii] = $from[$ii] - ($tmp[$ii] * $i);

            if (
$rgb[$ii] > 255$rgb[$ii] = 255;

            
$rgb[$ii] = dechex($rgb[$ii]);
            
$rgb[$ii] = strtoupper($rgb[$ii]);
            if (
strlen($rgb[$ii]) < 2$rgb[$ii] = '0' $rgb[$ii];
        }

        
$output .= ($rgb[0].$rgb[1].$rgb[2] == '000000') ? $text[$i-1] : '<span style="color: #' $rgb[0] . $rgb[1] . $rgb[2] . ';">' $text[$i-1] . '</span>';
    }
    return 
'<span style="font-weight:bold;">' iconv('cp1251''UTF-8'$output) . '</span>';
}

if (
$is_logged) {

    if (!empty(
$_POST['buy'])) { // Изменение цвета ника

        
if (!empty($_POST['color'])) {

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                if (
$uset['users_money'] >= $config['edit_color_money']) {

                    if (
$uset['users_timenickname'] < SITE_TIME) {

                        if (
cms_strlen($_POST['color']) == 6) {

                            
$nick nickname($uset['users_login']);

                            
$nick gradient(strip_tags($nick), $_POST['color'], $_POST['color2']);

                            
$time is_admin() ? : (SITE_TIME 86400);

                            
$db->query("UPDATE ?_users SET `users_money` = (`users_money` - ?), `users_nickname` = ?, `users_timenickname` = ?
                                        WHERE `users_login` = ?"
$config['edit_color_money'], $nick$time$log);

                            
del_vars('users_nickname');

                            
$arrnick = array();

                            
$rows $db->select("SELECT `users_login`, `users_nickname` FROM ?_users");

                            foreach(
$rows as $row) {

                                
$arrnick[$row['users_login']] = !empty($row['users_nickname']) ? $row['users_nickname'] : $row['users_login'];
                            }

                            
set_vars('users_nickname'$arrnick);

                            
$inSes->addMessage('Поздравлем с покупкой цветного ника, теперь он стал таким: ' $nick '.<br />C вашего счета списано ' moneys($config['edit_color_money']), 'ok');

                            
gen_red('index'''RND);
                        }
                        else 
$inSes->addMessage('Неверно указан цвет ника!');
                    }
                    else 
$inSes->addMessage('Изменять цвет ника можно не чаще чем 1 раз в сутки!');
                }
                else 
$inSes->addMessage('У Вас, недостаточно денег на счету, для покупки цветного ника.');
            }
            else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
        }
        else 
$inSes->addMessage('Вы не выбрали цвет ника!');
    }

    else if (!empty(
$_POST['save_nick'])) { // Изменение ника

        
$nick = !empty($_POST['nickname']) ? check(trim($_POST['nickname'])) : '';

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
$uset['users_money'] >= $config['edit_nick_money']) {

                if (
$uset['users_timenickname'] < SITE_TIME) {

                    if (
preg_match('|^[0-9a-zA-Zа-яА-ЯЁё_.-s]+$|u'$nick)) {

                        if (
cms_strlen($nick) >= && cms_strlen($nick) <= 25) {

                            if (
$nick != $uset['users_nickname']) {

                                
$reglogin $db->selectCell("SELECT `users_id` FROM ?_users
                                                             WHERE LOWER(`users_login`) = ? LIMIT 1;"
cms_tolower($nick));
                                if (empty(
$reglogin)) {

                                    
$is_reg = (int) $db->selectCell("SELECT `users_id` FROM ?_users
                                                                WHERE LOWER(`users_nickname`) = ? LIMIT 1;"
cms_tolower($nick));
                                    if ( 
$is_reg ) {

                                        
$is_black = (int) $db->selectCell("SELECT `id` FROM ?_users_black_list
                                                                           WHERE LOWER(`login`) = ? LIMIT 1;"
cms_tolower($nick));
                                        if ( 
$is_black ) {

                                            
$time is_admin() ? : (SITE_TIME 86400);

                                            
$db->query("UPDATE ?_users
                                                        SET `users_money` = (`users_money` - ?), `users_nickname` = ?, `users_timenickname` = ?
                                                        WHERE `users_login` = ?"
$config['edit_nick_money'], $nick$time$log);

                                            
del_vars('users_nickname');

                                            
$arrnick = array();

                                            
$rows $db->select("SELECT `users_login`, `users_nickname` FROM ?_users");

                                            foreach(
$rows as $row) {

                                                
$arrnick[$row['users_login']] = !empty($row['users_nickname']) ? $row['users_nickname'] : $row['users_login'];
                                            }

                                            
set_vars('users_nickname'$arrnick);

                                            
$inSes->addMessage('Ваш ник успешно изменен!''ok');

                                            
gen_red('index'''RND);
                                        }
                                        else 
$inSes->addMessage('Выбранный вами ник занесен в черный список!');
                                    }
                                    else 
$inSes->addMessage('Выбранный вами ник уже занят!!');
                                }
                                else 
$inSes->addMessage('Выбранный вами ник используется кем-то в качестве логина!');
                            }
                            else 
$inSes->addMessage('Вы уже используете выбранный вами ник!');
                        }
                        else 
$inSes->addMessage('Слишком длинный или короткий ник! (от 3 до 20 символов)');
                    }
                    else 
$inSes->addMessage('Недопустимые символы, разрешены символы русского и латинского алфавита, а также цифры!');
                }
                else 
$inSes->addMessage('Изменять ник можно не чаще чем 1 раз в сутки!');
            }
            else 
$inSes->addMessage('У вас недостаточно актива для изменения ника!');
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
    }

    else if (!empty(
$_GET['del_nick'])) { // Удаление ника

        
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (!empty(
$uset['users_nickname'])) {

                
$time is_admin() ? : (SITE_TIME 86400);

                
$db->query("UPDATE ?_users SET `users_nickname` = '', `users_timenickname` = ? WHERE `users_login` = ?"$time$log);

                
del_vars('users_nickname');

                
$arrnick = array();

                
$rows $db->select("SELECT `users_login`, `users_nickname` FROM ?_users");

                foreach (
$rows as $row) {

                    
$arrnick[$row['users_login']] = !empty($row['users_nickname']) ? $row['users_nickname'] : $row['users_login'];
                }

                
set_vars('users_nickname'$arrnick);

                
$inSes->addMessage('Ваш ник успешно удален!''ok');

                
gen_red('index'''RND);
            }
            else 
$inSes->addMessage('У вас не установлен ник!');
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
    }

    
show_header('Мои данные');

    
$nickname nickname($uset['users_login']);

    if (!empty(
$mod) && $mod == 'nick') {

        echo 
'<div class="blocks"><table><tr>';
        echo 
'<td style="width:33%"><span>Мой ник</span></td>';
        echo 
'<td style="width:33%"><a href="' gen_uri('nick_color'''RND) . '">Цвет ника</a></td>';
        echo 
'<td style="width:33%"><a href="' gen_uri('account'''RND) . '">Мои данные</a></td>';
        echo 
'</tr></table></div>';

        if (
$uset['users_money'] >= $config['edit_nick_money']) {

            
$form = new cmsForm(gen_uri('nick''''rnd=' $_SESSION['token']), 'post');
            
$form->addCode('Ваш ник:');

            if (!empty(
$uset['users_nickname'])) {

                
$form->addCode(' (<a href="' gen_uri('nick''''del_nick=1&amp;rnd=' $_SESSION['token']) . '">Удалить</a>)');
            }
            
$form->addCode('<br />');
            
$form->addText('''nickname'strip_tags($uset['users_nickname']), ' maxlength="25"');
            
$form->Submit('Изменить''save_nick');
            unset(
$form);
        }

        echo 
'<div class="bl">Стоймость покупки ника составляет ' moneys($config['edit_nick_money']) . '<br />';
        echo 
'В наличии: ' moneys($uset['users_money']) . '<br />';
        if (
$uset['users_money'] < $config['edit_nick_money']) echo 'У Вас, недостаточно денег на счету, для покупки ника.<br />'
        echo 
'</div>';
    }
    else {

        echo 
'<div class="blocks"><table><tr>';
        echo 
'<td style="width:33%"><a href="' gen_uri('nick'''RND) . '">Мой ник</a></td>';
        echo 
'<td style="width:33%"><span>Цвет ника</span></td>';
        echo 
'<td style="width:33%"><a href="' gen_uri('account'''RND) . '">Мои данные</a></td>';
        echo 
'</tr></table></div>';

        if (!empty(
$_POST['color']) && !empty($_POST['demo'])) {

            echo 
'<div class="bl center"><big>' gradient(strip_tags($nickname), $_POST['color'], $_POST['color2']) . '</big></div>';
        }

        
$form = new cmsForm('?rnd=' $_SESSION['token']);
        
$form->addRadio('Начальный цвет:''color'request('color''006400'), $arr);
        
$arr array_merge(array('0' => 'Одноцветный'), $arr);
        
$form->addRadio('<br />Конечный цвет:''color2'request('color2','0'), $arr);
        if (
$uset['users_money'] < $config['edit_color_money']) echo $form->Submit('Демо''demo');
        else echo 
$form->Submit(array('Просмотр''Купить'), array('demo''buy'));
        unset(
$form);

        echo 
'<div class="bl">Стоймость покупки составляет ' moneys($config['edit_color_money']) . '<br />';
        echo 
'В наличии: ' moneys($uset['users_money']) . '<br />';
        if (
$uset['users_money'] < $config['edit_color_money']) echo 'У Вас, недостаточно денег на счету, для покупки цветного ника.<br />'
        echo 
'</div>';
    }
}
else {

    
show_header('Мои данные');
    
show_login('Вы не авторизованы, чтобы изменять свои данные, необходимо');
}

?>
Онлайн: 2
Реклама