<?php
$t = "Загрузки";
if ($site->pro_mod_loads != -1 && $site->pro_mod_loads < time()){
	$t = "Ошибка";
	include_once 'core/head.php';
	echo '<div class="error">Администратор сайта отключил данный модуль сайта.</div>';
	echo ($back?linkGen($back,"Вернуться назад",["data-id"=>"link-back"]):null);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
$fo = $db->getObject("SELECT * FROM `downloads_cat` WHERE `sid` = '".$site->id."' AND `dcid` = '$id'");
if ($act == "scr" && $id != 0){
	$file = $db->getObject("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
	if ($file == null || $file->avatar == null || !is_file(ROOT.("/sites/".$core->getSiteURL()."/".$file->avatar))){
		$sp = (ROOT.("/sites/".$core->getSiteURL()."/media/images/file.png"));
		$path = (is_file($sp)?$sp:ROOT.("/media/images/file.png"));
		$pf = pathinfo($path);
		$core->setHeaderFile($pf['extension'],$path);
		die();
	}
	$path = ROOT.("/sites/".$core->getSiteURL()."/".$file->avatar);
	$pf = pathinfo($path);
	$core->setHeaderFile($pf['extension'],$path);
	die();
} elseif ($act == "del" && $id != 0 && $user->getData()->access > 3){
	$file = $db->getObject("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
	if ($file == null){
		$t = "Ошибка";
		include_once 'core/head.php';
		echo '<div class="error">Извините, но файл не найден.</div>';
		echo ($back?linkGen($back,"Вернуться назад",["data-id"=>"link-back"]):null);
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	if (isset($_POST["del"])){
		if ($file->localFile && file_exists($core->rootPath($file->path))){
			@unlink($core->rootPath($file->path));
		}
		if ($file->avatar != null){
			@unlink($core->rootPath($file->avatar));
		}
		$db->Query("DELETE FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
		$t = "Файл удален";
		include_once 'core/head.php';
		echo '<div class="success">Файл был успешно удален!</div>';
		echo linkGen('/downloads.lm?id='.$file->dcid,"Вернуться назад",["data-id"=>"link-back"]);
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	$t = "Удаление файла ".$file->file;
	include_once 'core/head.php';
	echo '<div class="warning">Это действие отменить нельзя!</div>';
	echo '<form method="POST" class="text">
	Вы действительно хотите удалить файл "'.$file->file.'"?<br>
	<input type="submit" name="del" value="Да, удалить файл"/>
	</form>';
	echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
if ($act == "size" && $id != 0 && $user->getData()->access > 3){
	$file = $db->getObject("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
	if ($file == null){
		$t = "Ошибка";
		include_once 'core/head.php';
		echo '<div class="error">Извините, но файл не найден.</div>';
		echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	if (isset($_POST["size"]) && !$file->localFile){
		$mz = 1;
		$bytes = isset($_POST["idata"]) && !empty($_POST["idata"]) && is_numeric($_POST["idata"]) && intval($_POST["idata"]) > 0 ?intval($_POST["idata"]):0;
		$db->Query("UPDATE `downloads_file` SET `size`='".$bytes."' WHERE `dfid` = '$id'");
		//$db->Query("DELETE FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
		$t = "Файл изменен";
		include_once 'core/head.php';
		echo '<div class="success">Размер файла был успешно изменен!</div>';
		echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	$t = "Изменение размера файла ".$file->file;
	include_once 'core/head.php';
	if (!$file->localFile){
	echo '<form method="POST" class="text">
	Размер в байтах: <br><input id="idata" name="idata" type="number" min="0" value="'.$file->size.'"><br>
	Предпросмотр:<br>
	<span id="b">'.$Quota->RealSize($file->size).'</span><br>
	<input type="submit" name="size" value="Сохранить"/>
	</form>';
	echo '<script>function formatBytes(bytes) {
		if(bytes) {
            if(bytes < 1024 ) {
                return bytes + " б";
			} else if(bytes < 1048576) {
				return parseFloat(( bytes / 1024 ).toFixed(2)) + " кб";
			} else if(bytes < 1073741824) {            
				return parseFloat((bytes/1048576 ).toFixed(2)) + " мб";
			} else {    
				return parseFloat((bytes/1073741824).toFixed(2)) + " гб";
			}
        }
		return "0 б";
	}
	var input = document.getElementById("idata");
	input.oninput = function() {
		document.getElementById("b").innerHTML = formatBytes(input.value);
	};
	</script>';
	} else {
		echo '<div class="error">Извините, но функция только для удаленных файлов, которые находяться на другом сервере.</div>';
	}
	echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
if ($act == "img" && $id != 0 && $user->getData()->access > 3){
	$file = $db->getObject("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
	if ($file == null){
		$t = "Ошибка";
		include_once 'core/head.php';
		echo '<div class="error">Извините, но файл не найден.</div>';
		echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	$pi = pathinfo($file->path);
	$filetype = ["jpg","png","gif"];
	
	if (isset($_POST["img"])){
		if (isset($pi["extension"]) && $file->localFile && file_exists($core->rootPath($file->path)) && ($pi["extension"] == "png" || $pi["extension"] == "jpg")){
			$core->regError("Недопустимый формат файла","К данному файлу нельзя прикрепить изображение.",19,"downloads.lm");
		} elseif (!$Quota->isWrite()){
			$core->regError("Quota: закончилось дисковое пространство","На данном сайте закончилось свободное дисковое пространство.<br>Сообщите о данной проблеме администратору.",9,"downloads.lm");
		} elseif (!$Quota->isLoad($site->maxFileLoad)){
			$core->regError("Quota: закончилось дисковое пространство","Неудалось зарезервировать место (".$Quota->RealSize($site->maxFileLoad).") для файла.<br>Сообщите о данной проблеме администратору.",10,"downloads.lm");
		} elseif ($site->maxFileLoad < $_FILES['file']["size"] || $_FILES['file']["size"] <= 0){
			$core->regError("Ошибка размера файла","Файл имеет недопустимый размер.<br>Текущий размер файла: ".$core->RealFileSize($_FILES['file']["size"])."<br>Максимальный допустимый размер файла: ".$core->RealFileSize($site->maxFileLoad),11,"downloads.lm");
		} else {
			$upfiletype = substr($_FILES['file']['name'],  strrpos( $_FILES['file']['name'], ".")+1);
			if(!in_array($upfiletype,$filetype)) {
				$core->regError("Недопустимый формат файла","Данный файл не является доступимым.",12,"downloads.lm");
			} else {
				if (!$core->isBooleanError()){
					if (!is_dir($core->rootPath("/media/downloads/files/"))){
						@mkdir($core->rootPath("/media/downloads/files/"), 0777, true);
					}
					$files = $site->domain.'_s'.$id.'_'.(rand(11111,99999)).'_'.($core->StringHash(time())).".".$upfiletype;
					$bytes = intval($_FILES['file']["size"]);
					move_uploaded_file($_FILES['file']['tmp_name'],$core->rootPath("/media/downloads/files/".$files));
					$path = "/media/downloads/files/".$files;
					if ($file->avatar != null){
						@unlink($core->rootPath($file->avatar));
					}
					$db->Query("UPDATE `downloads_file` SET `avatar`='".$path."' WHERE `dfid` = '$id'");
					//$db->Query("INSERT INTO `downloads_file`(`dcid`, `sid`, `uid`, `file`, `msg`, `timeAdd`, `path`, `localFile`, `size`, `moder`) VALUES ('".$id."','".$site->id."','".$user->uid."','".$name."','".$msg."','".(time())."','".$path."','1','".$bytes."','0');");
					unset($_POST);
					$t = "Файл загружен";
					include_once 'core/head.php';
					echo '<div class="success">Файл ('.$Quota->RealSize($bytes).') успешно загружен.</div>';
					echo linkGen('/downloads.lm?id='.$id.'&act=view',"Перейти к файлу",["data-id"=>"link-back"]);
					echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
					echo linkGen("/","На главную",["data-id"=>"link-home"]);
					include_once 'core/foot.php';
					die();
				}
			}
		}
	}
	$t = "Добавление скриншота к файлу ".$file->file;
	include_once 'core/head.php';
	if ($core->isBooleanError()){
		foreach ($core->showError() as $csE){
			echo '<div class="error">Произошла ошибка при обработке операции<br><b>КОД: '.$csE["code"].'</b><br>Подробнее: '.$csE["utxt"].'</div>';
		}
	}
	if (isset($pi["extension"]) && $file->localFile && file_exists($core->rootPath($file->path)) && ($pi["extension"] == "png" || $pi["extension"] == "jpg")){
		echo '<div class="error">Извините, но функция только для удаленных файлов, которые находяться на другом сервере.</div>';
	} else {
		echo '<form method="POST" class="text"  enctype="multipart/form-data">
		Выберите файл:<br>
		<input type="file" name="file"><br>
		Максимальный вес файла: '.$Quota->RealSize($site->maxFileLoad).'<br>
		'.(implode(",",$filetype)).'<br>
		<input type="submit" name="img" value="Загрузить файл"/>
		</form>';
	}
	echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
if ($act == "view" && $id != 0){
	$file = $db->getObject("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dfid` = '$id'");
	if ($file == null){
		$t = "Ошибка";
		include_once 'core/head.php';
		echo '<div class="error">Извините, но файл не найден.</div>';
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	$t = "Скачать ".$file->file;
	$pi = pathinfo($file->path);
	$locimg = false;
	include_once 'core/head.php';
	echo '<div class="title">'.$file->file.'</div>';
	if (isset($pi["extension"]) && $file->localFile && file_exists($core->rootPath($file->path)) && ($pi["extension"] == "png" || $pi["extension"] == "jpg")){
		echo '<div class="text"><img class="img_files" src="'.$file->path.'" alt="'.$site->domain.' - '.$file->file.'"></div>';
		$locimg = true;
	} elseif ($file->avatar != null){
		echo '<div class="text"><a href="'.$file->avatar.'"><img class="img_files" src="'.$file->avatar.'" alt="'.$site->domain.' - '.$file->file.'"></a></div>';
	}
	echo '<div class="text">'.$core->drawString($file->msg).'</div>';
	if (!$file->localFile && !$site->down_SilentServer){
		echo '<div class="warning">ВНИМАНИЕ!<br>Администрация портала не несет ответственности за содержимое которое вы скачиваете, данный файл находиться на чужом сервере.<br>МЫ НЕ МОЖЕМ КОНТРОЛИРОВАТЬ И СЛЕДИТЬ ЗА СОСТОЯНИЕМ ФАЙЛА.<br>Если файл оказался битым или содержит недопустимый контент, вы можете подать жалобу на файл, мы удалим его!</div>';
	}
	
	echo '<div class="text">Кто выложил:'.$user->linkUser($file->uid,"%2Fdownloads.lm%3Fact%3Dview%26id%3D".$id).'<br>Вес: '.$Quota->RealSize($file->size).'<br>Дата загрузки:'.$core->RealTime($file->timeAdd).'</div>';
	if ($file->localFile && !file_exists($core->rootPath($file->path))){
		echo '<div class="error">Файл не найден на сервере, возможно владелец сайта удалил его вручную.</div>';
	} else {
		echo linkGen($file->path,'Скачать файл '.(!$file->localFile?'с чужого сервера':null).'',["data-id"=>"link-file-save","data-info"=>"save"],$Quota->RealSize($file->size));
	}
	echo linkGen('/comments.lm?id=downfile'.$id.'&back=%2Fdownloads.lm%3Fact%3Dview%26id%3D'.$id.'','Комментарии',["data-id"=>"link-comm-link"],$db->Count("comments","WHERE `aid` = 'downfile".$id."' AND `sid` = '".$site->id."'"));
	echo ($user->auth() && $user->getData()->access > 3 && !$locimg?linkGen('/downloads.lm?id='.$id.'&act=img',"Добавить скрин",["data-id"=>"link-file-add"]):null);
	echo ($user->auth() && $user->getData()->access > 3 && !$file->localFile?linkGen('/downloads.lm?id='.$id.'&act=size',"Изменить размер файла",["data-id"=>"link-file-link"]):null);
	echo ($user->auth() && $user->getData()->access > 3 ?linkGen('/downloads.lm?id='.$id.'&act=del',"Удалить файл",["data-id"=>"link-file-del"]):null);
	
	echo linkGen('/downloads.lm?id='.$file->dcid.'',"Вернуться назад",["data-id"=>"link-back"]);
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();

}
if ($id != 0 && $fo == null){
	$t = "Ошибка";
	include_once 'core/head.php';
	echo '<div class="error">Извините, но категория не найдена.</div>';
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	die();
}
if ($act == "load" && $fo != null){
	if (!$user->auth() || $user->getData()->access < 3){
		$t = "Ошибка";
		include_once 'core/head.php';
		echo '<div class="error">Извините, но у вас нет прав доступа для загрузки файла.</div>';
		echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
		echo linkGen("/","На главную",["data-id"=>"link-home"]);
		include_once 'core/foot.php';
		die();
	}
	$filetype = ["txt","xml","ini","jpg","png","gif","zip","rar","7z","cab","jar","midi","exe","mid","msi"];
	require_once 'core/URLValid.php';
	$t = 'Загрузка файла - '.$fo->name;
	if (isset($_POST["upload"])){
		$name = isset($_POST["name"]) && !empty($_POST["name"])?$core->FilterString($_POST["name"]):"";
		$msg = isset($_POST["mess"]) && !empty($_POST["mess"])?$core->FilterString($_POST["mess"]):"";
		$path = isset($_POST["path"]) && !empty($_POST["path"])?$core->FilterString($_POST["path"]):"";
		$method = (!isset($_FILES['file']) || !@file_exists($_FILES['file']['tmp_name'])?true:false);
		if (empty($name)){
			$core->regError("","Необходимо указать название файла.",1,"downloads.lm");
		} elseif (empty($msg)){
			$core->regError("","Необходимо указать описание файла.",2,"downloads.lm");
		} elseif (strlen(trim($_POST['name'])) < 4 && strlen(trim($_POST['name'])) > 64){
			$core->regError("","Название файла должно быть от 4 до 64-символов",3,"downloads.lm");
		} elseif (strlen(trim($_POST['name'])) < 4){
			$core->regError("","Название файла должно быть от 4 символов",4,"downloads.lm");
		}
		if ($method){
			$urlVal = new UrlValidation();
			if (empty($path)){
				$core->regError("","Необходимо указать ссылку или выбрать файл.",5,"downloads.lm");
			//} elseif ($bytes <= 0){
				//$core->regError("","Размер файла должен быть больше нуля.",6,"downloads.lm");
			//} elseif(!$urlVal->domain($path)) {
				//$core->regError("","Ошибка проверки безопастности сайта.",7,"downloads.lm");
			} else {
				$data = @get_headers($path, true);
				if (!$data){
					$core->regError("","Ошибка получения мета-данных файла",8,"downloads.lm");
				}
				$bytes = isset($data['Content-Length'])?(int) $data['Content-Length']:0;
				
				if ($bytes <= 0 && isset($data["Location"]) && !empty($data["Location"])){
					$data = @get_headers($core->FilterString($data["Location"]), true);
					if (!$data){
						if ($bytes <= 0 && isset($data["Location"]) && !empty($data["Location"])){
							$data = @get_headers($core->FilterString($data["Location"]), true);
							if (!$data){
								if ($bytes <= 0 && isset($data["Location"]) && !empty($data["Location"])){
									$data = @get_headers($core->FilterString($data["Location"]), true);
									if (!$data){
										$core->regError("","Ошибка получения мета-данных файла #2",8,"downloads.lm");
									}
								}
							}
						}
					}
				}

				$bytes = isset($data['Content-Length'])?(int) $data['Content-Length']:0;
				if ($bytes <= 0){
					$core->regError("","Размер файла должен быть больше нуля.",6,"downloads.lm");
				}
				if (!$core->isBooleanError()){
					$db->Query("INSERT INTO `downloads_file`(`dcid`, `sid`, `uid`, `file`, `msg`, `timeAdd`, `path`, `localFile`, `size`, `moder`) VALUES ('".$id."','".$site->id."','".$user->uid."','".$name."','".$msg."','".(time())."','".$path."','0','".$bytes."','0');");
					$t = "Файл загружен";
						unset($_POST);
					include_once 'core/head.php';
					echo '<div class="success">Файл '.$name.' ('.$Quota->RealSize($bytes).') успешно загружен.<br>Вы добавили ссылку, которая введет на другой сервер.</div>';
					echo linkGen('/downloads.lm?id='.$id.'',"Вернуться назад",["data-id"=>"link-back"]);
					echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
					echo linkGen("/","На главную",["data-id"=>"link-home"]);
					include_once 'core/foot.php';
					die();
				}
			}
		} else {
			if (!$Quota->isWrite()){
				$core->regError("Quota: закончилось дисковое пространство","На данном сайте закончилось свободное дисковое пространство.<br>Сообщите о данной проблеме администратору.",9,"downloads.lm");
			} elseif (!$Quota->isLoad($site->maxFileLoad)){
				$core->regError("Quota: закончилось дисковое пространство","Неудалось зарезервировать место (".$Quota->RealSize($site->maxFileLoad).") для файла.<br>Сообщите о данной проблеме администратору.",10,"downloads.lm");
			} elseif ($site->maxFileLoad < $_FILES['file']["size"] || $_FILES['file']["size"] <= 0){
				$core->regError("Ошибка размера файла","Файл имеет недопустимый размер.<br>Текущий размер файла: ".$core->RealFileSize($_FILES['file']["size"])."<br>Максимальный допустимый размер файла: ".$core->RealFileSize($site->maxFileLoad),11,"downloads.lm");
			} else {
				$upfiletype = substr($_FILES['file']['name'],  strrpos( $_FILES['file']['name'], ".")+1);

				if(!in_array($upfiletype,$filetype)) {
					$core->regError("Недопустимый формат файла","Данный файл не является доступимым.",12,"downloads.lm");
				} else {
					if (!$core->isBooleanError()){
						if (!is_dir($core->rootPath("/media/downloads/files/"))){
							@mkdir($core->rootPath("/media/downloads/files/"), 0777, true);
						}
						$files = $site->domain.'_'.$id.'_'.(rand(11111,99999)).'_'.($core->StringHash(time())).".".$upfiletype;
						$bytes = intval($_FILES['file']["size"]);
						move_uploaded_file($_FILES['file']['tmp_name'],$core->rootPath("/media/downloads/files/".$files));
						$path = "/media/downloads/files/".$files;
						$db->Query("INSERT INTO `downloads_file`(`dcid`, `sid`, `uid`, `file`, `msg`, `timeAdd`, `path`, `localFile`, `size`, `moder`) VALUES ('".$id."','".$site->id."','".$user->uid."','".$name."','".$msg."','".(time())."','".$path."','1','".$bytes."','0');");
						unset($_POST);
						$t = "Файл загружен";
						include_once 'core/head.php';
						echo '<div class="success">Файл '.$name.' ('.$Quota->RealSize($bytes).') успешно загружен.</div>';
						echo linkGen('/downloads.lm?id='.$id.'',"Вернуться назад",["data-id"=>"link-back"]);
						echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
						echo linkGen("/","На главную",["data-id"=>"link-home"]);
						include_once 'core/foot.php';
						die();
					//$db->Query("UPDATE `users` SET `avatar`='".$upfiletype."' WHERE `id` = '".$user->uid."' AND `sid` = '".$site->id."'");
					//$core->GoToPage("/avatar.lm");
					}
				}
			}
		}
	}
	include_once 'core/head.php';
	echo '<div class="title">Загрузка файла</div>';
	if ($core->isBooleanError()){
		foreach ($core->showError() as $csE){
			echo '<div class="error">Произошла ошибка при обработке операции<br><b>КОД: '.$csE["code"].'</b><br>Подробнее: '.$csE["utxt"].'</div>';
		}
	}
	echo '<form method="POST" class="text"  enctype="multipart/form-data">
	Название файла:<br><input type="text" name="name" value="'.$core->FilterString((isset($_POST["name"])?$_POST["name"]:null)).'"><br>
	Описание файла:<br><textarea name="mess"  id="input">'.$core->FilterString((isset($_POST["mess"])?$_POST["mess"]:null)).'</textarea><br>
	Выберите файл:<br>
	<input type="file" name="file"><br>
	Максимальный вес файла: '.$Quota->RealSize($site->maxFileLoad).'<br>
	'.(implode(",",$filetype)).'<hr>
	<b>или укажите на него данные</b><hr>
	Ссылка на загрузку:<br>
	<textarea name="path">'.$core->FilterString((isset($_POST["path"])?$_POST["path"]:"https://")).'</textarea><br>
	<input type="submit" name="upload" value="Загрузить">
	</form>';
	echo linkGen('/downloads.lm?id='.$id.'&act=view',"Вернуться назад",["data-id"=>"link-back"]);
	echo linkGen("/downloads.lm","Вернуться на главную загрузок",["data-id"=>"link-back"]);
	echo linkGen("/","На главную",["data-id"=>"link-home"]);
	include_once 'core/foot.php';
	exit();
}
$t = ($id != 0?$fo->name:"Загрузки");
include_once 'core/head.php';
echo '<div class="title">'.($id != 0?$fo->name:"Загрузки").'</div><div id="content">';
$dir_count = $db->Count("downloads_cat","WHERE `sid` = '".$site->id."' AND `root` = '$id'");
$k_post = $db->Count("downloads_file","WHERE `sid` = '".$site->id."' AND `dcid` = '$id'");
$max = 10;
$k_page = $core->k_page($k_post,$max);
$page = $core->page($k_page);
$start = $max*$page-$max;
if ($dir_count == 0 && $k_post == 0){
	echo '<div class="error">Категорий или файлов здесь пока-что нету</div>';
}
if ($start == 0){
	$news = $db->Query(($id == -1?
	"WITH RECURSIVE category_tree AS ( SELECT `downloads_cat`.`dcid`, `downloads_cat`.`name`, `downloads_cat`.`root` FROM `downloads_cat` WHERE `downloads_cat`.`sid` = '".$site->id."' AND `downloads_cat`.`root` = '".$id."' UNION ALL SELECT `downloads_cat`.`dcid`, `downloads_cat`.`name`, `downloads_cat`.`root` FROM `downloads_cat` JOIN category_tree ON `downloads_cat`.`root` = category_tree.`dcid` ) SELECT ct.`name` AS `name`, ct.`dcid` AS `dcid`, ( SELECT COUNT(*) FROM `downloads_file` WHERE `downloads_file`.`dcid` = ct.`dcid` ) AS `file_count`, ( SELECT COUNT(*) FROM `downloads_cat` WHERE `root` = ct.`dcid` ) AS `subfolder_count`, ( SELECT COUNT(*) FROM `downloads_file` WHERE `downloads_file`.`dcid` IN ( SELECT `dcid` FROM category_tree WHERE `root` = ct.`dcid` ) ) AS `total_file_count` FROM category_tree ct ORDER BY ct.`name` ASC;":
	"SELECT *,`downloads_cat`.`dcid` AS `idx`,((SELECT COUNT(*) FROM `downloads_file` WHERE `downloads_file`.`dcid` = `downloads_cat`.`dcid`)+(SELECT COUNT(*) FROM `downloads_cat` WHERE `root` = `idx`)) AS `ccc` FROM `downloads_cat` WHERE `sid` = '".$site->id."' AND `root` = '$id' ORDER BY `name` ASC"));
	
	while ($ns = mysqli_fetch_assoc($news)){
		$ccc = (isset($ns["ccc"])?$ns["ccc"]:$ns["file_count"]+$ns["subfolder_count"]+$ns["total_file_count"]);
		echo linkGen('/downloads.lm?id='.$ns["dcid"],$ns["name"],[
		"id"		=>	"link-file-cat",
		"data-type"		=>	"link" ,
		"data-frm"		=>	"folder" ,
		"data-id"		=>	$ns["dcid"],
		"data-name"		=>	htmlentities($ns["name"]),
		"data-count"	=>	$ccc,
		],$ccc);
		//echo '<a data-type="link" id="link-file-cat" data-type="folder" data-id="'.$ns["dcid"].'" data-name="'.$ns["name"].'" data-count="'.$ns["ccc"].'" class="link" href="/downloads.lm?id='.$ns["dcid"].'">'.$ns["name"].'<span class="count">'.$ns["ccc"].'</span></a>';
	}
}
$data = $db->Query("SELECT * FROM `downloads_file` WHERE `sid` = '".$site->id."' AND `dcid` = '$id' ORDER BY `dfid` DESC LIMIT $start, $max");
while ($d = mysqli_fetch_assoc($data)){
	echo linkGen('/downloads.lm?act=view&id='.$d["dfid"],$d["file"],[
		"id"			=>	"link-file-link",
		"data-type"		=>	"link" ,
		"data-frm"		=>	"file" ,
		"data-id"		=>	$d["dfid"] ,
		"data-size"		=>	$d["size"] ,
		"data-title"	=>	htmlentities($d["file"]) ,
		"data-add"		=>	$d["timeAdd"] ,
		"data-miniDesk"	=>	mb_substr(htmlentities($d["msg"]),0,64)."..." ,
	],$Quota->RealSize($d["size"]));
	//echo '<a data-type="link" id="link-file-link" data-type="file" href="/downloads.lm?act=view&id='.$d["dfid"].'"  class="link">'.$d["file"].' <span class="count">'.$Quota->RealSize($d["size"]).'</span></a>';
}
if($k_page>1) echo $core->str('?'.($id != 0?'id='.$id.'&':null),$k_page,$page);
echo '</div>';
echo ($fo != null && $user->auth() && $user->getData()->access >= 3?linkGen('/downloads.lm?id='.$id.'&act=load',"Загрузить файл",["data-id"=>"link-file-add"]):null);
echo ($id != 0?linkGen('/downloads.lm?id='.$fo->root.'',"Вернуться назад",["data-id"=>"link-back"]):null);
echo linkGen("/","На главную",["data-id"=>"link-home"]);
include_once 'core/foot.php';
?>
