View file pages/admin.php

File size: 14.03Kb
<?
error_reporting(0);
if (!defined('SECURED'))
{
	die("Unknown Error!");
}

if($level<2)
{
	title('Error!');
	echo'У вас недостаточно прав для доступа к этому разделу!';
	footer();
	exit;
}
	
if($ver=='wml')
{
	title('Error!');
	echo'Администрирование возможно только в <a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;xhtml&amp;'.SID.'">xHTML</a> версии.<br/>';
	footer();
	exit;
}
	
title('APanel');
div('APanel','b');

switch($_GET['act'])
{
	default: //просмотр категорий
	div("Привет, <b>$login</b>!",'a');
	if(!empty($_GET['r_down']))
	{
		$r_down=intval($_GET['r_down']);
		list($cp)=mysql_fetch_array(mysql_query("select position from categorys where id='".$r_down."';"));
		if(mysql_affected_rows()!=0)
		{
			list($lastp,$lastid)=mysql_fetch_array(mysql_query("select position,id from categorys where position>'".$cp."' and parent='0' order by position limit 0,1;"));
			if(mysql_affected_rows()!=0)
			{
				mysql_query("update categorys set position='".$lastp."' where id='".$r_down."';");
				mysql_query("update categorys set position='".$cp."' where id='".$lastid."';");
			}
		}
	}

	    if(!empty($_GET['r_up']))
		{
			$r_up=intval($_GET['r_up']);
			list($cp)=mysql_fetch_array(mysql_query("select position from categorys where id='".$r_up."';"));
			if(mysql_affected_rows()!=0)
			{
				list($lastp,$lastid)=mysql_fetch_array(mysql_query("select position,id from categorys where position<'".$cp."' and parent='0' order by position desc limit 0,1;"));
				if(mysql_affected_rows()!=0)
				{
					mysql_query("update categorys set position='".$lastp."' where id='".$r_up."';");
					mysql_query("update categorys set position='".$cp."' where id='".$lastid."';");
				}
			}
		}
		
		if(!empty($_GET['c_down']))
		{
			$c_down=intval($_GET['c_down']);
			list($cp,$parent)=mysql_fetch_array(mysql_query("select position,parent from categorys where id='".$c_down."';"));
			if(mysql_affected_rows()!=0)
			{
				list($lastp,$lastid)=mysql_fetch_array(mysql_query("select position,id from categorys where position>'".$cp."' and parent='$parent' order by position limit 0,1;"));
				if(mysql_affected_rows()!=0)
				{
					mysql_query("update categorys set position='".$lastp."' where id='".$c_down."';");
					mysql_query("update categorys set position='".$cp."' where id='".$lastid."';");
				}
			}
		}

	    if(!empty($_GET['c_up']))
		{
			$c_up=intval($_GET['c_up']);
			list($cp,$parent)=mysql_fetch_array(mysql_query("select position,parent from categorys where id='".$c_up."';"));
			if(mysql_affected_rows()!=0)
			{
				list($lastp,$lastid)=mysql_fetch_array(mysql_query("select position,id from categorys where position<'".$cp."' and parent='$parent' order by position desc limit 0,1;"));
				if(mysql_affected_rows()!=0)
				{
					mysql_query("update categorys set position='".$lastp."' where id='".$c_up."';");
					mysql_query("update categorys set position='".$cp."' where id='".$lastid."';");
				}
			}
		}
		
	echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$subcategory['id'].'&amp;act=new_r&amp;'.SID.'"><img src="images/b_newtbl.png" alt="[NEW]"/>Новая категория</a><br/>';
		
	$q=mysql_query("select * from categorys where parent='0' order by position;");
	while($category=mysql_fetch_array($q))
	{
		$files=mysql_result(mysql_query("select count(id) from files where refcat='".$category['id']."';"),0);
		$text='<img src="images/dir.gif" alt="[DIR]"/>
		<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$category['id'].'&amp;'.SID.'">'.$category['name'].'</a>
		('.$files.')
		<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;r_up='.$category['id'].'&amp;'.SID.'">[<img src="images/arrow_up.gif" alt="[UP]"/>]</a>
		<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;r_down='.$category['id'].'&amp;'.SID.'">[<img src="images/arrow_down.gif" alt="[DOWN]"/>]</a>
		<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$category['id'].'&amp;act=r_edit&amp;'.SID.'">[<img src="images/b_edit.png" alt="[EDIT]"/>]</a>
		<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$category['id'].'&amp;act=r_del&amp;'.SID.'">[<img src="images/b_drop.png" alt="[DEL]"/>]</a>';
		div($text,'f');
		if(!empty($category['desc'])) echo $category['desc'].'<br/>';
		if($_GET['id']==$category['id'])
		{
			$id=intval($_GET['id']);
			$q2=mysql_query("select * from categorys where parent='$id' order by position;");
			while($subcategory=mysql_fetch_array($q2))
			{
				$files=mysql_result(mysql_query("select count(id) from files where cat='".$subcategory['id']."';"),0);
				$text='<img src="images/dir.gif" alt="[DIR]"/> ';
				if($subcategory['adult']==1) $text.='[18+]';
				$text.='<b><u>'.$subcategory['name'].'</u></b>
				('.$files.')
				<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;c_up='.$subcategory['id'].'&amp;'.SID.'">[<img src="images/arrow_up.gif" alt="[UP]"/>]</a>
				<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;c_down='.$subcategory['id'].'&amp;'.SID.'">[<img src="images/arrow_down.gif" alt="[DOWN]"/>]</a>
				<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$subcategory['id'].'&amp;act=c_edit&amp;'.SID.'">[<img src="images/b_edit.png" alt="[EDIT]"/>]</a>
				<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$subcategory['id'].'&amp;act=c_del&amp;'.SID.'">[<img src="images/b_drop.png" alt="[DEL]"/>]</a><br/>';
				echo $text;
				if(!empty($subcategory['desc'])) echo '&#187; '.$subcategory['desc'].'<br/>';
			}
			echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act=new_c&amp;'.SID.'"><img src="images/b_newtbl.png" alt="[NEW]"/>Новая подкатегория</a><br/>';
		}
		echo '<u>[Допустимые форматы: <b>'.str_replace('|', ', ', strtoupper($category['acc_ext'])).'</b>]</u><br/>';
	}
	echo $separator;
	echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;act=clean&amp;'.SID.'"><img src="images/co.gif" alt="[CO]"/>Чистка обменника</a><br/>';
	break;
	case 'new_r': //Новая категория
	div("<b>Новая категория</b>",'a');
	$id=intval($_GET['id']);
	if(!empty($_POST['name']) && !empty($_POST['ae']))
	{
		list($lpos)=mysql_fetch_array(mysql_query("select position from categorys where parent='0' order by position desc limit 0,1;"));
		$lpos+=1;
		mysql_query("INSERT INTO `categorys` ( `id` , `parent` , `name` , `desc` , `adult` , `position` , `acc_ext` ) 
		VALUES (
		0, '0', '".val($_POST['name'])."', '".strtolower(val($_POST['desc']))."', '0', '$lpos', '".val($_POST['ae'])."'
		);");
		$dir='files/'.mysql_insert_id();
		mkdir($dir,0777);
		chmod($dir,0777);
		unset($_POST);
		echo div('Категория успешно создана!','g');
	}
	echo '<form action="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;'.SID.'" method="post">';
	echo 'Название:<br/>
		<input name="name"/><br/>
		Описание:<br/>
		<textarea name="desc" cols="20" rows="3"></textarea><br/>
		Допустимые расширения:<br/>
		<textarea name="ae" cols="20" rows="3">ext1|ext2|ext3</textarea><br/>';
	echo '<input type="submit" value="Go!"/></form>';
	break;
	case 'r_edit': //Редактирование категории
	div("<b>Редактирование категории</b>",'a');
	$id=intval($_GET['id']);
	if(!empty($_POST['name']) && !empty($_POST['ae']))
	{
		mysql_query("UPDATE `categorys` SET
		`name` = '".val($_POST['name'])."',
		`desc` = '".val($_POST['desc'])."',
		`acc_ext` = '".strtolower(val($_POST['ae']))."' 
		WHERE `id` ='$id';");
		unset($_POST);
		echo div('Категория успешно изменена!','g');
	} else
	{
		$cat_data=mysql_fetch_array(mysql_query("select `name`,`desc`,`acc_ext` from `categorys` where `id` ='$id';"));
		echo '<form action="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;'.SID.'" method="post">';
		echo 'Название:<br/>
		<input name="name" value="'.$cat_data['name'].'"/><br/>
		Описание:<br/>
		<textarea name="desc" cols="20" rows="3">'.$cat_data['desc'].'</textarea><br/>
		Допустимые расширения:<br/>
		<textarea name="ae" cols="20" rows="3">'.$cat_data['acc_ext'].'</textarea><br/>';
		echo'<input type="submit" value="Go!"/></form>';
	}
	break;
	case 'r_del': //Удаление категории
	include'includes/func_rdir.php';
	div("<b>Удаление категории</b>",'a');
	$id=intval($_GET['id']);
	if(isset($_GET['go']))
	{
		mysql_query("DELETE FROM `categorys` WHERE `id` = '$id' or parent = '$id';");
		mysql_query("DELETE FROM `files` WHERE `refcat` = '$id';");
		rdir("files/$id");
		echo div('Категория успешно удалена!','g');
	} else
	{
		list($cat_name)=mysql_fetch_array(mysql_query("select `name` from `categorys` where `id` ='$id';"));
		$files=mysql_result(mysql_query("select count(id) from files where refcat='$id';"),0);
		echo'Вы действительно желаете удалить категорию <b>'.$cat_name.'</b>, содержащую <b>'.$files.'</b> файлов?<br/>';
		echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;go&amp;'.SID.'">Да</a>|';
		echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;'.SID.'">Нет</a><br/>';
	}
	break;
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	case 'new_c': //Новая подкатегория
	$id=intval($_GET['id']);
	list($cat_name)=mysql_fetch_array(mysql_query("select name from categorys where id='$id';"));
	div("<b>Новая подкатегория:</b>$cat_name",'a');
	if(!empty($_POST['name']))
	{
		list($lpos)=mysql_fetch_array(mysql_query("select position from categorys where parent='$id' order by position desc limit 0,1;"));
		$lpos+=1;
		mysql_query("INSERT INTO `categorys` ( `id` , `parent` , `name` , `desc` , `adult` , `position` , `acc_ext` ) 
		VALUES (
		0, '$id', '".val($_POST['name'])."', '".val($_POST['desc'])."', ".intval($_POST['fa']).", '$lpos', ''
		);");
		$dir='files/'.$id.'/'.mysql_insert_id();
		mkdir($dir,0777);
		chmod($dir,0777);
		unset($_POST);
		echo div('Подкатегория успешно создана!','g');
	}
	echo '<form action="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;'.SID.'" method="post">';
	echo 'Название:<br/>
		<input name="name"/><br/>
		Описание:<br/>
		<textarea name="desc" cols="20" rows="3"></textarea><br/>
		Для взрослых:<br/>
		<select name="fa">
		<option value="0">Нет</option>
		<option value="1">Да</option>
		</select><br/>';
	echo '<input type="submit" value="Go!"/></form>';
	break;
	case 'c_edit': //Редактирование подкатегории
	div("<b>Редактирование подкатегории</b>",'a');
	$id=intval($_GET['id']);
	if(!empty($_POST['name']))
	{
		mysql_query("UPDATE `categorys` SET
		`name` = '".val($_POST['name'])."',
		`desc` = '".val($_POST['desc'])."',
		`adult` = '".intval($_POST['fa'])."' 
		WHERE `id` ='$id';");
		unset($_POST);
		echo div('Подкатегория успешно изменена!','g');
	} else
	{
		$cat_data=mysql_fetch_array(mysql_query("select `name`,`desc`,`adult` from `categorys` where `id` ='$id';"));
		echo '<form action="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;'.SID.'" method="post">';
		echo 'Название:<br/>
		<input name="name" value="'.$cat_data['name'].'"/><br/>
		Описание:<br/>
		<textarea name="desc" cols="20" rows="3">'.$cat_data['desc'].'</textarea><br/>
		Для взрослых:<br/>
		<select name="fa">
		<option value="0">Нет</option>
		<option value="1" '.($cat_data['adult']==1 ? 'selected="selected"' : '').'>Да</option>
		</select><br/>';
		echo'<input type="submit" value="Go!"/></form>';
	}
	break;
	case 'c_del': //Удаление подкатегории
	include'includes/func_rdir.php';
	div("<b>Удаление подкатегории</b>",'a');
	$id=intval($_GET['id']);
	if(isset($_GET['go']))
	{
		list($parent)=mysql_fetch_array(mysql_query("select parent from categorys where id='$id';"));
		mysql_query("DELETE FROM `categorys` WHERE `id` = '$id';");
		mysql_query("DELETE FROM `files` WHERE `cat` = '$id';");
		rdir("files/$parent/$id");
		echo div('Подкатегория успешно удалена!','g');
	} else
	{
		list($cat_name)=mysql_fetch_array(mysql_query("select `name` from `categorys` where `id` ='$id';"));
		$files=mysql_result(mysql_query("select count(id) from files where cat='$id';"),0);
		echo'Вы действительно желаете удалить подкатегорию <b>'.$cat_name.'</b>, содержащую <b>'.$files.'</b> файлов?<br/>';
		echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;id='.$id.'&amp;act='.$_GET['act'].'&amp;go&amp;'.SID.'">Да</a>|';
		echo'<a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;'.SID.'">Нет</a><br/>';
	}
	break;
	case 'clean': //Чистка обменника
	div("<b>Чистка обменника</b>",'a');
	$total=0;
	$q=mysql_query("select id,filename,screen,jad,author from files where last_download<('".time()."'-'".$config['max_keep']."');");
	while($file=mysql_fetch_array($q))
	{
		list($author_id)=explode('|',$file_author);
		mysql_query("delete from comments where fid='".$file['id']."';");
		mysql_query("delete from files where id='".$file['id']."';");
		mysql_query("update `users` set `upl_files` = `upl_files` - 1, `upl_files_size` = `upl_files_size` - '".filesize($file['filename'])."' where `id`='$author_id';");
		unlink($file['filename']);
		@unlink($file['screen']);
		@unlink($file['jad']);
		++$total;
	}
	echo'Успешно удалено '.$total.' устаревших файлов!<br/>';
	break;
	}

echo $separator;	
echo'&#187; <a href="'.$_SERVER['PHP_SELF'].'?mode=admin&amp;'.SID.'">Админка</a><br/>';
echo $goback;
?>