Вход Регистрация
Файл: 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() ? 0 : (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) >= 3 && 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 < 1 ) {

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

                                            
$time = is_admin() ? 0 : (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() ? 0 : (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('Вы не авторизованы, чтобы изменять свои данные, необходимо');
}

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