View file modules/user/avatar.php

File size: 10.87Kb
<?php

// проверка наличия авторизации
if (!isset($user))
{
    # Перенаправляем на главную
    header('Location: /');
}

# Заголовок модуля
$system['page_title'] = 'Аватар';

# Шапка модуля
require_once(HOME .'/incfiles/header.php');

// обработка добавления
if (isset($_FILES['avatar']))
{
    // ищем верный формат изображения
    if (preg_match('/\.jpe?g$/i', $_FILES['avatar']['name']) && $img=imagecreatefromjpeg($_FILES['avatar']['tmp_name']))
    {
        // обработка изображения
        if (imagesx($img) > 100 || imagesy($img) > 100)
        {
            $img_x = imagesx($img);
            $img_y = imagesy($img);

            // меняем размер на 100х100
            if ($img_x == $img_y)
            {
                $img_w = 100; // ширина
                $img_h = 100; // высота
            }
            else if ($img_x > $img_y)
            {
                $var = $img_x / $img_y;
                $img_w = 100;
                $img_h = ceil($img_w / $var);
            }
            else
            {
                $var = $img_y / $img_x;
                $img_h = 100;
                $img_w = ceil($img_h / $var);
            }

            # записываем изображение
            $avatar=imagecreatetruecolor($img_w, $img_h);
            imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
            imagedestroy($img);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
            imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.jpg', 100);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            imagedestroy($avatar);

            # Уведомление
            $add_avatar = true;
        }
        else
        {
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');

            # или просто копируем изображение
            copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.jpg');
            # Уведомление
            $add_avatar = true;
        }
    }
    else if (preg_match('/\.gif$/i', $_FILES['avatar']['name']) && $img=imagecreatefromgif($_FILES['avatar']['tmp_name']))
    {
        // обработка изображения
        if (imagesx($img) > 100 || imagesy($img) > 100)
        {
            $img_x = imagesx($img);
            $img_y = imagesy($img);

            // меняем размер на 100х100
            if ($img_x == $img_y)
            {
                $img_w = 100; // ширина
                $img_h = 100; // высота
            }
            else if ($img_x > $img_y)
            {
                $var = $img_x / $img_y;
                $img_w = 100;
                $img_h = ceil($img_w / $var);
            }
            else
            {
                $var = $img_y / $img_x;
                $img_h = 100;
                $img_w = ceil($img_h / $var);
            }

            # записываем изображение
            $avatar=imagecreatetruecolor($img_w, $img_h);
            imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
            imagedestroy($img);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
            imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.gif', 100);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            imagedestroy($avatar);

            # Уведомление
            $add_avatar = true;
        }
        else
        {
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');

            # или просто копируем изображение
            copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.gif');
            # Уведомление
            $add_avatar = true;
        }
    }
    else if (preg_match('/\.png$/i', $_FILES['avatar']['name']) && $img=imagecreatefrompng($_FILES['avatar']['tmp_name']))
    {
        // обработка изображения
        if (imagesx($img) > 100 || imagesy($img) > 100)
        {
            $img_x = imagesx($img);
            $img_y = imagesy($img);

            // меняем размер на 100х100
            if ($img_x == $img_y)
            {
                $img_w = 100; // ширина
                $img_h = 100; // высота
            }
            else if ($img_x > $img_y)
            {
                $var = $img_x / $img_y;
                $img_w = 100;
                $img_h = ceil($img_w / $var);
            }
            else
            {
                $var = $img_y / $img_x;
                $img_h = 100;
                $img_w = ceil($img_h / $var);
            }

            # записываем изображение
            $avatar=imagecreatetruecolor($img_w, $img_h);
            imagecopyresampled($avatar, $img, 0, 0, 0, 0, $img_w, $img_h, $img_x, $img_y);
            imagedestroy($img);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');
            imagejpeg($avatar, HOME .'/files/avatars/'. $user['id'] .'.png', 100);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            imagedestroy($avatar);

            # Уведомление
            $add_avatar = true;
        }
        else
        {
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
            @chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
            @unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');

            # или просто копируем изображение
            copy($_FILES['avatar']['tmp_name'], HOME .'/files/avatars/'. $user['id'] .'.png');
            # Уведомление
            $add_avatar = true;
        }
    }
    else
    {
        $err .= 'Неверный формат изображения<br />';
    }
}

// проверка необходимости уведомления
if ($add_avatar == true)
{
    # Выводим уведомление
    echo '<div class="title">Добавление аватара</div>
    <div class="menu">
    Аватар успешно добавлен
    </div>';

    echo '<div class="block">
    &raquo; <a href="/user/avatar.php">Управление аватаром</a><br />
    &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
}

// удаление аватара
if (isset($_GET['delete']))
{
    @chmod(HOME .'/files/avatars/'. $user['id'] .'.gif', 0777);
		@chmod(HOME .'/files/avatars/'. $user['id'] .'.png', 0777);
		@chmod(HOME .'/files/avatars/'. $user['id'] .'.jpg', 0777);
		@unlink(HOME .'/files/avatars/'. $user['id'] .'.gif');
		@unlink(HOME .'/files/avatars/'. $user['id'] .'.png');
		@unlink(HOME .'/files/avatars/'. $user['id'] .'.jpg');

		echo '<div class="title">Удаление аватара</div>
    <div class="menu">
    Ваш аватар успешно удален.
    </div>';

    echo '<div class="block">
    &raquo; <a href="/user/avatar.php">Управление аватаром</a><br />
    &raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
}

error($err);

# Подключаем библиотеку для аватара
require_lib('avatar.php');

// проверяем существование аватара
if (file_exists(HOME .'/files/avatars/'. $user['id'] .'.png') || file_exists(HOME .'/files/avatars/'. $user['id'] .'.jpg') || file_exists(HOME .'/files/avatars/'. $user['id'] .'.gif'))
{
    echo '<div class="title">Текущий аватар</div>
    <div class="menu">
    '. avatar($user['id']) .'
    &raquo; <a href="/user/avatar.php?delete">Удалить аватар</a>
    </div>';
}

echo '<div class="title">Добавить аватар</div>
<form method="post" action="/user/avatar.php" enctype="multipart/form-data">
<div class="menu">
Выберите изображение:<br />
<input type="file" name="avatar" accept="image/*, image/gif, image/png, image/jpeg" /><br />
<span class="small_info">* Поддерживаются форматы: gif, png, jpg</span><br />
<input type="submit" value="Добавить" />
</div>
</form>';

echo '<div class="block">
&raquo; <a href="/user/cabinet.php">Личный кабинет</a><br />
&raquo; <a href="/">На главную</a>
</div>';

# Ноги модуля
require_once(HOME .'/incfiles/footer.php');

?>