<?
require('../include/path.php');
if($config["accload"]==1 || (isset($user) && ($rank&255)==255)){
if($config["accloadreg"]!=1 || isset($user)){
$c=(isset($_GET['c']) && !preg_match('/[^0-9]/',$_GET['c']))?$_GET['c']:1;
$result=sql_query('SELECT cat_parent_id,cat_name,auth_upload,cat_perpage,file_perpage FROM `'.PRE.'dc_categories` WHERE cat_id='.$c);
if($row=mysql_fetch_assoc($result)){
$cat=$row;
function unlink_thumbnail($name,$exp){
$exps=array('jpg','gif','png');
foreach($exps as $val){
if(file_exists($GLOBALS['path'].'/files/thumbnails/'.$exp.'/'.$name.'.'.$val)){
unlink($GLOBALS['path'].'/files/thumbnails/'.$exp.'/'.$name.'.'.$val);
return true;
}
} return false; }
function get_element($var,$cts){
foreach($cts as $key=>$val){
if(array_key_exists($var,$val)) return $val[$var];
}
return 0;
}
function sum($c=1,$cts){
$count=0;
if(isset($cts[$c])){
foreach($cts[$c] as $key=>$value){
$count+=sum($key,$cts);
}
}else $count+=get_element($c,$cts);
return $count;
}
function put_content(){
global $path,$user,$rank,$cat,$c;
$pc=(isset($_GET['pc']) && !preg_match('/[^0-9]/',$_GET['pc']))?$_GET['pc']:0;
echo '<div class="title">Файлобменник</div>';
if(isset($_POST['newcat']) && ($rank&2)==2){
if(isset($_POST['title']) && $_POST['title']!=''){
$title=filtr($_POST['title']);
}else{ $error[]='- Название каталога отсутствует<br><br>'; }
$desc=(isset($_POST['desc']))?filtr($_POST['desc']):'';
if(!isset($error)){
if($result=sql_query('SELECT `cat_order` FROM `'.PRE.'dc_categories` WHERE cat_parent_id ='.$c.' ORDER BY `cat_order` DESC LIMIT 1')){
if($row=mysql_fetch_assoc($result)){
$cat_order=$row['cat_order']+10;
}else $cat_order=10;
if(sql_query('INSERT INTO `'.PRE.'dc_categories` (cat_parent_id,cat_order,cat_name,cat_description,file_max_size,auth_upload,files_exp,cat_perpage,file_perpage) VALUES ('.$c.','.$cat_order.',"'.$title.'","'.$desc.'",2097152,2,0,10,10)')){
$error[]='- Каталог добавлен<br><br>';
}else $error[]=mysql_error().'<br><br>';
}else $error[]=mysql_error().'<br><br>';
}
}elseif(isset($_GET['cdel']) && !preg_match('/[^0-9]/',$_GET['cdel']) && ($rank&2)==2){
if($result=sql_query('SELECT COUNT(cat_id) FROM `'.PRE.'dc_categories` WHERE cat_parent_id='.$_GET['cdel'])){
$row=mysql_fetch_row($result);
if(!$row[0]){
if($result=sql_query('SELECT COUNT(file_id) FROM `'.PRE.'dc_files` WHERE cat_id='.$_GET['cdel'])){
$row=mysql_fetch_row($result);
if(!$row[0]){
if(sql_query('DELETE FROM `'.PRE.'dc_categories` WHERE cat_id='.$_GET['cdel'])){
$error[]='- Каталог удален<br><br>';
}else $error[]=mysql_error().'<br><br>';
}else $error[]='- Каталог содержит файлы<br><br>';
}else $error[]=mysql_error().'<br><br>';
}else $error[]='- Каталог содержит вложенные каталоги<br><br>';
}else $error[]=mysql_error().'<br><br>';
}elseif(isset($_GET['fdel']) && !preg_match('/[^0-9]/',$_GET['fdel']) && ($rank&2)==2){
if($result=sql_query('SELECT cat_id,file_name,file_exp,count_com FROM `'.PRE.'dc_files` WHERE file_id='.$_GET['fdel'])){
if($row=mysql_fetch_assoc($result)){
if(!sql_query('DELETE FROM `'.PRE.'dc_files` WHERE file_id='.$_GET['fdel'])){ $error[]=mysql_error().'<br><br>'; }
if($row['count_com']){ if(!sql_query('DELETE FROM `'.PRE.'dc_comments` WHERE file_id='.$_GET['fdel'])){ $error[]=mysql_error().'<br><br>'; } }
if(file_exists($path.'/files/'.$row['file_exp'].'/'.$row['file_name'].'.'.$row['file_exp'])){
unlink($path.'/files/'.$row['file_exp'].'/'.$row['file_name'].'.'.$row['file_exp']);
}
unlink_thumbnail($row['file_name'],$row['file_exp']);
$error[]='- Файл удален<br><br>';
}else $error[]='- Такой файл не найден в базе';
}else $error[]=mysql_error().'<br><br>';
}
if(isset($_GET['move']) && isset($_GET['moveid']) && !preg_match('/[^0-9]/',$_GET['moveid']) && (($rank&2)==2)){
$number=($_GET['move']=="up")?-15:15;
if(sql_query('UPDATE `'.PRE.'dc_categories` SET cat_order=cat_order+'.$number.' WHERE cat_id='.$_GET['moveid'])){
if($result=sql_query('SELECT cat_id FROM `'.PRE.'dc_categories` WHERE cat_parent_id='.$c.' ORDER BY cat_order ASC')){
$i=10;
while($row=mysql_fetch_assoc($result)){
sql_query('UPDATE `'.PRE.'dc_categories` SET cat_order='.$i.' WHERE cat_id='.$row['cat_id']);
$i+=10;
}
}else $error[]=mysql_error().'<br><br>';
}else $error[]=mysql_error().'<br><br>';
}
if(isset($error)) { echo implode($error); }
$result=sql_query('SELECT COUNT(cat_id) FROM `'.PRE.'dc_categories` WHERE cat_parent_id='.$c) or die(mysql_error());
$row=mysql_fetch_row($result);
if($row[0]){
require($path.'/manage/ctype.php');
//--запрос количества файлов в каталогах--
$cfiles=array();
$result=sql_query('SELECT cat_id,COUNT(file_id) FROM `'.PRE.'dc_files` GROUP BY cat_id') or die(mysql_error());
while($row=mysql_fetch_row($result)){
$cfiles[$row[0]]=$row[1];
}
$result=sql_query('SELECT cat_id,cat_parent_id FROM `'.PRE.'dc_categories`') or die(mysql_error());
while($row=mysql_fetch_assoc($result)){
$cts[$row['cat_parent_id']][$row['cat_id']]=(isset($cfiles[$row['cat_id']]))?$cfiles[$row['cat_id']]:0;
}
//-----------------------------------------
$pagCoun=ceil($row[0]/$cat['cat_perpage']);
$interv=5; $sint=($interv-1)/2; $limn=$sint; $lime=$pagCoun-$sint;
if($result=sql_query('SELECT cat_id,cat_name,cat_description,files_exp FROM `'.PRE.'dc_categories` WHERE cat_parent_id='.$c.' ORDER BY cat_order ASC LIMIT '.($cat['cat_perpage']*$pc).','.$cat['cat_perpage'])){
while($row=mysql_fetch_assoc($result)){
$cats[]=$row;
}
} else echo mysql_error().'<br><br>';
foreach($cats as $val){
echo '<a href="?c='.$val['cat_id'].'&'.SID.'">'.htmlspecialchars(bbc($val['cat_name'])).'</a> ';
echo '('.sum($val['cat_id'],$cts).')<br>';
if(($rank&2)==2) echo '<small><a href="index.php?move=down&moveid='.$val['cat_id'].'&c='.$c.'&'.SID.'">↓</a> <a href="index.php?move=up&moveid='.$val['cat_id'].'&c='.$c.'&'.SID.'">↑</a></small><br>';
if($val['cat_description']){ echo '<small>'.htmlspecialchars(bbc($val['cat_description'])).'</small><br>'; }
$i=0;$tmp=false;
foreach($ctype as $key=>$value){
if(($val['files_exp']&pow(2,$i))==pow(2,$i)){ $tmp.=$key.' ';}
$i++;
}
if($tmp){ echo '<small>Типы файлов: '.$tmp.'</small><br>'; }
if(($rank&2)==2){
echo '<small><a href="dirsetup.php?id='.$val['cat_id'].'&c='.$c.'&'.SID.'">настроить</a> ';
echo '<a href="index.php?cdel='.$val['cat_id'].'&c='.$c.'&'.SID.'">удалить</a></small><br><br>';
}
}
// Постраничный вывод каталогов
if($cat['cat_perpage'] && $pagCoun>1){ echo'<div class="nav">Стр ';
if($pc>0) {echo '<a href="?c='.$c.'&p='.($pc-1).'&'.SID.'"><<</a> '; }
if($interv>=$pagCoun) { for($i=1;$i<=$pagCoun;$i++) { if (($i-1)==$pc) { echo $i.' ';} else { echo '<a href="?c='.$c.'&pc='.($i-1).'&'.SID.'">'.$i.'</a> '; } }
} else {
if($pc<=$limn) { for($i=1;$i<=$interv;$i++) { if (($i-1)==$pc) { echo $i.' ';} else { echo '<a href="?c='.$c.'&pc='.($i-1).'&'.SID.'">'.$i.'</a> '; }}}
elseif($pc>=$lime) { for($i=$pagCoun-$interv+1;$i<=$pagCoun;$i++) { if (($i-1)==$pc) { echo $i.' ';} else { echo '<a href="?c='.$c.'&pc='.($i-1).'&'.SID.'">'.$i.'</a> '; }} }
else { for($i=$pc+1-$sint;$i<=$pc+1+$sint;$i++) { if (($i-1)==$pc) { echo $i.' ';} else { echo '<a href="?c='.$c.'&pc='.($i-1).'&'.SID.'">'.$i.'</a> '; }} }
}
if(($i-2)>$pc) { echo '<a href="?c='.$c.'&pc='.($pc+1).'&'.SID.'">>></a> '; }
echo'</div>'; }
//---------------
if(($rank&2)==2){
// ФОРМА ДОБАВЛЕНИЯ КАТЕГОРИИ
echo '<div class="header">Новая категория</div>';
echo'<form action="?c='.$c.'&'.SID.'" method="post" accept-charset="utf-8">';
echo'Название:<br><input type="text" maxlength="128" name="title" class="text" value="'.((isset($_POST['title']) && isset($error))?htmlspecialchars($_POST['title']):'').'"><br>';
echo'Описание:<br><textarea cols="30" rows="5" name="desc">'.((isset($_POST['desc']) && isset($error))?htmlspecialchars($_POST['desc']):'').'</textarea><br>';
echo'<input type="submit" class="button" name="newcat" value="Добавить">';
echo'</form>';
}
echo '<br><a href="search.php?c='.$c.'&'.SID.'">Поиск</a>';
if(($rank&2)==2){
echo '<br><a href="unchecked.php?'.SID.'">Не проверенные</a>';
echo '<br><a href="dirsetup.php?id='.$c.'&inside&'.SID.'">Настроить каталог</a> ';
}
if($c>1){ echo '<div class="nav"><a href="index.php?c='.$cat['cat_parent_id'].'&'.SID.'">назад</a></div>'; }
echo '<div class="nav"><a href="../index.php?'.SID.'">на главную</a></div>';
}else{
$result=sql_query('SELECT COUNT(file_id) FROM `'.PRE.'dc_files` WHERE cat_id='.$c) or die(mysql_error());
$row=mysql_fetch_row($result);
if($row[0]){
$pc=(isset($_GET['pc']) && !preg_match('/[^0-9]/',$_GET['pc']))?$_GET['pc']:0;
$p=(isset($_GET['p']) && !preg_match('/[^0-9]/',$_GET['p']))?$_GET['p']:0;
if($c>1) echo '<div class="header">'.bbc($cat['cat_name']).'</div>';
$srt_fields=array('file_date','file_size','file_downloads','count_com');
$srt_key=(isset($_GET['srt']) && array_key_exists($_GET['srt'],$srt_fields))?$_GET['srt']:0;
$pagCoun=ceil($row[0]/$cat['file_perpage']);
$interv=5; $sint=($interv-1)/2; $limn=$sint; $lime=$pagCoun-$sint;
if($result=sql_query("SELECT file_id,user,file_name,file_exp,file_title,file_description,DATE_FORMAT(file_date,'%d.%m.%Y') as date,file_size,file_downloads,count_com,admit FROM `".PRE."dc_files` WHERE cat_id=".$c." ORDER BY ".$srt_fields[$srt_key]." ".((isset($_GET['back']))?"ASC":"DESC")." LIMIT ".($cat['file_perpage']*$p).",".$cat['file_perpage'])){
while($row=mysql_fetch_assoc($result)){
echo '<div class="header"><a href="'.$row['file_id'].'.'.$row['file_exp'].'">'.bbc($row['file_title']).'</a><br><small>Тип: '.$row['file_exp'].'</small></div>';
if(preview($row['file_exp'])){
echo '<img src="/files/thumbnails/'.$row['file_name'].'.'.$row['file_exp'].'" alt=""/>';
}elseif(file_exists($path.'/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.jpg')){
echo '<img src="/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.jpg" alt=""/>';
}elseif(file_exists($path.'/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.gif')){
echo '<img src="/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.gif" alt=""/>';
}elseif(file_exists($path.'/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.png')){
echo '<img src="/files/thumbnails/'.$row['file_exp'].'/'.$row['file_name'].'.png" alt=""/>';
}
echo '<br><a href="'.$row['file_id'].'.'.$row['file_exp'].'">скачать</a>';
if($row['file_exp']=='jar' && file_exists($path.'/files/jar/'.$row['file_name'].'.jad')){ echo ' <a href="java/'.$row['file_id'].'.jad">jad</a><br>'; }
echo '<small>';
if($row['file_description']){ echo '<br>'.bbc($row['file_description']); }
echo '<br>Размер: '.round($row['file_size']/1024).' KB';
echo '<br>Скачано: '.$row['file_downloads'];
$author=($row['user']);
echo '<br>Добавил: '.(($author!='Гость')?'<a href="../whois.php?login='.MyEncode($author).'&c='.$c.'&p='.$p.'&'.((isset($_GET['back']))?'back&':'').SID.'">'.$author.'</a>':$author);
echo '<br>Дата: '.$row['date'];
if(($rank&2)==2) echo '<br>Статус: '.(($row['admit'])?'проверен':'не проверен');
echo '<br><a href="comments.php?file='.$row['file_id'].'&c='.$c.'&p='.$p.'&'.((isset($_GET['back']))?'back&':'').SID.'">Комментарии</a> ('.$row['count_com'].')';
if((isset($user) && $user['login']==$row['user'] && $row['admit']!=1) || ($rank&2)==2) echo '<br><a href="index.php?fdel='.$row['file_id'].'&c='.$c.'&p='.$p.'&'.((isset($_GET['back']))?'back&':'').SID.'">удалить</a> <a href="mod.php?id='.$row['file_id'].'&pc='.$pc.'&p='.$p.'&'.((isset($_GET['back']))?'back&':'').SID.'">изменить</a>';
echo '</small>';
}
} else echo mysql_error().'<br><br>';
// Постраничный вывод каталогов
if($cat['file_perpage'] && $pagCoun>1){ echo'<div class="nav">Стр ';
if($p>0) {echo '<a href="?c='.$c.'&p='.($p-1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'"><<</a> '; }
if($interv>=$pagCoun) { for($i=1;$i<=$pagCoun;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="?c='.$c.'&p='.($i-1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'">'.$i.'</a> '; } }
} else {
if($p<=$limn) { for($i=1;$i<=$interv;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="?c='.$c.'&p='.($i-1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'">'.$i.'</a> '; }}}
elseif($p>=$lime) { for($i=$pagCoun-$interv+1;$i<=$pagCoun;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="?c='.$c.'&p='.($i-1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'">'.$i.'</a> '; }} }
else { for($i=$p+1-$sint;$i<=$p+1+$sint;$i++) { if (($i-1)==$p) { echo $i.' ';} else { echo '<a href="?c='.$c.'&p='.($i-1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'">'.$i.'</a> '; }} }
}
if(($i-2)>$p) {echo '<a href="?c='.$c.'&p='.($p+1).'&srt='.$srt_key.'&'.((isset($_GET['pc']))?'pc='.$_GET['pc'].'&':'').((isset($_GET['back']))?'back&':'').SID.'">>></a> ';}
echo'</div>'; }
//---------------
//}
if($c>1){ echo '<div class="nav"><a href="?c='.$cat['cat_parent_id'].'&'.SID.'">назад</a></div>'; }
echo '<br><br>Сортировать:<br>';
$sort=array('по дате','по размеру','по популярности','по комментариям');
foreach($sort as $key=>$val){
echo ($srt_key==$key)?'<u>'.$val.'</u><br>':'<a href="?srt='.$key.'&c='.$c.'&p='.$p.'&pc='.$pc.'&'.((isset($_GET['back']))?'back&':'').SID.'">'.$val.'</a><br>';
}
if(isset($_GET['back'])){ echo'<br><a href="?c='.$c.'&p='.$p.'&pc='.$pc.'&srt='.$srt_key.'&'.SID.'">в обратном порядке</a><br>';
}else{ echo'<br><a href="?back&c='.$c.'&p='.$p.'&pc='.$pc.'&srt='.$srt_key.'&'.SID.'">в обратном порядке</a><br>';}
echo '<br><a href="search.php?c='.$c.'&'.SID.'">Поиск</a><br>';
if(($rank&2)==2){
echo '<br><a href="mancont.php?'.SID.'">Распределение контента</a>';
echo '<br><a href="unchecked.php?'.SID.'">Непроверенные</a>';
echo '<br><a href="dirsetup.php?id='.$c.'&inside&'.SID.'">Настроить каталог</a><br><br>';
}
if(($rank&$cat['auth_upload'])==$cat['auth_upload']){ echo '<br><a href="upload.php?c='.$c.'&'.SID.'">Загрузить</a>'; }
echo '<div class="nav"><a href="../index.php?'.SID.'">на главную</a></div>';
}else{
echo '- Каталог пустой<br>';
if(($rank&2)==2){
// ФОРМА ДОБАВЛЕНИЯ КАТЕГОРИИ
echo '<div class="header">Новая категория</div>';
echo'<form action="index.php?c='.$c.'&'.SID.'" method="post" accept-charset="utf-8">';
echo'Название:<br><input type="text" maxlength="128" name="title" class="text" value="'.((isset($_POST['title']) && isset($error))?htmlspecialchars($_POST['title']):'').'"><br>';
echo'Описание:<br><textarea cols="30" rows="5" name="desc">'.((isset($_POST['desc']) && isset($error))?htmlspecialchars($_POST['desc']):'').'</textarea><br>';
echo'<input type="submit" class="button" name="newcat" value="Добавить">';
echo'</form>';
}
if($c>1) echo '<div class="nav"><a href="?c='.$cat['cat_parent_id'].'&'.SID.'">назад</a></div>';
if(($rank&2)==2) echo '<a href="dirsetup.php?id='.$c.'&inside&'.SID.'">Настроить каталог</a><br><br>';
if(($rank&$cat['auth_upload'])==$cat['auth_upload']){ echo '<a href="upload.php?c='.$c.'&'.SID.'">Загрузить</a><br>'; }
echo '<div class="nav"><a href="../index.php?'.SID.'">на главную</a></div>';
}
}
}
}else{
$link = '3; URL=/';
function put_content(){
echo '- Категория не найдена<br><br>';
echo '<a href="../index.php">далее...</a>';
}
}
}else{
$link = '10; URL=/';
function put_content() {
echo '- Доступ запрещен незарегистрированным пользователям<br><br>';
echo '<a href="../index.php">далее...</a>';
}
}
}else{
$link = '10; URL=/?'.SID;
function put_content() {
echo '- Доступ запрещен администрацией сайта<br><br>';
echo '<a href="../index.php?'.SID.'">далее...</a>';
}
}
// подключение дизайна
design();?>