Просмотр файла panel/loads.php

Размер файла: 10.79Kb
<?php
// by mides, 1da.su

require_once '../system/sys.php';
require_once '../system/auth_a.php';
require_once '../system/header.php';

if ($u['access'] == 1) header('location: ./');
if ($u['access'] == 2) header('location: ../loads.php?act=moderate');

switch ($act) {
	default:
		tp('Загруз-центр');
		if (isset($_SESSION['info'])) echo '<b>'.$_SESSION['info'].'</b><br />'; unset($_SESSION['info']);
		$cats_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
		while ($cat = mysql_fetch_assoc($cats_r)) {
			echo '<a href="../loads.php?act=cat&amp;id='.$cat['id'].'">'.$cat['name'].'</a> (<a href="?act=cat_edit&amp;id='.$cat['id'].'">ред</a>)<br />';
			$subcats_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id_cat` = '$cat[id]' ORDER BY `name`");
			while ($subcat = mysql_fetch_assoc($subcats_r)) {
				echo '- <a href="../loads.php?act=subcat&amp;id='.$subcat['id'].'">'.$subcat['name'].'</a> (<a href="?act=subcat_edit&amp;id='.$subcat['id'].'">ред</a>)<br />';
			}
		}
		echo '<br /><a href="?act=file_add">Добавить файл</a><br />
		<a href="?act=file_multiadd">Добавить несколько</a><br />
		<a href="../loads.php?act=moderate">Модерировать</a><br />
		
		<br/>
		<form action="?act=cat_add" method="post" name="form">
		<select name="cat">
		<option value="0">Главная</option>';
		$cats_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
		while ($cat = mysql_fetch_assoc($cats_r)) {
			echo '<option value="'.$cat['id'].'">'.$cat['name'].'</option>';	
		}
		echo '</select><br />
		Название (под)раздела:<br/><input name="name" type="text" maxlength="50" /><br />
		<input name="submit" type="submit" value="Добавить"></form>';
		nav('./');
	break;
	
	case 'cat_add':
		if ($_POST['name']) {
			$cat = abs(intval($_POST['cat']));
			$name = check($_POST['name']);
			if ($cat > 0) {
				$catn = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `loads_cats` WHERE `id` = '$cat'"));
				$path = str_to_en($catn['name']).'_'.str_to_en($name);
				$path = str_replace(' ', '_', $path);
				$path = str_replace('/', '-', $path);
				mkdir('../inc/loads/'.$path, 0777);
				mysql_query("INSERT INTO `loads_subcats` SET `id_cat` = '$cat', `name` = '$name', `path` = '$path'");
			} else {
				mysql_query("INSERT INTO `loads_cats` SET `name` = '$name'");
			}
		}
		header('location: ?');
	break;
	
	case 'cat_edit':
		$cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_cats` WHERE `id` = '$id'"));
		if ($cat['id']) {
			if (isset($_GET['ok'])) {
				if ($_POST['del']) {
					if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads_subcats` WHERE `id_cat` = '$id'"))) {
						mysql_query("DELETE FROM `loads_cats` WHERE `id` = '$id'");
						header('location: ?');
						exit;
					} else {
						error('Удалите все подразделы раздела "'.$cat['name'].'"');
					}
				} else {
					if ($_POST['name']) {
						$name = check($_POST['name']);
						mysql_query("UPDATE `loads_cats` SET `name` = '$name' WHERE `id` = '$id'");
						header('location: ?');
						exit;
					} else {
						header('location: ?act=cat_edit&id='.$id);
						exit;
					}
				}
			} else {
				tp('Редактировать раздел');
				echo '<form action="?act=cat_edit&amp;id='.$id.'&amp;ok=1" method="post">
				Название:<br /><input name="name" type="text" maxlength="50" value="'.$cat['name'].'" /><br />
				<input name="del" type="checkbox" value="1" /> удалить<br />
				<input name="submit" type="submit" value="Ok" />
				</form>';
			}
		} else {
			error('Раздел не существует.');
		}
		nav('?');
	break;
	
	case 'subcat_edit':
		$subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$id'"));
		if ($subcat['id']) {
			if (isset($_GET['ok'])) {
				if ($_POST['del']) {
					$files = mysql_query("SELECT `file` FROM `loads` WHERE `id_subcat` = '$id'");
					while ($file = mysql_fetch_assoc($files)) {
						unlink('../inc/loads/'.$subcat['path'].'/'.$file['file']);
					}
					$rmdir = rmdir('../inc/loads/'.$subcat['path']);
					if ($rmdir == 1) {
						mysql_query("DELETE FROM `loads_subcats` WHERE `id` = '$id'");
						$_SESSION['info'] = 'Подраздел "'.$subcat['name'].'" удален.';
					} else {
						$_SESSION['info'] = 'Произошла ошибка.';
					}
					header('location: ?');
					exit;
				} else {
					if ($_POST['name']) {
						$name = check($_POST['name']);
						mysql_query("UPDATE `loads_subcats` SET `name` = '$name' WHERE `id` = '$id'");
						header('location: ?');
						exit;
					} else {
						header('location: ?act=subcat_edit&id='.$id);
						exit;
					}
				}
			} else {
				tp('Редактировать подраздел');
				echo '<form action="?act=subcat_edit&amp;id='.$id.'&amp;ok=1" method="post">
				Название:<br /><input name="name" type="text" maxlength="50" value="'.$subcat['name'].'" /><br />
				<input name="del" type="checkbox" value="1" /> удалить (все файлы подраздела будут также удалены)<br />
				<input name="submit" type="submit" value="Ok" />
				</form>';
			}
		} else {
			error('Раздел не существует.');
		}
		nav('?');
	break;
	
	case 'file_add':
		if ($ok) {
			if (!empty($_POST['subcat']) and !empty($_POST['name']) and !empty($_FILES['file']['name']) ) {
				$subcat_id = abs(intval($_POST['subcat']));
				$subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
				if (isset($subcat['id'])) {
					$file = check(basename($_FILES['file']['name']));
					if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `file` = '$file'"))) {
						$name = check($_POST['name']);
						$desc = check($_POST['desc']);
						$author = check($_POST['author']);
						$site = check($_POST['site']);
						copy($_FILES['file']['tmp_name'], '../inc/loads/'.$subcat['path'].'/'.$file);
						mysql_query("INSERT INTO `loads` SET `id_cat` = '$subcat[id_cat]', `id_subcat` = '$subcat[id]', `id_user` = '$u[id]', `name` = '$name', `desc` = '$desc', `author` = '$author', `site` = '$site', `file` = '$file', `time` = '".time()."', `ok` = 1");
						$_SESSION['info'] = 'Загружено.';
						header('location: ?act=file_add');
						exit;
					} else {
						error('Подраздел не существует.');
						nav('?act=file_add');
					}
				} else {
					error('Файл уже существует.');
					nav('?act=file_add');
				}
			} else {
				error('Вы не указали название, не выбрали подраздел или файл.');
				nav('?act=file_add');
			}
		} else {
			tp('Добавить файл');
			if (isset($_SESSION['info'])) echo '<b><u>'.$_SESSION['info'].'</u></b><br />'; unset($_SESSION['info']);
			echo '<form action="?act=file_add&amp;ok=1" method="post" enctype="multipart/form-data">
			Выбрать подраздел*:<br /><select name="subcat">';
			$cat_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
			while ($cat = mysql_fetch_assoc($cat_r)) {
				echo '<option value="0">'.$cat['name'].'</option>';
				$subcat_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id_cat` = '$cat[id]' ORDER BY `name`");
				while ($subcat = mysql_fetch_assoc($subcat_r)) {
					echo '<option value="'.$subcat['id'].'">-- '.$subcat['name'].'</option>';
				}
			}
			echo '</select><br />
			Название(max50)*:<br /><input name="name" type="text" maxlength="50" /><br />
			Описание:<br /><textarea name="desc" cols="" rows="4"></textarea><br />
			Автор(max20):<br /><input name="author" type="text" maxlength="20" /><br />
			Сайт(<del>http://</del>, max20):<br /><input name="site" type="text" maxlength="20" /><br />
			Выбрать файл*:<br /><input name="file" type="file" size="file" /><br />
			<input name="submit" type="submit" value="Ok" />
			</form>';
			nav('?');
		}
	break;
	
	case 'file_multiadd':
		tp('Добавить несколько файлов');
		if ($ok) {
			if (!empty($_POST)) {
				$subcat_id = abs(intval($_POST['subcat']));
				$subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
				if (isset($subcat['id'])) {
					for ($i = 0; $i < sizeof($_FILES['file']['name']); $i++) {
						if (empty($_FILES['file']['name'][$i])) {
							continue;
						}
						$filename = basename($_FILES['file']['name'][$i]);
						$info = '';
						if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `id_subcat` = '$subcat_id' and `file` = '$filename'"))){
							$copy = copy($_FILES['file']['tmp_name'][$i], '../inc/loads/'.$subcat['path'].'/'.$filename);
							if ($copy == TRUE) {
								mysql_query("INSERT INTO `loads` SET `id_cat` = '$subcat[id_cat]', `id_subcat` = '$subcat[id]', `id_user` = '$u[id]', `name` = '$filename', `file` = '$filename', `time` = '".TIME."', `ok` = 1");
								$info .= 'Файл '.$filename.' загружен.<br />';
							} else {
								$info .= 'Файл '.$filename.' не закачен. Проверьте CHMOD.<br />';
							}
						} else {
							$info .= 'Файл '.$filename.' уже существует.<br />';
						}
						echo $info.'<br />- <a href="?act=file_multiadd">Загрузить еще</a>';
					}
				} else {
					$_SESSION['note'] = 'Выбранный подраздел не существует.';
					redirect('?act=file_multiadd');
				}
			} else {
				$_SESSION['note'] = 'Не указан подраздел или файл (минимум один)';
			}
		} else {
			echo '<form action="?act=file_multiadd&amp;ok=1" method="post" enctype="multipart/form-data">
			Выбрать подраздел*:<br /><select name="subcat">';
			$subcat_r = mysql_query("SELECT * FROM `loads_subcats` WHERE `id` != '$load[id_subcat]' ORDER BY `id_cat`, `name`");
			while ($subcat = mysql_fetch_assoc($subcat_r)) {
				$cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_cats` WHERE `id` = '$subcat[id_cat]'"));
				echo '<option value="'.$subcat['id'].'">'.$cat['name'].' &gt; '.$subcat['name'].'</option>';
			}
			echo '</select><br />
			Выбрать файл:<br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="file[]" type="file" /><br />
			<input name="submit" type="submit" value="Загрузить" />
			</form>';
			
		}
		nav('?');
	break;
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}

require_once '../system/tail_p.php';
?>