Файл: core/modules/users_avatars.php
Строк: 178
<?php
if (!defined('CMS')) { die('Access Denied!'); }
function del_avatars($login = '') {
if (file_exists(ROOTPATH . '/upload/avatars/' . $login . '.gif')) {
unlink (ROOTPATH . '/upload/avatars/' . $login . '.gif');
}
if (file_exists(ROOTPATH . '/upload/avatars/' . $login . '.jpg')) {
unlink (ROOTPATH . '/upload/avatars/' . $login . '.jpg');
}
if (file_exists(ROOTPATH . '/upload/avatars/' . $login . '.png')) {
unlink (ROOTPATH . '/upload/avatars/' . $login . '.png');
}
return true;
}
if ($is_logged) {
$onpage = !empty($config['user_list']) ? $config['user_list'] : 10;
switch ($mod):
default:
if (!empty($_GET['select'])) {
$id = num($_GET['select']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_file(ROOTPATH . '/images/avatars/' . $id . '.gif')) {
if ($uset['users_avatar'] != '/images/avatars/' . $id . '.gif') {
$db->query("UPDATE ?_users SET `users_avatar` = ? WHERE `users_login` = ?;", '/images/avatars/' . $id . '.gif', $log);
del_vars('users_avatars');
$rows = $db->select("SELECT `users_login`, `users_avatar` FROM ?_users");
$arr = array();
foreach($rows as $row) $arr[$row['users_login']] = $row['users_avatar'];
set_vars('users_avatars', $arr);
del_avatars($log);
$inSes->addMessage('Аватар успешно выбран!', 'ok');
}
else $inSes->addMessage('Ошибка! Вы уже выбрали это аватар!');
}
else $inSes->addMessage('Ошибка! Такого аватара не существует!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Галерея аватаров');
echo '<div class="blocks"><table><tr>';
echo '<td style="width:33%"><span>Выбрать</span></td>';
echo '<td style="width:33%"><a href="' . gen_uri('buy_avatars', '', RND) . '">Купить</a></td>';
echo '<td style="width:33%"><a href="' . gen_uri('upload_avatars', '', RND) . '">Загрузить</a></td>';
echo '</tr></table></div>';
$array_avators = array();
$globavatars = glob(ROOTPATH . '/images/avatars/*.gif');
foreach($globavatars as $filename) {
if (basename($filename) == 'noavatar.gif' || basename($filename) == 'guest.gif') continue;
$array_avators[] = basename($filename);
}
$total = @count($array_avators);
if ($total > 0) {
$start = ($page - 1) * $onpage;
if ($start < 0) $start = 0;
if ($start > $total - 1) $start = $total - 1;
$stop = $start + $onpage;
if ($stop > $total) $stop = $total;
for ($i = $start; $i < $stop; $i++) {
$aid = (int) str_replace('.gif', '', $array_avators[$i]);
echo '<div class="bl">';
echo '<img src="' . $config['site_url'] . '/images/avatars/' . $array_avators[$i] . '" class="ava" alt="" /> ';
echo '<a href="?select=' . $aid . '&rnd=' . $_SESSION['token'] . '">Выбрать</a><br /></div>';
}
echo show_pages('avatars', RND, 'p');
echo '<div class="bl">';
echo 'Выберите понравившийся вам аватар<br />';
echo 'Cейчас ваш аватар: ' . user_avatars($log) . '<br /><br />';
echo 'Всего аваторов: <b>' . $total . '</b><br /></div>';
}
else {
show_error('К сожалению аватаров пока нет!');
}
break;
case 'buy_avatars':
if (!empty($_GET['buy'])) {
$id = num($_GET['buy']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_file(ROOTPATH . '/images/avatars2/' . $id . '.gif')) {
if ($uset['users_avatar'] != '/images/avatars2/' . $id . '.gif') {
if ($uset['users_money'] >= $config['avatar_pay']) {
$db->query("UPDATE ?_users SET `users_money` = (`users_money` - ?), `users_avatar` = ?
WHERE `users_login` = ?;", $config['avatar_pay'], '/images/avatars2/' . $id . '.gif', $log);
del_vars('users_avatars');
$rows = $db->select("SELECT `users_login`, `users_avatar` FROM ?_users");
$arr = array();
foreach($rows as $row) $arr[$row['users_login']] = $row['users_avatar'];
set_vars('users_avatars', $arr);
del_avatars($log);
$inSes->addMessage('Аватар успешно куплен!<br />' .
'C вашего счета списано ' . num2name($config['avatar_pay'], $config['money_name']), 'ok');
gen_red('buy_avatars');
}
else {
$inSes->addMessage('Ошибка! Недостаточно средств на счету!');
}
}
else {
$inSes->addMessage('Ошибка! Вы уже купили это аватар!');
}
}
else {
$inSes->addMessage('Ошибка! Такого аватара не существует!');
}
}
else {
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
}
show_header('Платные аватары');
echo '<div class="blocks"><table><tr>';
echo '<td style="width:33%"><a href="' . gen_uri('avatars', '', RND) . '">Выбрать</a></td>';
echo '<td style="width:33%"><span>Купить</span></td>';
echo '<td style="width:33%"><a href="' . gen_uri('upload_avatars', '', RND) . '">Загрузить</a></td>';
echo '</tr></table></div>';
$array_avators = array();
$globavatars = glob(ROOTPATH . '/images/avatars2/*.gif');
foreach($globavatars as $filename) {
$array_avators[] = basename($filename);
}
$total = @count($array_avators);
if ($total > 0) {
$start = ($page - 1) * $onpage;
if ($start < 0) $start = 0;
if ($start > $total - 1) $start = $total - 1;
$stop = $start + $onpage;
if ($stop > $total) $stop = $total;
for ($i = $start; $i < $stop; $i++) {
$aid = (int) str_replace('.gif', '', $array_avators[$i]);
echo '<div class="bl">';
echo '<img src="' . $config['site_url'] . '/images/avatars2/' . $array_avators[$i] . '" class="ava" alt="" /> ';
echo '<a href="?buy=' . $aid . '&rnd=' . $_SESSION['token'] . '">Выбрать</a><br /></div>';
}
echo show_pages('buy_avatars', RND, 'p');
echo '<div class="bl">';
echo 'Цена аватара ' . num2name($config['avatar_pay'], $config['money_name']) . '<br />';
echo 'В наличии: ' . num2name($uset['users_money'], $config['money_name']) . '<br />';
echo 'Купите понравившийся вам аватар<br />';
echo 'Cейчас ваш аватар: ' . user_avatars($log) . '<br /><br />';
echo 'Всего аваторов: <b>' . $total . '</b></div>';
}
else {
show_error('К сожалению, платных аватаров пока нет!');
}
break;
case 'upload_avatars':
if (!empty($_POST['submit'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_uploaded_file($_FILES['avatar']['tmp_name'])) {
$avatarname = check(strtolower($_FILES['avatar']['name']));
$avatarsize = getimagesize($_FILES['avatar']['tmp_name']);
$ext = strtolower(substr(strrchr($avatarname, '.'), 1));
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'png') {
if ($_FILES['avatar']['size'] > 0 && $_FILES['avatar']['size'] <= $config['avatar_weight']) {
if ($avatarsize[0] == $config['avatar_size'] && $avatarsize[1] == $config['avatar_size']) {
if ($uset['users_money'] >= $config['avatar_upload']) {
del_avatars($log);
move_uploaded_file($_FILES['avatar']['tmp_name'], ROOTPATH . '/upload/avatars/' . $log . '.' . $ext);
chmod( ROOTPATH . '/upload/avatars/' . $log . '.' . $ext, 0644);
$db->query("UPDATE ?_users SET `users_money` = (`users_money` - ?), `users_avatar` = ?
WHERE `users_login` = ?;", $config['avatar_upload'], '/upload/avatars/' . $log . '.' . $ext, $log);
del_vars('users_avatars');
$rows = $db->select("SELECT `users_login`, `users_avatar` FROM ?_users");
$arr = array();
foreach($rows as $row) $arr[$row['users_login']] = $row['users_avatar'];
set_vars('users_avatars', $arr);
$inSes->addMessage('Аватар успешно загружен!<br />' .
'C вашего счета списано ' . num2name($config['avatar_upload'], $config['money_name']), 'ok');
gen_red('avatars', '', RND);
}
else $inSes->addMessage('Ошибка! На вашем счете недостаточно средств!');
}
else $inSes->addMessage('Ошибка! Размер аватара должен быть ' . $config['avatar_size'] . 'x' . $config['avatar_size'] . ' px');
}
else $inSes->addMessage('Ошибка! Вес аватара должен быть не более чем ' . size($config['avatar_weight']) . '!');
}
else $inSes->addMessage('Ошибка! Разрешается загружать аватары только в формате .gif, .jpg или .png');
}
else $inSes->addMessage('Ошибка! Не удалось загрузить аватар!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Загрузка аватара');
echo '<div class="blocks"><table><tr>';
echo '<td style="width:33%"><a href="' . gen_uri('avatars', '', RND) . '">Выбрать</a></td>';
echo '<td style="width:33%"><a href="' . gen_uri('buy_avatars', '', RND) . '">Купить</a></td>';
echo '<td style="width:33%"><span>Загрузить</span></td>';
echo '</tr></table></div>';
echo '<div class="bl">В наличии: ' . num2name($uset['users_money'], $config['money_name']) . '<br /></div>';
if ($uset['users_money'] >= $config['avatar_upload']) {
$form = new cmsForm(gen_uri('upload_avatars', '', 'rnd=' . $_SESSION['token']), 'post', ' enctype="multipart/form-data"');
$form->addFile('Прикрепить аватар:', 'avatar', ' accept="image/gif"');
echo $form->Submit('Загрузить', 'submit');
unset($form);
}
else show_error('Недостаточное количество денег на счету для загрузки аватара!');
echo '<div class="bl">';
echo 'Cейчас ваш аватар: ' . user_avatars($log) . '<br />';
echo 'Стоимость загрузки аватара составляет ' . num2name($config['avatar_upload'], $config['money_name']) . '<br />';
echo 'Внимание! На загрузку аватаров установлены строгие ограничения<br />';
echo 'Размер аватара должен быть <b>' . $config['avatar_size'] . 'x' . $config['avatar_size'] . ' px</b>, ';
echo 'вес не более чем ' . size($config['avatar_weight']) . '<br />';
echo 'Расширение аватаров в формате .gif, .jpg, .png (в нижнем регистре)<br /></div>';
break;
endswitch;
echo show_link(gen_uri('setting', '', RND), 'Назад');
}
else {
show_header('Галерея аватаров');
show_login('Вы не авторизованы, чтобы изменить аватар, необходимо');
}
?>