<?php
/**
 * N3Download (Nesquik Download)
 *
 * Система представляет собой скрипт загруз-центра
 * Система написана на PHP, хранящая данные в БД MYSQL
 * Высокая скорость работы скрипта, устойчивость к нагрузкам
 *
 * Автор: N3squ1k (Несквик)
 * ICQ: 551-228
 *
 * Вы не имеете право продавать скрипта
 * Вы не имеете право вылаживать скрипта
 * Все права на данный скрипт пренадлежат его автору
 *
 * Все права защищены © 2010
 */
define('PAGESTR', 5);
define('ROOT', str_replace(array('\\', '//'), '/', getcwd()).'/');

if (file_exists(ROOT.'__incfiles/core.php')) {
	require_once(ROOT.'__incfiles/core.php');
} else {
	exit('Немогу подключить системный файл');
}

require_header('Загрузки');

if ($id) {
	$dir = mysql_fetch_assoc(mysql_query("SELECT `t1`.`path`, COUNT(`t2`.`id`) AS `count` FROM `".SQLprefixTable."files` AS `t1` LEFT JOIN `".SQLprefixTable."files` AS `t2` ON (`t2`.`infolder`=`t1`.`path`) WHERE `t1`.`id`='".$id."' GROUP BY `t1`.`id` ORDER BY NULL"));
} else {
	$dir['path'] = $set['path'].'/';
	$dir['count'] = mysql_result(mysql_query("SELECT COUNT(1) FROM `".SQLprefixTable."files` WHERE `infolder`='".mysql_real_escape_string($dir['path'])."'"), 0);
}

if (!is_dir($dir['path'])) {
	error('Folder not found!');
}

$sort_array = array('id', 'name', 'load', 'dateupload', 'rate');

if (isset($_SESSION['sort'])) {
	if (in_array($_SESSION['sort'], $sort_array)) {
		$sort = $_SESSION['sort'];
	} else {
		$_SESSION['sort'] = 'id';
	}
} else {
	$_SESSION['sort'] = 'id';
	$sort = 'id';
}

if ($admin) {
	echo '<div class="menu"><a href="'.ADMIN.'"><b>Админ-панель</b></a></div>';
}

if (!$id) {
	
	$sql = mysql_query("SELECT `n`.`id`, `n`.`date`, `n`.`name`, COUNT(`c`.`id`) AS `count` FROM `".SQLprefixTable."news` AS `n` LEFT JOIN `".SQLprefixTable."news_comment` AS `c` ON (`c`.`ref`=`n`.`id`) GROUP BY `n`.`id` ORDER BY `n`.`id` DESC LIMIT 1");
	
	if (mysql_num_rows($sql)) {
		$row = mysql_fetch_assoc($sql);

		echo '<div class="menu"><a href="'.SCRIPT.'/news/index.xhtml"><b>Новости</b></a> ['.clock($row['date']).']<br/>'.htmlspecialchars($row['name']).' <a href="'.SCRIPT.'/news/index.xhtml#'.$row['id'].'">-></a><br/>
		<a href="'.SCRIPT.'/news/comment.xhtml/'.$row['id'].'/">Комментарии</a> ['.$row['count'].']</div>
		
		<div class="block">Лучшие загрузки</div>';
	}
	
	unset($sql, $row);
}

if ($set['search']) {
	echo '<div class="block"><a href="'.SCRIPT.'/search.xhtml">Поиск файлов</a></div>';
}

