Вход Регистрация
Файл: CMS/core/modules/users_nick.php
Строк: 258
<?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) {

    
$error '';

    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);

                            
set_users_shop($log'Смена цвета ника''nick_color'$config['edit_color_money']);

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

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

        if (!empty(
$error)) $inSes->addMessage('Ошибка! ' $error'error');
    }

    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) <= 20) {

                            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);

                                            
set_users_shop($log'Смена ника на ' $nick'nick'$config['edit_nick_money']);

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

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

        if (!empty(
$error)) $inSes->addMessage('Ошибка! ' $error'error');
    }

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

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

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

                
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('start'''RND);
                }
                else 
$error 'У вас не установлен ник!';
            
//}
            //else $error = 'У вас недостаточно актива для изменения ника!';
        
}
        else 
$error 'Неверный идентификатор сессии, повторите действие!';

        if (!empty(
$error)) $inSes->addMessage('Ошибка! ' $error'error');
    }

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

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

    echo 
'<div class="b">' icon('anketa.gif''icons');
    echo 
' <a href="' gen_uri('anketa') . '">Моя анкета</a> | ';
    echo 
'<a href="' gen_uri('profil') . '">Мой профиль</a> | ';
    echo 
'<a href="' gen_uri('account') . '">Мои данные</a> | ';
    echo 
'<a href="' gen_uri('setting') . '">Мои настройки</a></div>';

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

         echo 
'<div class="b"><b>Изменение ника</b> / ';
         echo 
'<a href="' gen_uri('nick_color') . '"><b>Изменение цвета ника</b></a> | ';
         echo 
'<a href="' gen_uri('account') . '"><b>Изменение E-Mail</b></a><br /></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="20"');
            
$form->Submit('Изменить''save_nick');
            unset(
$form);
        }

        echo 
'<div class="b">Стоймость покупки ника составляет ' 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="b"><a href="' gen_uri('nick') . '"><b>Изменение ника</b></a> | ';
         echo 
'<b>Изменение цвета ника</b> / ';
         echo 
'<a href="' gen_uri('account') . '"><b>Изменение E-Mail</b></a><br /></div>';

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

            echo 
'<div class="c"><big>' gradient(strip_tags($nickname), $_POST['color'], $_POST['color2']) . '</big><br /></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="b">Стоймость покупки составляет ' 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('Вы не авторизованы, чтобы изменять свои данные, необходимо');
}

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