- <?php
-
- // Уведомление о закрытии форума
- if ($system['downloads_module'] == '2' && !user_access('view_closed_modules')) {
- # Шапка модуля
- require_once(HOME .'/incfiles/header.php');
-
- echo '<div class="title">Технические работы</div>
- <div class="menu">
- '. output($system['downloads_module_about']) .'
- </div>';
-
- echo '<div class="block">
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- # ID папки
- $dir_id = num($_GET['dir_id']);
-
- # Проверка наличия папки с таким ID
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `id` = '$dir_id'"), 0) == 0) $dir_id = 0;
-
- // Создаем массив с данными папки
- if ($dir_id != 0) {
- # Массив с данными
- $dir = mysql_fetch_assoc(mysql_query("SELECT * FROM `downloads` WHERE `id` = '$dir_id' LIMIT 1"));
-
- $dir_path = $dir['path'];
- } else {
- $dir_path = '/';
- }
-
- // Удаление папки
- if (isset($_GET['delete_id']) && (!user_access('add_dir_downloads') || mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `id` = '". num($_GET['delete_id']) ."'"), 0) == 0)) {
- header('Location: /downloads/index.php?dir_id='. $dir_id);
- }
-
- // Удаление папки
- if (isset($_GET['delete_id']) && user_access('add_dir_downloads') && mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `id` = '". num($_GET['delete_id']) ."'"), 0) != 0 && isset($_POST['no'])) {
- header('Location: /downloads/index.php?dir_id='. $dir_id);
- }
-
- // Сортировка
- if (isset($_GET['sort'])) {
- # Фильтр
- $sort = txt($_GET['sort']);
-
- # Проверка формата
- if ($sort != 'name' && $sort != 'time') $err .= 'Неверный формат сортировки.<br />';
-
- // Сохраняем параметры
- if (!isset($err)) {
- # Записываем параметры в сессию
- $_SESSION['sort'] = $sort;
- }
- }
-
- # Заголовок модуля
- $system['page_title'] = ($dir_id != 0?$dir['name']:'Загруз-центр');
-
- # Шапка модуля
- require_once(HOME .'/incfiles/header.php');
-
- // Создание папки
- if (isset($_GET['add_dir']) && user_access('add_dir_downloads') && isset($_POST['add_dir'])) {
- # Отображаемое имя
- $view_name = txt($_POST['view_name']);
-
- # Имя на сервере
- $server_name = txt($_POST['server_name']);
-
- # Проверка ввода
- if (empty($view_name)) $err .= 'Не введено отображаемое имя<br />';
-
- # Проверка ввода
- if (empty($server_name)) $err .= 'Не введено имя на сервере<br />';
-
- # Проверка длины
- if (!empty($server_name) && (strlen($server_name) < 3 || strlen($server_name) > 64)) $err .= 'Неверная длина имени на сервере. Допустимо от 3 до 64 символов<br />';
-
- # Проверка длины
- if (!empty($view_name) && (strlen($view_name) < 3 || strlen($view_name) > 64)) $err .= 'Неверная длина отображаемого имени. Допустимо от 3 до 64 символов<br />';
-
- # Проверка допустимых символов
- if (!empty($server_name) && !preg_match("#^([A-z0-9\-\_])+$#ui", $server_name)) $err .= 'Запрещенные символы в имени на сервере. Разрешены символы A-z0-9-_<br />';
-
- # Проверка занятости
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `name` = '". input($view_name) ."' AND `server_name` = '". input($server_name) ."' AND `dir_id` = '$dir_id'"), 0) != 0) $err .= 'Папка с таким именем уже существует.<br />';
-
- if (!isset($err)) {
- $dir_path1 = './files/downloads'. $dir_path . $server_name;
- $dir_n = $dir_path . $server_name .'/';
-
- # Запрос в базу
- mysql_query("INSERT INTO `downloads` (`id`, `dir_id`, `path`, `type`, `name`, `server_name`, `time`, `user_id`, `file_ext`, `screen1`, `screen2`, `screen3`, `about`, `producer`, `year_release`, `rate_promob`, `loads`, `rate`) VALUES (NULL, '$dir_id', '$dir_n', '1', '$view_name', '$server_name', '". time() ."', '$user[id]', 'dir', '', '', '', '', '', '', '', '', '')");
-
- mkdir($dir_path1, 0777);
-
- echo '<div class="title">Добавление папки</div>
- <div class="menu">
- Папка успешно добавлена.
- </div>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
- }
-
- // Удаление папки
- if (isset($_POST['yes']) && user_access('add_dir_downloads') && isset($_GET['delete_id']) && mysql_result(mysql_query("SELECT * FROM `downloads` WHERE `id` = '". num($_GET['delete_id']) ."'"), 0) != 0 )
- {
- $path_delete = mysql_result(mysql_query("SELECT `path` FROM `downloads` WHERE `id` = '". num($_GET['delete_id']) ."'"), 0);
-
- mysql_query("DELETE FROM `downloads_files` WHERE `path` LIKE '%$path_delete%'");
- mysql_query("DELETE FROM `downloads` WHERE `path` LIKE '%$path_delete%'");
-
- rrmdir('./files/downloads'. $path_delete);
-
- echo '<div class="title">Удаление папки</div>
- <div class="menu">
- Папка со всем содержимым удалена.
- </div>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- // Изменение папки
- if (isset($_POST['edit']) && isset($_GET['edit_id']) && user_access('add_dir_downloads')) {
-
- # Название
- $name = txt($_POST['name']);
-
- if (empty($name)) $err .= 'Не введено отображаемое имя.<br />';
-
- # Проверка длины логина
- if (!empty($name) && (mb_strlen($name, 'utf-8') < 3 || mb_strlen($name, 'utf-8') > 64)) $err .= 'Неверная отображаемого имени. Допустимо от 3 до 64 символов.<br />';
-
- # Проверка занятости логина
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `dir_id` = '$dir_id' AND `name` = '". input($name) ."' AND `id` != '". num($_GET['edit_id']) ."'"), 0) != 0) $err .= 'Папка с таким именем уже существует.<br />';
-
- if (!isset($err)) {
- # Сохраняем данные
- mysql_query("UPDATE `downloads` SET `name` = '". input($name) ."' WHERE `id` = '". num($_GET['edit_id']) ."'");
-
- echo '<div class="title">Изменение папки</div>
- <div class="menu">
- Название папки успешно изменено.
- </div>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
- }
-
- // Создание файла
- if (isset($_GET['add_file']) && user_access('add_files_downloads') && isset($_POST['add_file'])) {
- # Отображаемое имя
- $name = txt($_POST['name']);
-
- # Имя на сервере
- $type = txt($_POST['type']);
-
- # Проверка ввода
- if (empty($name)) $err .= 'Не введено имя файла<br />';
-
- # Проверка ввода
- //if ($type != 'java' && $type != 'symbian' && $type != 'images' && $type != 'video' && $type != 'music') $err .= 'Неверный медиа-тип<br />';
-
- # Проверка длины
- if (!empty($name) && (strlen($name) < 3 || strlen($name) > 64)) $err .= 'Неверная длина имени файла. Допустимо от 3 до 64 символов<br />';
-
- # Проверка занятости
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `type` = '2' AND `name` = '". input($name) ."' AND `dir_id` = '$dir_id'"), 0) != 0) $err .= 'Файл с таким именем уже существует.<br />';
-
- if (!isset($err)) {
- # Запрос в базу
- mysql_query("INSERT INTO `downloads` (`id`, `dir_id`, `path`, `type`, `name`, `server_name`, `time`, `user_id`, `file_ext`, `screen1`, `screen2`, `screen3`, `about`, `producer`, `year_release`, `rate_promob`, `loads`, `rate`) VALUES (NULL, '$dir_id', '', '2', '". input($name) ."', '', '". time() ."', '$user[id]', '". input($type) ."', '', '', '', '', '', '', '', '', '')");
-
- $dir_path1 = './files/downloads'. $dir_path . mysql_insert_id() .'/';
- $dir_n = $dir_path . mysql_insert_id() .'/';
-
- mkdir($dir_path1, 0777);
-
- mysql_query("UPDATE `downloads` SET `path` = '$dir_n' WHERE `id` = '". mysql_insert_id() ."'");
-
- echo '<div class="title">Добавление файла</div>
- <div class="menu">
- Файл успешно добавлен.
- </div>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
- }
-
- # Вывод ошибок
- error($err);
-
- // Форма создания папки
- if (isset($_GET['add_dir']) && user_access('add_dir_downloads')) {
- echo '<div class="title">Добавление папки</div>
- <form method="post" action="/downloads/index.php?dir_id='. $dir_id .'&add_dir">
- <div class="menu">
- Отображаемое имя:<br />
- <input type="text" name="view_name" /><br />
- Имя на сервере:<br />
- <input type="text" name="server_name" /><br />
- <input type="submit" name="add_dir" value="Создать" />
- </div>
- </form>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- // Удаление папки
- if (isset($_GET['delete_id']) && user_access('add_dir_downloads')) {
- echo '<div class="title">Удаление папки</div>
- <form method="post" action="/downloads/index.php?dir_id='. $dir_id .'&delete_id='. num($_GET['delete_id']) .'">
- <div class="menu">
- Подтвержаете удаление папки?<br />
- <input type="submit" name="yes" value="Да" /> <input type="submit" name="no" value="Нет" />
- </div>
- </form>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- // Изменение папки
- if (isset($_GET['edit_id']) && user_access('add_dir_downloads')) {
- # Массив с инфой об объекте
- $obj = mysql_fetch_assoc(mysql_query("SELECT * FROM `downloads` WHERE `id` = '". num($_GET['edit_id']) ."' LIMIT 1"));
-
- echo '<div class="title">Изменение папки</div>
- <form method="post" action="/downloads/index.php?dir_id='. $dir_id .'&edit_id='. num($_GET['edit_id']) .'">
- <div class="menu">
- Отображаемое имя:<br />
- <input type="text" name="name" value="'. output($obj['name']) .'" /><br />
- <input type="submit" name="edit" value="Изменить" />
- </div>
- </form>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- // Форма создания файла
- if (isset($_GET['add_file']) && user_access('add_files_downloads')) {
- echo '<div class="title">Добавление файла</div>
- <form method="post" action="/downloads/index.php?dir_id='. $dir_id .'&add_file">
- <div class="menu">
- Имя файла:<br />
- <input type="text" name="name" /><br />
- Медиа-тип:<br />
- <select name="type" size="1">
- <option value="java">Java</option>
- <option value="symbian">Symbian</option>
- <option value="images">Images</option>
- <option value="video">Video</option>
- <option value="music">Music</option>
- <option value="zip">Архив</option>
- <option value="file">Другой</option>
- </select><br />
- <input type="submit" name="add_file" value="Создать" />
- </div>
- </form>';
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- » <a href="/downloads/index.php?dir_id='. $dir_id .'">Вернуться в папку</a><br />
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
- }
-
- echo '<div class="title">'. ($dir_id != 0?$dir['name']:'Загруз-центр') .'</div>';
-
- # Количество файлов/папок
- $k_downloads = mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `dir_id` = '$dir_id'"), 0);
-
- # Старт навигации
- nav_start($k_downloads, 10);
-
- if ($k_downloads == 0) {
- echo '<div class="menu">Папка пуста.</div>';
- } else {
- # Сортировка
- echo '<div class="menu">
- Сортировка: '. ($_SESSION['sort'] == 'name'?'имя':'<a href="/downloads/index.php?dir_id='. $dir_id .'&sort=name">имя</a>') .'/'. ($_SESSION['sort'] == 'time'?'время':'<a href="/downloads/index.php?dir_id='. $dir_id .'&sort=time">время</a>') .'
- </div>';
-
- # Проверка наличия файлов в папке
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `dir_id` = '$dir_id' AND `type` = '2'"), 0) > 0) {
- // Запрос для вывода файлов
- if ($_SESSION['sort'] == 'name') $sql_downloads = mysql_query("SELECT * FROM `downloads` WHERE `dir_id` = '$dir_id' ORDER BY type ASC, name ASC LIMIT $start, 10");
- else if ($_SESSION['sort'] == 'time') $sql_downloads = mysql_query("SELECT * FROM `downloads` WHERE `dir_id` = '$dir_id' ORDER BY type ASC, time DESC, name ASC LIMIT $start, 10");
- else $sql_downloads = mysql_query("SELECT * FROM `downloads` WHERE `dir_id` = '$dir_id' ORDER BY type ASC, time DESC, name ASC LIMIT $start, 10");
- } else {
- # Запрос для вывода папок
- $sql_downloads = mysql_query("SELECT * FROM `downloads` WHERE `dir_id` = '$dir_id' ORDER BY type ASC, name ASC LIMIT $start, 10");
- }
-
- # Цикл извлечения данных
- while ($download = mysql_fetch_assoc($sql_downloads)) {
- if ($download['type'] == 1) {
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `path` LIKE '%$download[path]%' AND `id` != '$download[id]' AND `type` = '2' AND `time` > '". (time()-3600*24*3) ."'"), 0) != 0) $new1 = '<span class="green">+'. mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `path` LIKE '%$download[path]%' AND `id` != '$download[id]' AND `type` = '2' AND `time` > '". (time()-3600*24*3) ."'"), 0) .'</span>';
- else $new1 = '';
-
- if (mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `path` LIKE '%$download[path]%' AND `id` != '$download[id]' AND `type` = '2' AND `time` > '". (time()-3600*24*7) ."'"), 0) != 0) $new2 = '<span class="red">+'. mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `path` LIKE '%$download[path]%' AND `id` != '$download[id]' AND `type` = '2' AND `time` > '". (time()-3600*24*7) ."'"), 0) .'</span>';
- else $new2 = '';
-
- if ($new1 != NULL || $new2 != NULL) $new3 = $new1 . $new2;
- else $new3 = '';
- }
-
- echo '<div class="menu"><img src="/design/icons/downloads/'. ($download['file_ext'] != NULL?$download['file_ext']:'file') .'.png" alt="'. ($download['type'] == 1?'Папка':'Файл') .'"> <a href="/downloads/'. ($download['type'] == 1?'index.php?dir_id='. $download['id']:'file.php?file_id='. $download['id']) .'">'. $download['name'] .'</a>'. ($download['type'] == 2?' ('. vtime($download['time']) .')':' ('. mysql_result(mysql_query("SELECT COUNT(*) FROM `downloads` WHERE `path` LIKE '%$download[path]%' AND `id` != '$download[id]' AND `type` = '2'"), 0) .')'. ($new3 != NULL?' '. $new3:NULL)) . ($download['type'] == 1 && user_access('add_dir_downloads')?' [<a href="/downloads/index.php?dir_id='. $dir_id .'&edit_id='. $download['id'] .'">изм</a>] [<a href="/downloads/index.php?dir_id='. $dir_id .'&delete_id='. $download['id'] .'">уд</a>]':NULL) .'</div>';
- }
-
- # Вывод навигации
- view_nav('?dir_id='. $dir_id .'&');
- }
-
- echo '<div class="menu"><span class="red"><span class="small_info">+X - Новые за неделю</span></span><br /><span class="green"><span class="small_info">+X - Новые за 3 дня</span></span><br /></div>';
-
- if (user_access('add_dir_downloads') || user_access('add_files_downloads')) {
- echo '<div class="block">
- '. (user_access('add_files_downloads')?'» <a href="/downloads/index.php?dir_id='. $dir_id .'&add_file">Добавить файл</a><br />':NULL) .'
- '. (user_access('add_dir_downloads')?'» <a href="/downloads/index.php?dir_id='. $dir_id .'&add_dir">Добавить папку</a>':NULL) .'
- </div>';
- }
-
- # Имя родительской папки
- if ($dir['dir_id'] != 0) $rod_name = mysql_result(mysql_query("SELECT `name` FROM `downloads` WHERE `id` = '$dir[dir_id]'"), 0);
- else if ($dir['dir_id'] == 0 && $dir_id != 0) $rod_name = 'Загруз-центр';
-
- echo '<div class="block">
- '. (isset($rod_name)?'» <a href="/downloads/index.php?dir_id='. $dir['dir_id'] .'">'. $rod_name .'</a><br />':NULL) .'
- » <a href="/">На главную</a>
- </div>';
-
- # Ноги модуля
- require_once(HOME .'/incfiles/footer.php');
-
- ?>