View file panel/loads.php

File size: 14.91Kb
<?php
// by mides, 1cp.pw

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

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

switch ($act) {
	default:
		tp('Загруз-центр');
		echo '<div class="body">';
		note();
		$cats_r = mysql_query("SELECT * FROM `loads_cats` ORDER BY `name`");
		while ($cat = mysql_fetch_assoc($cats_r)) {
			echo '<a href="../loads/?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/?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="?act=file_multi_import">Импортировать несколько</a><br />
		<a href="../loads/index.php?act=mod">Модерировать</a><br />
		
		<br/>
		<form name="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('../loads/files/'.$path, 0777);
				mysql_query("INSERT INTO `loads_subcats` SET `id_cat` = '$cat', `name` = '$name', `path` = '$path'") or die(mysql_error());
			} 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 '<div class="body">';
				echo '<form name="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('../loads/files/'.$subcat['path'].'/'.$file['file']);
					}
					$rmdir = rmdir('../loads/files/'.$subcat['path']);
					if ($rmdir == 1) {
						mysql_query("DELETE FROM `loads_subcats` WHERE `id` = '$id'");
						$_SESSION['note'] = 'Подраздел "'.$subcat['name'].'" удален.';
					} else {
						$_SESSION['note'] = 'Произошла ошибка.';
					}
					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 '<div class="body">';
				echo '<form name="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="jump" type="checkbox" value="1" /> автопереход к просмотру<hr />
				<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']) ) {
				$subcat_id = abs(intval($_POST['subcat']));
				$subcat = mysql_fetch_assoc(mysql_query("SELECT * FROM `loads_subcats` WHERE `id` = '$subcat_id'"));
				if (isset($subcat['id'])) {
					if ($_POST['url']) {
						$copy = $_POST['url'];
						$file = $file = check(basename($copy));
					
					} elseif (!empty($_FILES['file']['name'])) {
						$copy = $_FILES['file']['tmp_name'];
						$file = check(basename($_FILES['file']['name']));
					} else {
						error('Не выбран файл или не указан адрес для импорта.');
						nav('?act=file_add');
					}
					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($copy, '../loads/files/'.$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['note'] = 'Загружено.';
						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('Добавить файл');
			echo '<div class="body">';
			note();
			echo '<form name="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 />
            <u>ЛИБО</u> указать адрес для импорта, напр. http://a.ru/1.zip<br />
			<input name="url" type="text" /><br />
			<input name="submit" type="submit" value="Ok" />
			</form>';
			nav('?');
		}
	break;
	
	case 'file_multi_import':
		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($_POST['url']); $i++) {
                                    if (empty($_POST['url'][$i])) {
                                            continue;
                                    }
                                    $filename = basename($_POST['url'][$i]);
                                    $info = '';
                                    if (!mysql_num_rows(mysql_query("SELECT `id` FROM `loads` WHERE `id_subcat` = '$subcat_id' and `file` = '$filename'"))){
                                            $copy = copy($_POST['url'][$i], '../loads/files/'.$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 '<div class="body">';
		echo '<form name="form" action="?act=file_multi_import&amp;ok=1" method="post">
		Выбрать подраздел*:<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="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="url[]" type="text" /><br />
		<input name="submit" type="submit" value="Импортировать" />
		</form>';
    }
    nav('?');
break;

	case 'file_multiadd':
		tp('Добавить несколько файлов');
		echo '<div class="body">';
		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], '../loads/files/'.$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 name="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 '../includes/tail.php';
?>