if ($dir['count'] == 0) {
	echo '<div class="menu">В данной папке нет файлов!</div>';
} else {

	if ($id) {

		if (isset($_GET['sort'])) {
			if (in_array($_GET['sort'], $sort_array)) {
				$_SESSION['sort'] = $_GET['sort'];
			} else {
				$_SESSION['sort'] = 'id';
			}
		}
	
		echo '<div class="sort">
		Сортировать по:<br/>';
		
		if ($_SESSION['sort'] == 'id') {
			echo '<b>порядку</b>';
		}
		else {
			echo '<a href="'.SCRIPT.'/'.$id.'/id.sort">порядку</a>';
		}
		
		echo ' / ';
		
		if ($_SESSION['sort'] == 'name') {
			echo '<b>имени</b>';
		}
		else {
			echo '<a href="'.SCRIPT.'/'.$id.'/name.sort">имени</a>';
		}

		echo ' / ';
		
		if ($_SESSION['sort'] == 'load') {
			echo '<b>загрузкам</b>';
		}
		else {
			echo '<a href="'.SCRIPT.'/'.$id.'/load.sort">загрузкам</a>';
		}
		
		echo ' / ';
		
		if ($_SESSION['sort'] == 'dateupload') {
			echo '<b>дате</b>';
		}
		else {
			echo '<a href="'.SCRIPT.'/'.$id.'/dateupload.sort">дате</a>';
		}

		echo ' / ';
		
		if ($_SESSION['sort'] == 'rate') {
			echo '<b>рейтингу</b>';
		}
		else {
			echo '<a href="'.SCRIPT.'/'.$id.'/rate.sort">рейтингу</a>';
		}

		echo '</div>';
	
	}

	$k_page = k_page($dir['count'], PAGESTR); 
	$page = page($k_page);
	define('START', (PAGESTR * $page - PAGESTR));

	$sql = mysql_query("SELECT
	`t1`.`id`,
	`t1`.`path`,
	`t1`.`name`,
	`t1`.`size`,
	`t1`.`load`,
	`t1`.`count_files`,
	COUNT(`t2`.`id`) AS `new_file`
	FROM `".SQLprefixTable."files` AS `t1`
	LEFT JOIN `".SQLprefixTable."files` AS `t2`
	ON (`t2`.`infolder`=`t1`.`path` AND `t2`.`dateupload`>'".(time() - 86400)."' AND `t2`.`size`>'0')
	WHERE `t1`.`infolder`='".mysql_real_escape_string($dir['path'])."'
	GROUP BY `t1`.`id`
	LIMIT ".START.", ".PAGESTR);
	
	$i = 0;

	while ($row = mysql_fetch_assoc($sql)) {

		if (is_dir($row['path'])) {
		
			if ($row['new_file']) {
				$new_file = '<span style="color: #FF0000">+'.$row['new_file'].'</span>';
			} else {
				$new_file = '';
			}

			echo '<div class="'.($i++ % 2 ? 'main' : 'menu').'"><a href="'.SCRIPT.'/'.$row['id'].'/">'.htmlspecialchars(str_replace('*', '', $row['name'])).'</a> ['.$row['count_files'].'] '.$new_file.'</div>';
		}
		else if (is_file($row['path'])) {
		
			$ext = strtolower(pathinfo($row['path'], PATHINFO_EXTENSION));

			echo '<div class="'.($i++ % 2 ? 'main' : 'menu').'"><table><tr>';

			$filename = pathinfo($row['path'], PATHINFO_BASENAME);
			
			if (is_file($set['screen'].'/'.$filename.'.gif') || is_file($set['screen'].'/'.$filename.'.GIF')) {
				echo '<td><img src="'.SCRIPT.'/'.$filename.'.gif.image" alt="'.$ext.'"/></td>';
			}
			else if (is_file($set['screen'].'/'.$filename.'.jpg') || is_file($set['screen'].'/'.$filename.'.JPG')) {
				echo '<td><img src="'.SCRIPT.'/'.$filename.'.jpg.image" alt="'.$ext.'"/></td>';
			}
			else if (is_file($set['screen'].'/'.$filename.'.png') || is_file($set['screen'].'/'.$filename.'.PNG')) {
				echo '<td><img src="'.SCRIPT.'/'.$filename.'.png.image" alt="'.$ext.'"/></td>';
			}
			else if (is_file($set['screen'].'/'.$filename.'.jpeg') || is_file($set['screen'].'/'.$filename.'.JPEG')) {
				echo '<td><img src="'.SCRIPT.'/'.$filename.'.jpeg.image" alt="'.$ext.'"/></td>';
			}
			else if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
				echo '<td><img src="'.SCRIPT.'/'.$row['id'].'.img" alt="'.$ext.'"/></td>';
			}
			else if (($ext == '3gp' || $ext == 'mp4') && extension_loaded('ffmpeg')) {
				echo '<td><img src="'.SCRIPT.'/'.$row['id'].'.ffmpeg" alt="'.$ext.'"/></td>';
			}
			else if ($ext == 'thm' || $ext == 'nth') {
				echo '<td><img src="'.SCRIPT.'/'.$row['id'].'[small].theme" alt="'.$ext.'"/></td>';
			}
			
			echo '<td><a href="'.SCRIPT.'/view/'.$row['id'].'/">'.htmlspecialchars($row['name']).'</a><br/>
			Размер: '.size($row['size']).'<br/>
			Скачиваний: '.$row['load'].'</td>
			</tr></table></div>';
		}
	
	}

	if ($k_page > 1) {
		navigation(SCRIPT.'/'.($id ? $id.'/' : null), $k_page, $page);
	}
	
	unset($sql);

}

if ($id) {

	if (file_exists(SYSTEM.'cache.class.php')) {

		require_once(SYSTEM.'cache.class.php');
		$cache = new CACHE('cache/navigation');

		if (!$block = $cache->cache('navigation'.$id, 3600)) {
			$explode = explode('/', $dir['path']);
			
			$implode = "SELECT `id`, `name` FROM `".SQLprefixTable."files` WHERE `path` IN(";

			foreach ($explode as $value) {
				$path .= $value.'/';
				$implode .= '"'.mysql_real_escape_string($path).'",';
			}

			$sql = mysql_query(rtrim($implode, ',').')');
			
			$block = '<a href="'.SCRIPT.'">Все загрузки</a> / ';
			while ($row = mysql_fetch_row($sql)) {
				$block .= '<a href="'.SCRIPT.'/'.$row[0].'/">'.htmlspecialchars(str_replace('*', '', $row[1])).'</a> / ';
			}
			$cache->save('navigation'.$id, $block);
		}
		
		echo '<div class="block">'.rtrim($block, ' / ').'</div>';
		
	} else {
		echo '<div class="block"><a href="'.SCRIPT.'">Все загрузки</a></div>';
	}
} else {

	if ($dir['count']) {
		echo '<div class="menu">
		<span style="color: #FF0000;">+x</span> - кол-во новых файлов за сутки
		</div>';
	}
	
	if ($set['stat']) {
		echo '<div class="block"><a href="'.SCRIPT.'/stat.xhtml">Статистика</a></div>';
	}

}

require_footer();
?>