<?php
define('_CONSTANT_', 1);
require_once '../../../core/start.php';
checkAuth();
head('Настройки', 'Настройки');
switch ($do)
{
default :
?>
<a href="<?=HOME?>/modules/user/settings/index.php?do=editLogin" class="link-touch"><?=ico('engine.png')?> Изменить логин</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=editPassword" class="link-touch"><?=ico('engine.png')?> Изменить пароль</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=editBackground" class="link-touch"><?=ico('engine.png')?> Изменить фон пользователя</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=editPhoto" class="link-touch"><?=ico('engine.png')?> Изменить фотографию пользователя</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=setDesign" class="link-touch"><?=ico('engine.png')?> Изменить дизайн</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=setAjax" class="link-touch"><?=ico('engine.png')?> Настройки Ajax</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=setSide" class="link-touch"><?=ico('engine.png')?> Изменить сторону</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=setClass" class="link-touch"><?=ico('engine.png')?> Изменить класс</a>
<a href="<?=HOME?>/modules/user/settings/index.php?do=refSystem" class="link-touch"><?=ico('engine.png')?> <span style="color: darkorange;">Реферальная система</span></a>
<?php
break;
case'editLogin':
$cost = 500;
if (isset($_POST['try']))
{
$data = $_POST;
$data['login'] = $Filter->clearString($data['login']);
if (empty($data['login']))
{
errorNoExit('Обнаружено пустое поле.');
}
elseif ($data['login'] == $user['login'])
{
errorNoExit('Вы уже используете данный логин.');
}
elseif (DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".USERS." WHERE `login` = ?", [$data['login']]) == TRUE)
{
errorNoExit('Данный логин уже занят.');
}
elseif (mb_strlen($data['login']) < 4 || mb_strlen($data['login']) > 10)
{
errorNoExit('Длина логина должна быть в пределе [4-10].');
}
elseif ($user['money'] < $cost)
{
errorNoExit('Недостаточно золота.');
}
else
{
DB::$dbs->query("UPDATE ".USERS." SET `login` = ?, `money` = ? WHERE `id` = ?", [$data['login'], ($user['money'] - $cost), $user['id']]);
success('Логин изменен.', '/modules/user/settings/index.php');
}
}
?>
<form action="" method="POST">
Ваш текущий логин: <?=$Filter->output($user['login'])?><br/>
Стоимость смены логина <?= moneyIcon().$Filter->clearInt($cost)?> золота<br/>
Новый логин[4-10]:<br/>
<input type="text" name="login" maxlength="10" placeholder="Введите логин" value="<?=$Filter->output($user['login'])?>"><br/>
<input type="submit" name="try" value="Сменить">
</form>
<?php
$array = ['Настройки'];
navPanel($array);
break;
case 'editBackground':
echo ico('info.png') . ' Цена смены фона ' . moneyIcon() . $settings['user_background_cost'] . '<br/>';
if (isset($_POST['id']))
{
$id = $Filter->clearInt($_POST['id']);
if (!is_numeric($id) || $id > 5 || $id < 0 || $user['money'] < $settings['user_background_cost'])
{
error('Ошибка', '/modules/user/settings/index.php', 'Вернуться в настройки');
}
DB::$dbs->query("UPDATE " . USERS . " SET `background` = ?, `money` = ? WHERE `id` = ?", [$id, ($user['money'] - $settings['user_background_cost']), $user['id']]);
success('Вы сменили фон', '/modules/user/settings/index.php', 'Вернуться в настройки');
}
echo '<form action="" method="POST"> Выберите фон: <br/>';
for ($i = 1; $i < 5; $i++)
{
echo '<input type="radio" name="id" value="'.$i.'"> <img src="'.HOME.'/img/user/background/'.$i.'.png" width="240" height="170"><hr/>';
}
echo '<input type="submit" value="Установить"></form>';
break;
case 'editPhoto':
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=85)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
if (!empty($_FILES['file']))
{
$name = $_FILES['file']['name']; // File name;
$ext = strtolower(strrchr($name, '.')); // File format;
$par = getimagesize($_FILES['file']['tmp_name']); // File width/height;
$size = $_FILES['file']['size']; // File size;
$photo = $user['id'].$ext;
$pictures = ['.jpg', '.jpeg', '.gif', '.png']; // Allow format;
$config['photoPar'][0] = 1600; // Max width;
$config['photoPar'][1] = 1600; // Max height;
$config['maxUploadPhoto'] = 5; // Max file size[mb];
/*
* Width/Height;
*/
if ($par[0] > $config['photoPar'][0] || $par[1] > $config['photoPar'][1])
{
error('Разрешение фотографии превышает допустимое значение. [Max. '.$config['photo_par'][0].'x'.$config['photo_par'][1].']', '/modules/user/settings/index.php', 'В настройки');
}
/*
* Size;
*/
if ($size > (1048576 * $config['maxUploadPhoto']))
{
error('Размер фотографии превышает допустимое значение. [Max. '.$config['maxUploadPhoto'].'mb]', '/modules/user/settings/index.php', 'В настройки');
}
/*
* Format;
*/
if (preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, $pictures))
{
error('Не верное расширение файла.', '/modules/user/settings/index.php', 'В настройки');
}
/*
* If don`t get error;
*/
copy($_FILES['file']['tmp_name'], inc . 'img/user/photo/'.$user['id'].$ext);
img_resize(inc . 'img/user/photo/'.$user['id'].$ext, inc . 'img/user/photo/mini/'.$user['id'].$ext, 120, 160); // Mini;
DB::$dbs->query("UPDATE " . USERS . " SET `photo` = ?, `is_moderate_photo` = ? WHERE `id` = ?", [$photo, 2, $user['id']]);
success('Фотография успешно загружена и отпралена на модерацию.', '/modules/user/settings/index.php', 'В настройки');
}
/*
* Delete image;
*/
if (!empty($_POST['delete']))
{
unlink("".inc."img/user/photo/".$user['photo']);
unlink("".inc."img/user/photo/mini/".$user['photo']);
DB::$dbs->query("UPDATE " . USERS . " SET `photo` = ?, `is_moderate_photo` = ? WHERE `id` = ?", [NULL, 0, $user['id']]);
success('Фотография успешно удалена.', '/modules/user/settings/index.php', 'В настройки');
}
if (empty($user['photo']))
{
?>
<form action="" enctype="multipart/form-data" method="POST">
<b>Фотография:</b>[max. 5mb; 1600x1600px; jpg, gif, png]<br/>
<input type="file" name="file"/><br/>
<input type="submit" value="Загрузить"/>
</form>
<?php
}
else
{
?>
<div style="text-align: center;"><img src="<?=(!empty($user['photo']) && $user['is_moderate_photo'] == 1 ? HOME .'/img/user/photo/mini/'.$user['photo'] : HOME . '/img/user/photo/mini/empty.gif')?>" width="120px" height="160px" alt="[user-photo]"></div><br/>
<form action="" method="POST">
<input type="submit" name="delete" value="Удалить"/>
</form>
<?php
}
break;
case 'editPassword':
if (isset($_POST['try']))
{
$data = $_POST;
/* Old password */
$data['password'] = $Filter->clearString($data['password']);
$data['password'] = crypt($data['password'], '$1$game$');
/* End */
/* New password */
$data['passwordNew'] = $Filter->clearString($data['passwordNew']);
$data['passwordNew'] = crypt($data['passwordNew'], '$1$game$');
$data['passwordNewRe'] = $Filter->clearString($data['passwordNewRe']);
$data['passwordNewRe'] = crypt($data['passwordNewRe'], '$1$game$');
/* End */
/* Check $data */
if ($user['password'] != $data['password'])
{
error('Старый пароль введен не верно', '/modules/user/settings/index.php', 'В настройки');
}
else if ($data['passwordNew'] != $data['passwordNewRe'])
{
error('Пароли не совпадают', '/modules/user/settings/index.php', 'В настройки');
}
else if (empty($data['passwordNew']) || empty($data['passwordNewRe']) || mb_strlen($data['passwordNew']) > 20 || mb_strlen($data['passwordNew']) < 6|| mb_strlen($data['passwordNewRe']) > 20 || mb_strlen($data['passwordNewRe']) < 6)
{
error('Длина пароля должна быть в диапазоне [6-20]', '/modules/user/settings/index.php', 'В настройки');
}
else
{
/* Update password */
DB::$dbs->query("UPDATE " . USERS . " SET `password` = ? WHERE `id` = ?", [$data['passwordNew'], $user['id']]);
unset($_SESSION['id']);
setcookie('login', '', time() - 30);
setcookie('password', '', time() - 30);
header("Location: ".HOME."/");
exit();
/* End */
}
}
/* End */
?>
<form action="" method="POST">
Старый пароль:<br/>
<input type="text" name="password" placeholder="Введите пароль..."><br/>
Новый пароль[6-20]:<br/>
<input type="text" name="passwordNew" placeholder="Введите пароль..."><br/>
Повторите новый пароль:<br/>
<input type="text" name="passwordNewRe" placeholder="Введите пароль..."><br/>
<?=ico('info.png')?> После того как вы нажмете на кнопку продолжить неободимо будет заново пройти аутентификацию введя ваш новый пароль.<br/>
<input type="submit" name="try" value="Продолжить">
</form>
<?php
$array = ['Настройки'];
navPanel($array);
break;
# User design;
case 'setDesign':
if (isset($_POST['try']))
{
$data = $_POST;
$data['design'] = $Filter->output($data['design']);
$allowDesign = ['lite', 'touch', 'touch-dark', 'touch-blue'];
if (!in_array($data['design'], $allowDesign))
{
errorNoExit('Ошибка!');
}
else if ($user['design'] == $data['design'])
{
errorNoExit('У вас уже установлен данный дизайн');
}
else if (empty($data['design']))
{
errorNoExit('Дизайн не выбран!');
}
else
{
DB::$dbs->query("UPDATE ". USERS ." SET `design` = ? WHERE `id` = ?", [$data['design'], $user['id']]);
success('Вы сменили дизайн!', '/modules/user/settings/index.php', 'В настройки');
}
}
?>
<form action="" method="POST">
<b>Выберите дизайн:</b><br/>
<select name="design">
<option value="lite"> Lite</option>
<option value="touch"> Touch</option>
<option value="touch-dark"> Touch-Dark</option>
<option value="touch-blue"> Touch-Blue</option>
</select><br/>
<input type="submit" name="try" value="Сменить">
</form>
<?php
$array = ['Настройки'];
navPanel($array);
break;
# Ajax settings;
case 'setAjax':
if (isset($_POST['try']))
{
$data = $_POST;
$data['ajax'] = $Filter->clearInt($data['ajax']);
$allowAjax = [0, 1];
if (!in_array($data['ajax'], $allowAjax))
{
errorNoExit('Ошибка!');
}
else if ($user['ajax'] == $data['ajax'])
{
errorNoExit('У вас уже включен/выключен ajax');
}
else
{
DB::$dbs->query("UPDATE ". USERS ." SET `ajax` = ? WHERE `id` = ?", [$data['ajax'], $user['id']]);
success('Операция выполнена успешно!', '/modules/user/settings/index.php', 'В настройки');
}
}
?>
Статус Ajax: <?=($user['ajax'] == 1 ? '<span style="color: green;">[вкл]</span>' : '<span style="color: red;">[выкл]</span>')?><br/>
<form action="" method="POST">
<b>Выберите значение:</b><br/>
<select name="ajax">
<option value="0"> Выключить</option>
<option value="1"> Включить</option>
</select><br/>
<input type="submit" name="try" value="Подтвердить">
</form>
<?php
$array = ['Настройки'];
navPanel($array);
break;
case 'setSide':
if (isset($_POST['try']))
{
$data = $_POST;
$allowSide = ['dark', 'white'];
if (!in_array($data['side'], $allowSide))
{
errorNoExit('Ошибка!');
}
else if ($user['side'] == $data['side'])
{
errorNoExit('Вы и так на этой стороне!');
}
else if ($user['money'] < 1000)
{
errorNoExit('Недостаточно золота!');
}
else
{
$another = ($user['side'] == 'white' ? 'dark' : 'white');
DB::$dbs->query("UPDATE ". USERS ." SET `side` = ?, `money` = ? WHERE `id` = ?", [$another, ($user['money'] - 1000), $user['id']]);
success('Вы успешно сменили сторону персонажа', '/game/index.php');
}
}
?>
Стоимость смены стороны персонажа <?=ico('gold.png')?>1000
<form action="" method="POST">
<b>Выберите сторону:</b><br/>
<select name="side">
<option value="dark"> Тьма</option>
<option value="white"> Свет</option>
</select><br/>
<input type="submit" name="try" value="Подтвердить">
</form>
<?php
break;
case 'setClass':
if (empty($user['class']))
{
$cost = 0;
}
else
{
$cost = 5000;
}
if (isset($_POST['try']))
{
$data = $_POST;
$allowClass = ['warior'];
if (!in_array($data['class'], $allowClass))
{
errorNoExit('Ошибка!');
}
else if ($user['class'] == $data['class'])
{
errorNoExit('У вас и так этот класс!');
}
else if ($user['money'] < $cost)
{
errorNoExit('Недостаточно золота!');
}
else
{
DB::$dbs->query("UPDATE ". USERS ." SET `class` = ?, `money` = ? WHERE `id` = ?", [$data['class'], ($user['money'] - $cost), $user['id']]);
success('Вы успешно сменили класс персонажа', '/game/index.php');
}
}
?>
<div class="wrap">
Выбор класса персонажа обойдется вам в <?=ico('gold.png'), $cost?> золота.
</div>
<form action="" method="POST">
<b>Выберите класс:</b><br/>
<select name="class">
<option value="warior"> Воин</option>
</select><br/>
<input type="submit" name="try" value="Подтвердить">
</form>
<?php
break;
case 'refSystem':
?>
<div class="headerImg">
<img src="<?=HOME?>/img/present.png" alt="[header-img]" width="350px">
</div>
<div class="wrap">
Ваша реф. ссылка: <span style="color: darkorange;"><b><u>http://wapgame.gq/modules/login/registration.php?ref=<?=$user['id']?></u></b></span><br/>
<br/>
<?=ico('info.png')?> - В учет идут только игроки которые достигли 10 уровня.<br/>
<?=ico('info.png')?> - Когда приглашенный вами игрок достигает 10 уровня вы получаете <span style="color: green;">+<?=ico('gold.png')?>2000</span>, а приглашенный игрок <span style="color: green;">+<?=ico('gold.png')?>1000</span>
</div>
<?php
$all = DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ". USERS ." WHERE `ref` = ? and `lvl` >= ?", [$user['id'], 10]);
?>
<div class="head">
Игроки которых вы пригласили
</div>
<?php
if (empty($all))
{
?>
<div class="wrap">
Игроки не найдены
</div>
<?php
}
else
{
$n = new Navigator($all,10,'do=refSystem');
$sql = DB::$dbs->query("SELECT * FROM ".USERS." WHERE `ref` = ? and `lvl` >= ? ORDER BY `lvl` LIMIT {$n->start()}, 10", [$user['id'], 10]);
while ($ank = $sql -> fetch())
{
?>
<?=userLink($ank['id'], 'link-touch')?>
<?php
}
?>
<?=$n->navi();?>
<?php
}
$array = ['Настройки'];
navPanel($array);
break;
}
require_once '../../../core/foot.php';