Просмотр файла moduls/downloads.php

Размер файла: 15.6Kb
<?php
include_once'../system/xcms_core.php';$title='Загруз-центр';
if($_COOKIE['style']=='web')require_once '../system/web_head.php'; else require_once '../system/head.php';
switch($act){
	case 'add_screen':
	$q=$db->query("select * from `files` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
	if($q){
		if($user['level']>4){
			$files=$_FILES['screen']['name'];
			if(move_uploaded_file($_FILES['screen']['tmp_name'],'../files/screens/file-'.$id.'-'.$files)){
				$db->query("insert into `screens` set `name`='../files/screens/file-$id-$files', `file`='$id'");
				echo'<div class="menu">Скриншот добавлен &rarr; <a href="/dl/file'.$id.'">Далее</a></div>';
			}
			echo'<div class="menu">
			<form action="#" method="post" enctype="multipart/form-data">
			<input type="file" name="screen"><input type="submit" value="Загрузить">
			</form>
			</div>';
			back('/dl/file'.$id);
		}else{echo'<div class="menu">Только для адмнистраторов</div>';}
	}else{echo'<div class="menu">Ошибка идентификатора</div>';}
	break;
	
	case 'load':
	if($user['level']>3){
		if(!empty($_POST['cat'])){$cat=protect(intval($_POST['cat']));$cat1=$db->query("select * from `podcat` where `id`='$cat'")->fetch(PDO::FETCH_ASSOC);}else{$cat=1;}
		if(!empty($_POST['name']))$name=protect($_POST['name']);else $name=0; if(!empty($_POST['desc']))$desc=nl2br(protect($_POST['desc'])); else $desc=0;
		if(!empty($_POST['namea']))$namea=protect($_POST['namea']);else $namea=0; if(!empty($_POST['desca']))$desca=nl2br(protect($_POST['desca'])); else $desca=0;
		if(!empty($_POST['nameb']))$nameb=protect($_POST['nameb']);else $nameb=0; if(!empty($_POST['descb']))$descb=nl2br(protect($_POST['descb'])); else $descb=0;
		if(!empty($_POST['namec']))$namec=protect($_POST['namec']);else $namec=0; if(!empty($_POST['descc']))$descc=nl2br(protect($_POST['descc'])); else $descc=0;
		if(!empty($_POST['named']))$named=protect($_POST['named']);else $named=0; if(!empty($_POST['descd']))$descd=nl2br(protect($_POST['descd'])); else $descd=0;
		if(move_uploaded_file($_FILES['somename']['tmp_name'], '../files/files/'.$_FILES['somename']['name'])){$db->query("insert into `files` set `name`='$name', `cat`='$cat1[cat]', `podcat`='$cat', `time`='$time', `file`='files/".$_FILES['somename']['name']."', `bitrate`='$desc', `duration`='0'");echo'<div class="menu">Файл <b>1</b> загружен</div>';}
		if(move_uploaded_file($_FILES['somenamea']['tmp_name'], '../files/files/'.$_FILES['somenamea']['name'])){$db->query("insert into `files` set `name`='$namea', `cat`='$cat1[cat]', `podcat`='$cat', `time`='$time', `file`='files/".$_FILES['somenamea']['name']."', `bitrate`='$desca', `duration`='0'");echo'<div class="menu">Файл <b>2</b> загружен</div>';}
		if(move_uploaded_file($_FILES['somenameb']['tmp_name'], '../files/files/'.$_FILES['somenameb']['name'])){$db->query("insert into `files` set `name`='$nameb', `cat`='$cat1[cat]', `podcat`='$cat', `time`='$time', `file`='files/".$_FILES['somenameb']['name']."', `bitrate`='$descb', `duration`='0'");echo'<div class="menu">Файл <b>3</b> загружен</div>';}
		if(move_uploaded_file($_FILES['somenamec']['tmp_name'], '../files/files/'.$_FILES['somenamec']['name'])){$db->query("insert into `files` set `name`='$namec', `cat`='$cat1[cat]', `podcat`='$cat', `time`='$time', `file`='files/".$_FILES['somenamec']['name']."', `bitrate`='$descc', `duration`='0'");echo'<div class="menu">Файл <b>4</b> загружен</div>';}
		if(move_uploaded_file($_FILES['somenamed']['tmp_name'], '../files/files/'.$_FILES['somenamed']['name'])){$db->query("insert into `files` set `name`='$named', `cat`='$cat1[cat]', `podcat`='$cat', `time`='$time', `file`='files/".$_FILES['somenamed']['name']."', `bitrate`='$descd', `duration`='0'");echo'<div class="menu">Файл <b>5</b> загружен</div>';}
		echo'<div class="menu">
		<form action = "#" method = "post" enctype = "multipart/form-data">
		В категорию :<br/><select name="cat">';
		$total=$db->query("select `id` from `podcat`")->rowCount();
		if($total){
			$sef=$db->query("select * from `podcat` order by `id`");
			while($ff=$sef->fetch(PDO::FETCH_ASSOC)){
				$q=$db->query("select `name` from `cat` where `id`='$ff[cat]'")->fetch(PDO::FETCH_ASSOC);
				echo '<option value="'.$ff['id'].'">'.$q['name'].' -> '.$ff['name'].'</option>';
			}
			echo '</select></div>
			<div class="menu">Название:<br /><input name="name" type="text" size="30"><br />Файл:<br /><input type = "file" name = "somename" /><br />Или ссылка:<br /><input name="import" type="text" size="30"><br />Описание:<br /><textarea name="desc"></textarea></div>
			<div class="head">Название:<br /><input name="namea" type="text" size="30"><br />Файл:<br /><input type = "file" name = "somenamea" /><br />Или ссылка:<br /><input name="importa" type="text" size="30"><br />Описание:<br /><textarea name="desca"></textarea></div>
			<div class="menu">Название:<br /><input name="nameb" type="text" size="30"><br />Файл:<br /><input type = "file" name = "somenameb" /><br />Или ссылка:<br /><input name="importb" type="text" size="30"><br />Описание:<br /><textarea name="descb"></textarea></div>
			<div class="head">Название:<br /><input name="namec" type="text" size="30"><br />Файл:<br /><input type = "file" name = "somenamec" /><br />Или ссылка:<br /><input name="importc" type="text" size="30"><br />Описание:<br /><textarea name="descc"></textarea></div>
			<div class="menu">Название:<br /><input name="named" type="text" size="30"><br />Файл:<br /><input type = "file" name = "somenamed" /><br />Или ссылка:<br /><input name="importd" type="text" size="30"><br />Описание:<br /><textarea name="descd"></textarea></div>
			<div class="head" style="text-align:center;"><input type = "submit" value = "Загрузить файлы" />
			</form></div> ';
		}else{echo'<div class="menu">Создайте подразделы</div>';}
	}else{echo'<div class="menu">Ошибка авторизации</div>';}
	break;
	
	case 'down':
	$q=$db->query("select * from `files` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
	if($q){
		$w=$db->query("select `id` from `files_down` where `ip`='$sess_ip' and `ua`='$sess_ua' and `file`='$id'")->rowCount();
		if(!$w){
			$db->query("insert into `files_down` set `ip`='$sess_ip', `ua`='$sess_ua', `file`='$id', `time`='$time'");
			$db->prepare("update `files` set `down`=`down`+1 where `id`='$id'")->execute();
		}
		echo '<meta http-equiv="refresh" content="0; url = /files/'.$q['file'].' ">';
	}else{echo'<div class="menu">Ошибка идентификатора</div>';}
	break;
	
	case 'file':
	$q=$db->query("select * from `files` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
	if($q){
		$db->prepare("update `files` set `view`=`view`+1 where `id`='$id'")->execute();
		if($user['level']>3)
			echo'<div class="menu" style="text-align:center;">
			<a href="/moduls/delete.php?act=5&id='.$id.'">Удалить</a> | <a href="/moduls/edit.php?act=4&id='.$id.'">Редактировать</a> | <a href="/dl/file'.$id.'/add_screen">Добавить скрин</a></div>';
		/* Скриншоты */
		$total=$db->query("select `id` from `screens` where `file`='$id'")->rowCount();
		if($total){
			echo'<div class="head">Скриншоты:</div>';
			$sql=$db->query("select * from `screens` where `file`='$id'");
			echo'<div class="menu" style="text-align:center;">';
			while($res=$sql->fetch(PDO::FETCH_ASSOC)){
				$i++;
				echo '<a href="'.$res['name'].'">'.pic($res['name'],50,50).'</a>';
				if($i==5)echo'<br />';
			}
			echo'</div>';
		}
		
		$ex=strtolower(substr(strrchr($q['file'], '.'), 1)); #формат файла
		/* Вывод информации для каждого типа файлов */
		if($ex=='mp3' or $ex=='wav' or $ex=='ogg'){
			echo'<div class="menu"><object type="application/x-shockwave-flash" data="/player/ump3player.swf" height="67" width="380">
			<param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" />
			<param name="allowScriptAccess" value="always" /><param name="movie" value="/player/ump3player.swf" />
			<param name="FlashVars" value="way='.$q[file].'&swf=/player/ump3player.swf&w=380&h=67&&autoplay=0&q=&skin=grey&volume=100&comment=" />
			</object></div>';
			if($ex=='mp3'){
				include_once '../audioclass.php';
				$AF = new AudioFile;
				$AF->loadFile($q[file]);
				$AF->printSampleInfo();
			}
		}
		elseif($ex=='3gp' or $ex=='flv'){
			
		}
		elseif($ex=='mp4'){
			?><div class="menu"><video class="video-js vjs-default-skin" controls preload="none" width="300" height="150"
			poster=""
			data-setup="{}">
			<source src="<?=$q['file']?>" type='video/mp4' />
			<track kind="captions" src="/player/demo.captions.vtt" srclang="en" label="English"></track>
			<track kind="subtitles" src="/player/demo.captions.vtt" srclang="en" label="English"></track>
			<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
			</video><br /><br /></div>
			<?php
		}
		elseif($ex=='jpg' or $ex=='png' or $ex=='gif' or $ex=='jpeg'){
			if($ex=='jpg' or $ex=='jpeg'){
				echo'<div class="menu" style="text-align:center;"><img src="/files/'.$q['file'].'" style="width:55%;" alt="" /></div>';
			}else{
				echo'<div class="menu" style="text-align:center;"><img src="/files/'.$q['file'].'" style="width:55%;" alt="" /></div>';
			}
		}
		elseif($ex=='txt'){
			$f = fopen("$q[file]", "r"); 
			while(!feof($f)){echo'<b>'.fgets($f).'<br /></b>';}
			fclose($f);
		}
		if(!empty($q['bitrate']))echo'<div class="citatka">'.$q['bitrate'].'</div>';
		$count_down=$db->query("select `id` from `files_down` where `file`='$id'")->rowCount();
		echo'<div class="menu">';
		if($q['time'])echo'<b>Добавлен:</b> '.clock($q['time']).'<br />';
		if($q['view'])echo'<b>Просмотров:</b> '.$q['view'].'<br />';
		if($count_down)echo'<b>Скачиваний:</b> '.$count_down.'</br />';
		echo'<b>Размер:</b> '.sizer('../files/'.$q['file']).'<br />';
		echo'<a href="/dl/down'.$id.'" style="text-align:center;display:block;">Скачать '.$q['name'].' ('.sizer('../files/'.$q['file']).')</a>';
		echo'</div>';
		back('/dl/podcat'.$q['podcat']);
	}else{echo'<div class="menu">Ошибка идентификатора</div>';}
	break;
	
	case 'podcat':
	$q=$db->query("select * from `podcat` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
	if($q){
		$k_post=$db->query("select `id` from `files` where `podcat`='$id'")->rowCount();
		if($k_post){
			$k_page=k_page($k_post,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
			$sql=$db->query("select * from `files` where `podcat`='$id' order by `id` desc limit $start, $set[p_str]");
			echo'<div class="touch">';
			while($res=$sql->fetch(PDO::FETCH_ASSOC)){
				echo'<div class="menu"><a href="/dl/file'.$res['id'].'">';
				$ex=strtolower(substr(strrchr($res['file'], '.'), 1)); #формат файла
				if($ex=='jpg' or $ex=='jpeg' or $ex=='png' or $ex=='gif')echo'<img src="/files/'.$res['file'].'" alt="" style="height:30px;width:30px;float:left;margin-right:3px;"/>';
				elseif($ex=='mp4' or $ex=='3gp' or $ex=='flv' or $ex=='avi')echo'<img src="/files/images/video.png" alt="" style="height:30px;width:30px;float:left;margin-right:3px;"/>';
				elseif($ex=='mp3' or $ex=='wav' or $ex=='ogg' or $ex=='amr')echo'<img src="/files/images/mp3.png" alt="" style="height:30px;width:30px;float:left;margin-right:3px;"/>';
				elseif($ex=='zip' or $ex=='rar')echo'<img src="/files/images/zip.png" alt="" style="height:30px;width:30px;float:left;margin-right:3px;"/>';
				elseif($ex=='txt')echo'<img src="/files/images/txt.png" alt="" style="height:30px;width:30px;float:left;margin-right:3px;"/>';
				echo'<b>'.$res['name'].'</b><br />Размер: '.sizer('../files/'.$res['file']).'</a></div>';
			}
			echo'</div>';
			if ($k_page>1)str('/dl/podcat'.$id.'/',$k_page,$page); // Вывод страниц
		}else{echo'<div class="menu">Здесь пока пусто</div>';}
		back('/dl/cat'.$q['cat']);
	}else{echo'<div class="menu">Ошибка идентификатора</div>';}
	break;
	
	case 'cat':
	$q=$db->query("select * from `cat` where `id`='$id'")->fetch(PDO::FETCH_ASSOC);
	if($q){
		$k_post=$db->query("SELECT `id` FROM `podcat` WHERE `cat`='$id'")->rowCount();
		if($k_post){
			echo'<div class="touch">';
			$k_page=k_page($k_post,$set['p_str']);$page=page($k_page);$start=$set['p_str']*$page-$set['p_str'];
			$sql=$db->query("select * from `podcat` where `cat`='$id' order by `id` desc limit $start, $set[p_str]");
			while($res=$sql->fetch(PDO::FETCH_ASSOC)){
				echo'<div class="menu">
				<a href="/dl/podcat'.$res['id'].'">'.$res['name'].' '.right($db->query("select `id` from `files` where `podcat`='$res[id]'")->rowCount()).'</a></div>';
			}
			echo'</div>';
			if ($k_page>1)str('/dl/cat'.$id.'/',$k_page,$page); // Вывод страниц
		}else{echo'<div class="menu">Файлов еще нет</div>';}
	}else{echo'<div class="menu">Ошибка идентификатора</div>';}
	back('/dl');
	break;
	
	case 'top':
	$total=$db->query("select `id` from `files`")->rowCount();
	if($total){
		$sql=$db->query("select * from `files` order by `down` desc limit $set[p_str]");
		echo'<div class="touch">';
		while($res=$sql->fetch(PDO::FETCH_ASSOC)){
			echo'<div class="menu"><a href="/dl/file'.$res['id'].'">- '.$res['name'].' '.right('Загрузок: '.$res['down']).'</a></div>';
		}
		echo'</div>';
	}else{echo'<div class="menu">Файлов еще нет</div>';}
	break;
	
	default:
	echo'<div class="touch">';
	if($user['level']>3)echo'
	<div class="menu"><a href="/admin?act=zc">Управление загруз-центром</a></div>
	<div class="menu"><a href="/dl?act=load">Добавить файл</a></div>';
	echo'
	<div class="menu"><a href="/dl/top">Топ файлов</a></div>
	<div class="menu"><a href="#">Новые файлы</a></div>
	<div class="menu"><a href="#">Поиск</a></div>
	</div>';
	echo '<div class="head">Категории</div>';
	$total=$db->query("select `id` from `cat`")->rowCount();
	if($total){
		$sql=$db->query("select * from `cat` order by `id`");
		echo'<div class="touch">';
		while($res=$sql->fetch(PDO::FETCH_ASSOC)){
			echo'<div class="menu"><a href="/dl/cat'.$res['id'].'">'.$res['name'].'</a></div>';
			$total_=$db->query("select `id` from `podcat` where `cat`='$res[id]'")->rowCount();
			if($total_){
				$sql_=$db->query("select * from `podcat` where `cat`='$res[id]' order by `id` asc");
				while($res_=$sql_->fetch(PDO::FETCH_ASSOC)){
					$files_new=$db->query("select `id` from `files` where `podcat`='$res_[id]' and `time`>($time-86400)")->rowCount();
					if($files_new)$new='/<span style="color:red;">'.$files_new.'</span>';else $new='';
					echo'<div class="citatka"><a href="/dl/podcat'.$res_['id'].'">'.$res_['name'].' '.right($db->query("select `id` from `files` where `podcat`='$res_[id]'")->rowCount().$new).'</a></div>';
				}
			}else{echo'<div class="citatka">Подкаталогов еще нет</div>';}
		}
		echo'</div>';
	}else{echo'<div class="menu">Категории не созданы</div>';}
	echo'<div class="menu" style="text-align:center;">Файлов: '.$db->query("select `id` from `files`")->rowCount().'</div>';
	back('/');
}
if($_COOKIE['style']=='web')require_once '../system/web_foot.php'; else require_once '../system/foot.php';
?>