View file modules/loads/file.php

File size: 16.11Kb
<?php

// Уведомление о закрытии загруз-центра
if ($system['downloads_module'] == '2' && $user['level'] < 14) {
  # Шапка модуля
  require_once(HOME .'/incfiles/header.php');
  
  echo '<div class="title">Технические работы</div>
  <div class="menu">
  '. output($system['downloads_module_about']) .'
  </div>';
  
  echo '<div class="block">
  &raquo; <a href="/">На главную</a>
  </div>';
  
  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

if (isset($_GET['file_id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `loads` WHERE `id` = '". num($_GET['file_id']) ."'"), 0) == 0) $dir_id = 0;
else $dir_id = num($_GET['file_id']);

if ($dir_id == 0) {
	header('Location: /loads/index.php');
}

# Массив с данными
$file = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads` WHERE `id` = '$dir_id' LIMIT 1"));

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

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

if (isset($_GET['edit']) && isset($user) && ($user['level'] >= 14 || $user['level'] == 10) && isset($_POST['edit'])) {
	# директория файлов
	$file_dir = HOME .'/files/loads_screens/';

	if ($_FILES['screen1']['tmp_name']) {
		# Инфа о файле
		$patch = pathinfo($_FILES['screen1']['name']);

		// Проверка верности расширения
		if (!in_array($patch['extension'], explode(';', $system['img_files']))) $err .= 'Запрещенное расширение скриншотов.<br />';

		if (!isset($err)) {
			# Уникальное имя файла
    		$key1 = md5('screen1' . time());
    		$key1 = substr($key1, 0, 15) .'.'. $patch['extension'];

    		if ($file['screen1'] != NULL) unlink($file_dir . $file['screen1']);

			# Копирование файла
        	move_uploaded_file($_FILES['screen1']['tmp_name'], $file_dir . $key1);

        	# Сохраняем данные
        	mysql_query("UPDATE `loads` SET `screen1` = '". $key1 ."' WHERE `id` = '$dir_id' LIMIT 1");
		}
 	}

	if ($_FILES['screen2']['tmp_name']) {
		# Инфа о файле
		$patch = pathinfo($_FILES['screen2']['name']);

		// Проверка верности расширения
		if (!in_array($patch['extension'], explode(';', $system['img_files']))) $err .= 'Запрещенное расширение скриншотов.<br />';

		if (!isset($err)) {
			# Уникальное имя файла
    		$key2 = md5('screen2' . time());
    		$key2 = substr($key2, 0, 15) .'.'. $patch['extension'];

    		if ($file['screen2'] != NULL) unlink($file_dir . $file['screen2']);

			# Копирование файла
        	move_uploaded_file($_FILES['screen2']['tmp_name'], $file_dir . $key2);

        	# Сохраняем данные
        	mysql_query("UPDATE `loads` SET `screen2` = '". $key2 ."' WHERE `id` = '$dir_id' LIMIT 1");
		}
	}

	if ($_FILES['screen3']['tmp_name']) {
		# Инфа о файле
		$patch = pathinfo($_FILES['screen3']['name']);

		// Проверка верности расширения
		if (!in_array($patch['extension'], explode(';', $system['img_files']))) $err .= 'Запрещенное расширение скриншотов.<br />';

		if (!isset($err)) {
			# Уникальное имя файла
    		$key3 = md5('screen3' . time());
    		$key3 = substr($key3, 0, 15) .'.'. $patch['extension'];

    		if ($file['screen3'] != NULL) unlink($file_dir . $file['screen3']);

			# Копирование файла
        	move_uploaded_file($_FILES['screen3']['tmp_name'], $file_dir . $key3);

        	# Сохраняем данные
        	mysql_query("UPDATE `loads` SET `screen3` = '". $key3 ."' WHERE `id` = '$dir_id' LIMIT 1");
		}
 	}

 	$rate = num($_POST['rate']);

	if ($rate != 0 && $rate != 1 && $rate != 2 && $rate != 3 && $rate != 4 && $rate != 5 && $rate != 6 && $rate != 7 && $rate != 8 && $rate != 9 && $rate != 10) $err .= 'Неверный формат оценки.<br />';

    $about = txt($_POST['about']);

    # Проверка длины логина
    if (!empty($about) && (strlen_rus($about) < 3 || strlen_rus($about) > 7000)) $err .= 'Неверная длина описания. Допустимо от 3 до 7000 символов<br />';

    if (!isset($err)) {
    	# Сохраняем данные
        mysql_query("UPDATE `loads` SET `about` = '". input($about) ."', `rate` = '$rate' WHERE `id` = '$dir_id' LIMIT 1");

        echo '<div class="title">Изменение информации</div>
        <div class="menu">
        Информация успешно изменена.
        </div>';

		echo '<div class="block">
    	&raquo; <a href="/loads/file.php?file_id='. $dir_id .'">Вернуться к объекту</a><br />
		&raquo; <a href="/">На главную</a>
		</div>';

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

// Добавление файлов
if (isset($_GET['add_files']) && isset($user) && ($user['level'] >= 14 || $user['level'] == 10) && isset($_POST['add'])) {
	# Кол-во добавляемых файлов
	$kol_files_n = num($_POST['kol_files_n']);

	# Директория файлов
	$file_dir = HOME .'/files/loads/';

	// Цикл сохраняющий файлы
	for ($i=0;$i<$kol_files_n;$i++) {
    	# Номер сохраняемого файла
    	$num_file = $i + 1;

		// Проверяем отправку файла
		if ($_FILES['file_'. $num_file]['tmp_name']) {
			# Имя файла
			$file_name = txt($_POST['name_'. $num_file]);

			# Проверяем длину имени
			if (!empty($file_name) && (strlen_rus($file_name) < 3 || strlen_rus($file_name) > 64)) $err .= 'Неверная длина файла номер '. $num_file .'. Допустимо от 3 до 60 символов.<br />';

			# Информация о файле
			$patch = pathinfo($_FILES['file_'. $num_file]['name']);

			// Проверка верности расширения
			if (!in_array($patch['extension'], explode(';', $system['files_ext']))) $err .= 'Запрещенное расширение файла номер '. $num_file .'.<br />';

			// Сохранение файла
			if (!isset($err)) {
				# Уникальное имя файла
    		$key = md5(str_replace('.'. $patch['extension'], '', $patch['basename']) . $file['id']);
				$name = str_replace('.'. $patch['extension'], '', $patch['basename']) .'_'. substr($key, 0, 5) .'.'. $patch['extension'];

				if (file_exists($file_dir . $name)) $err .= 'Такой же файл, как и файл номер '. $num_file .' уже существует на сервере.<br />';
				
				if (mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_files` WHERE `server_name` = '$name' AND `file_id` = '$file[id]'"), 0) != 0) $err .= 'Такой же файл, как и файл номер '. $num_file .' уже существует в базе данных.<br />';

				if (!isset($err)) {
					# Копирование файла
        	move_uploaded_file($_FILES['file_'. $num_file]['tmp_name'], $file_dir . $name);
        	
        	# Имя файла
        	if (empty($file_name)) $file_name = str_replace('.'. $patch['extension'], '', $patch['basename']);

        	# Сохраняем данные
        	mysql_query("INSERT INTO `loads_files` SET `file_id` = '$file[id]', `time` = '". time() ."', `name` = '". input($file_name) ."', `size` = '". $_FILES['file_'. $num_file]['size'] ."', `server_name` = '$name', `ext` = '$patch[extension]'");
				}
			}
 		}
	}

	if (!isset($err)) {
    # Вывод уведомления
    echo '<div class="title">Добавление файлов</div>
    <div class="menu">
    Файлы успешно добавлены.
    </div>';
          
    echo '<div class="block">
    &raquo; <a href="/loads/file.php?file_id='. $dir_id .'">Вернуться к объекту</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

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

error($err);

# Массив с данными
$file = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads` WHERE `id` = '$dir_id' LIMIT 1"));

// изменение объекта
if (isset($_GET['edit']) && isset($user) && ($user['level'] >= 14 || $user['level'] == 10)) {
	echo '<div class="title">Изменение информации</div>
	<form enctype="multipart/form-data" method="post" method="post" action="/loads/file.php?file_id='. $dir_id .'&amp;edit">
	'. (!empty($file['screen1'])?'<div class="menu">Скриншот 1:<br /><img src="/files/loads_screens/'. $file['screen1'] .'" alt="" width="100" /><br /><input type="file" name="screen1" accept="image/*, image/gif, image/png, image/jpeg" /></div>':'<div class="menu">Скриншот 1:<br /><input type="file" name="screen1" accept="image/*, image/gif, image/png, image/jpeg" /></div>') .'
	'. (!empty($file['screen2'])?'<div class="menu">Скриншот 2:<br /><img src="/files/loads_screens/'. $file['screen2'] .'" alt="" width="100" /><br /><input type="file" name="screen2" accept="image/*, image/gif, image/png, image/jpeg" /></div>':'<div class="menu">Скриншот 2:<br /><input type="file" name="screen2" accept="image/*, image/gif, image/png, image/jpeg" /></div>') .'
	'. (!empty($file['screen3'])?'<div class="menu">Скриншот 3:<br /><img src="/files/loads_screens/'. $file['screen3'] .'" alt="" width="100" /><br /><input type="file" name="screen3" accept="image/*, image/gif, image/png, image/jpeg" /></div>':'<div class="menu">Скриншот 3:<br /><input type="file" name="screen3" accept="image/*, image/gif, image/png, image/jpeg" /></div>') .'
    <div class="menu">
    Описание:<br />
    <textarea name="about" rows="4" cols="20">'. $file['about'] .'</textarea><br />
    Оценка Promob:<br />
    <select name="rate" size="1">
	<option value="0"'. ($file['rate'] == 0?' selected="selected"':NULL) .'>0</option>
	<option value="1"'. ($file['rate'] == 1?' selected="selected"':NULL) .'>1</option>
	<option value="2"'. ($file['rate'] == 2?' selected="selected"':NULL) .'>2</option>
	<option value="3"'. ($file['rate'] == 3?' selected="selected"':NULL) .'>3</option>
	<option value="4"'. ($file['rate'] == 4?' selected="selected"':NULL) .'>4</option>
	<option value="5"'. ($file['rate'] == 5?' selected="selected"':NULL) .'>5</option>
	<option value="6"'. ($file['rate'] == 6?' selected="selected"':NULL) .'>6</option>
	<option value="7"'. ($file['rate'] == 7?' selected="selected"':NULL) .'>7</option>
	<option value="8"'. ($file['rate'] == 8?' selected="selected"':NULL) .'>8</option>
	<option value="9"'. ($file['rate'] == 9?' selected="selected"':NULL) .'>9</option>
	<option value="10"'. ($file['rate'] == 10?' selected="selected"':NULL) .'>10</option>
	</select><br />
	<input type="submit" name="edit" value="Сохранить" />
	</div>
	</form>';

	echo '<div class="block">
    &raquo; <a href="/loads/file.php?file_id='. $dir_id .'">Вернуться к объекту</a><br />
	&raquo; <a href="/">На главную</a>
	</div>';

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

// изменение объекта
if (isset($_GET['add_files']) && isset($user) && ($user['level'] >= 14 || $user['level'] == 10)) {
	# Кол-во форм для вывода
	if (num($_POST['kol_files']) != 0) $kol_files = num($_POST['kol_files']);
	else $kol_files = 1;

	echo '<div class="title">Добавление файлов</div>
	<form enctype="multipart/form-data" method="post" method="post" action="/downloads/file.php?file_id='. $dir_id .'&amp;add_files">
	<div class="menu">
	Кол-во файлов: <input type="text" name="kol_files" size="3" value="'. $kol_files .'" /> <input type="submit" value="&gt;" />
	</div>';


	// Цикл выводящий формы
	for ($i=0;$i<$kol_files;$i++) {
		# Номер файла
		$num_file = $i + 1;

		# Вывод формы
		echo '<div class="menu">
		Название '. $num_file .':<br />
		<input type="text" name="name_'. $num_file .'" /><br />
		Файл '. $num_file .':<br />
		<input type="file" name="file_'. $num_file .'" />
		</div>';
	}

	echo '<div class="menu">
  <input type="submit" name="add" value="Загрузить" />
  </div>
  <input type="hidden" name="kol_files_n" value="'. $kol_files .'" checked />
	</form>';

	echo '<div class="block">
    &raquo; <a href="/loads/file.php?file_id='. $dir_id .'">Вернуться к объекту</a><br />
	&raquo; <a href="/">На главную</a>
	</div>';

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

echo '<div class="title">'. $file['name'] .'</div>
<div class="menu">';

if (empty($file['screen1']) && empty($file['screen2']) && empty($file['screen3'])) {
	echo 'Скриншотов нет.';
}
else if (!empty($file['screen1']) && !isset($_GET['screen'])) {
	echo '<img src="/files/loads_screens/'. $file['screen1'] .'" alt="" width="100" /><br />Скриншоты: [1]'. (!empty($file['screen2'])?', <a href="/loads/file.php?file_id='. $file['id'] .'&amp;screen=2">2</a>':NULL) . (!empty($file['screen3'])?', <a href="/loads/file.php?file_id='. $file['id'] .'&amp;screen=3">3</a>':NULL);
}
else if (isset($_GET['screen']) && $_GET['screen'] == 2 && !empty($file['screen2'])) {
	echo '<img src="/files/loads_screens/'. $file['screen2'] .'" alt="" width="100" /><br />Скриншоты: <a href="/loads/file.php?file_id='. $file['id'] .'">1</a>, [2]'. (!empty($file['screen3'])?', <a href="/loads/file.php?file_id='. $file['id'] .'&amp;screen=3">3</a>':NULL);
}
else if (isset($_GET['screen']) && $_GET['screen'] == 3 && !empty($file['screen3'])) {
	echo '<img src="/files/loads_screens/'. $file['screen3'] .'" alt="" width="100" /><br />Скриншоты: <a href="/loads/file.php?file_id='. $file['id'] .'">1</a>, <a href="/loads/file.php?file_id='. $file['id'] .'&amp;screen=2">2</a>, [3]';
}
else {
	echo 'Скриншотов нет.';
}

echo '</div>
<div class="menu">
Добавлен: '. vtime($file['time']) .'<br />
Скачиваний: '. $file['loads'] .'
</div>
<div class="menu">
Описание: '. ($file['about'] != NULL?output($file['about']):'нет.') .'
</div>
<div class="menu">
Оценка Promob: '. ($file['rate'] == 0?'не оценен.':$file['rate'] .' из 10') .'
</div>';

// Вывод файлов
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `loads_files` WHERE `file_id` = '$file[id]'"), 0) == 0) echo '<div class="menu">Файлов нет.</div>';
else {
  echo '<div class="menu">Скачать:</div>';

  // Цикл вывода
  $sql_files = mysql_query("SELECT * FROM `loads_files` WHERE `file_id` = '$file[id]' ORDER BY time DESC");
  
  while ($file_info = mysql_fetch_assoc($sql_files)) {
    echo '<div class="menu">'. (isset($user) && $settings['img_site'] == 2?'['. $file_info['ext'] .'] ':'<img src="/design/icons/files/'. $file_info['ext'] .'.png" alt="['. $file_info['ext'] .']" /> ') .'<a href="/loads/load_file.php?file_id='. $file_info['id'] .'">'. $file_info['name'] .'</a>'. ($file_info['ext'] == 'jar'?' [<a href="/loads/get_jad.php?file_id='. $file_info['id'] .'">JAD</a>]':NULL) .' ('. size($file_info['size']) .')</div>';
  }
}


echo '<div class="block">
'. ($file['dir_id'] > 0?'&raquo; <a href="/loads/index.php?dir_id='. $file['dir_id'] .'">'. mysql_result(mysql_query("SELECT `name` FROM `loads` WHERE `id` = '$file[dir_id]'"), 0) .'</a><br />':'&raquo; <a href="/loads/">В загрузки</a><br />') .'
&raquo; <a href="/">На главную</a>
</div>';

if (isset($user) && ($user['level'] >= 14 || $user['level'] == 10)) {
	echo '<div class="block">&raquo; <a href="/loads/file.php?file_id='. $dir_id .'&amp;edit">Изменить информацию</a><br />
	&raquo; <a href="/loads/file.php?file_id='. $dir_id .'&amp;add_files">Добавить файлы</a></div>';
}

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

?>