Просмотр файла publs_v1_0/file.php

Размер файла: 31.43Kb
<?php
if (defined('BASEDIR')) {
	exit (header('Location: /index.php'));
}

$headmod = 'pub';
$textl = 'Публикации';

require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/header.php');

require_once ("./inc/conf.php");

$act = isset($_GET['act']) ? check($_GET['act']) : 'index' ; 
$start = isset($_GET['start']) ? abs(intval($_GET['start'])) : 0 ; 
$id = isset($_GET['id']) ? abs(intval($_GET['id'])) : 0;  
$set_user = 6;

if (is_admin(array(101)) || is_admin(array(102))) {
	if (empty($id)) {
		echo '<div class="rmenu">ОШИБКА!!!<br /></div>';
	} else {

		switch ($act) {
			######################################################################
			##                  Подготовка к редактированию                     ##
			######################################################################
			case "editfile":
				//r_show_title('','Редактирование ожидающей публикации');
				$config['newtitle'] = 'Редактирование ожидающей публикации';
				
				$new = DB::run() -> queryFetch("SELECT * FROM `pub_arts` WHERE `id` = '".$id."' AND `type` = 'file' LIMIT 1;", array($id));
				$cat = DB::run() -> queryFetch("SELECT * FROM `pub_arts` WHERE `type`= 'dir' AND `id` =?;", array($new['fid']));

				if (!empty($new)) {
					$downs = DB::run() -> query("SELECT `id`, `fid`, `name` FROM `pub_arts` WHERE `type`= 'dir' ORDER BY `ord` ASC;") -> fetchAll();
					if (count($downs) > 0) {
						//if ($new['avtor'] == $log) {
							echo '<a href="#down">Вниз</a> | <a href="fileman.php?">М.П.</a> » ';
							echo '<a href="fileman.php?id='.$cat['id'].'">'.$cat['name'].'</a> » ';
							echo '<a href="read.php?id='.$id.'">Обзор публикации</a><br />';

							echo '<div class="b">';
							echo '<b><big>Редактирование</big></b></div>';
							echo '<div class="form">';
							echo '<form action="?act=edit&amp;id='.$id.'&amp;start='.$start.'" method="post">';

							echo '<label>Название:</label> <br />';
							echo '<input type="text" name="name" value="'.$new['name'].'"  class="form-control form-control-lg"/> <br />';
								
							echo '<label>Описание:</label> <br />';
							echo '<textarea name="opis" class="form-control form-control-lg">'.$new['opis'].'</textarea> <br />';
						
							echo '<label>Публикация:</label> <br />';
							echo '<textarea name="text" rows="'.$set_user['field_h'].'" id="markItUp" class="form-control form-control-lg">'.($new['text']).'</textarea>';

							echo '<label>Метки:</label> <br /> <input name="tegs" value="'.$new['tegs'].'" class="form-control form-control-lg"/> <br />';

							echo '<label>Автор:</label> <br />';
							echo '<input type="text" name="avtor" size="3" maxlength="50" value="'.$new['avtor'].'" /> <br />';
								
							if ($new['moder'] == 1) {
								$checked = 'checked="checked"';
								$check = '  <label class="text-success">Проверена</label>';
							} else {
								$checked = '';
								$check = '  <label class="text-danger">Не проверена</label>';
							}
							echo '<p><input name="moder" type="checkbox" value="1" '.$checked.' /> '.$check.' </p>';

							echo '<p><input name="trt" type="checkbox" value="1" /> Заменить латинские симолы рускими </p><br />';

							echo '<input class="btn btn-primary" value="Изменить" type="submit" /></form></div><br />';
						//} else { r_show_error('Ошибка! Изменение невозможно, вы не автор данной публикации!'); }
					} else { show_error('Категории публикаций еще не созданы!'); }
				} else { show_error('Данной публикации не существует!'); }
				echo '<a href="fileman.php?id='.$new['fid'].'&amp;start='.$start.'">Вернуться</a> <br />';
			
			/*
				if (mysql_result(mysql_query("select COUNT(*) from `pub_arts` where `id` = '".$id."' and `type` = 'file'"),0) > 0) {
					$res = mysql_fetch_array(mysql_query("select * from `pub_arts` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
					$name = htmlentities($res['name'],ENT_QUOTES,'UTF-8');
					$opis = htmlentities($res['opis'],ENT_QUOTES,'UTF-8');
					$text = htmlentities($res['text'],ENT_QUOTES,'UTF-8');
					$tegs = htmlentities($res['tegs'],ENT_QUOTES,'UTF-8');
					if (empty($_POST['submit'])) {
						echo '<a href="read.php?id='.$id.'">'.$res['name'].'</a>';
						echo '<div class="form">';
						echo '<form method="post" action="file.php?act=editfile&amp;id='.$id.'">';
						echo '<b>Название стаьи</b>: <br /> <input value="'.$name.'" name="name"/> <br />';
						echo '<b>Описание стаьи</b>: <br /> <textarea name="opis">'.$opis.'</textarea> <br />';
						echo '<b>Статья</b>: <br /> <textarea name="text" rows="'.$set_user['field_h'].'" id="markItUp">'.$text.'</textarea> <br />';
						echo '<label>Метки:</label> <br /> <input name="tegs" value="'.$tegs.'" class="form-control form-control-lg"/> <br />';
						echo '<input value="Изменить" type="submit" name="submit"/></form> </div>';
					} else {
						if (!empty($_POST['name']) && !empty($_POST['text'])) {
							$name = mysql_real_escape_string(trim($_POST['name']));
							$opis = mysql_real_escape_string(trim($_POST['opis']));
							$text = mysql_real_escape_string(trim($_POST['text']));
							$tegs = mysql_real_escape_string(trim($_POST['tegs']));
							if (mysql_query("
								update `pub_arts` set 
								`name` = '".$name."', 
								`opis` = '".$opis."', 
								`text` = '".$text."',
								`tegs` = '".$tegs."'
								where `id` = '".$id."' LIMIT 1
							")) {
								$fid = $res['fid'];
								header("Location: fileman.php?id=$fid");
							} else {
								echo 'ОШИБКА!!!<a href="file.php?act=editfile&amp;id='.$id.'">Назад</a><br/>';
							}
						}
					}
				} else {
					echo 'Такой стаьи не существует <br />';
				}
				echo '<a href="fileman.php?id='.$res['fid'].'">Назад</a><br/>';
			*/
			break;
			
			
			######################################################################
			##                        Редактирование                            ##
			######################################################################
			case 'edit':
				show_title('','Редактирование ожидающей публиуации');
				$config['newtitle'] = 'Редактирование ожидающей публикации';

				$name = check($_POST['name']);
				$opis = check($_POST['opis']);
				$trt = (isset($_POST['trt'])) ? 1 : 0 ;
				$text = ($trt == 1) ? trt(check($_POST['text'])) : (check($_POST['text']));
				$avtor = (!empty($_POST['avtor'])) ? check($_POST['avtor']) : '';
				$tegs = (isset($_POST['tegs'])) ? check($_POST['tegs']) : '';
				$moder = (isset($_POST['moder'])) ? 1 : 0;

				if (utf_strlen($text) >= 10 && utf_strlen($text) <= 500000) {
					if (utf_strlen($tegs) <= 250) {
						if (utf_strlen($avtor) <= 50) {
							$new = DB::run() -> queryFetch("SELECT * FROM `pub_arts` WHERE `id`=? LIMIT 1;", array($id));
							if (!empty($new)) {
								//if ($new['avtor'] == $user_id) {
									$categories = DB::run() -> querySingle("SELECT `id` FROM `pub_arts` WHERE `id`=? LIMIT 1;", array($id));
									if (!empty($categories)) {
										$newtext = DB::run() -> querySingle("SELECT `text` FROM `pub_arts` WHERE `text`=? AND `id`<>? LIMIT 1;", array($text, $id));
										if (empty($newtext)) {
											DB::run() -> query("
												UPDATE `pub_arts` SET 
												`name`=?, 
												`opis`=?, 
												`text`=?, 
												`tegs`=?,
												`avtor`=?,
												`moder`=? 
												WHERE `id`=?
												;", 
												array($name, $opis, $text, $tegs, $avtor, $moder, $id)
											);

											notice('Данные успешно изменены!');
											redirect('fileman.php?id='.$new['fid'].'&page='.$page.'');

										} else { 
											show_error('Ошибка! Публикация '.$text.' уже имеется в базе!'); 
										}
									} else { 
										show_error('Ошибка! Выбранный вами раздел не существует!'); 
									}
								//} else { r_show_error('Ошибка! Изменение невозможно, вы не автор данной публикации!'); }
							} else { show_error('Данной публикации не существует!'); }
						} else { show_error('Ошибка! Слишком длинный ник (логин) автора (до 50 символов)!'); }
					} else { show_error('Ошибка! Слишком длинные метки (до 250 символов)!'); }
				} else { show_error('Ошибка! Слишком длинный или короткий текст публикации (от 10 до 500000 символов)!'); }

				echo '<a href="fileman.php?id='.$new['fid'].'&amp;page='.$page.'">Вернуться</a> <br />';
			break;
			
			
			
			

			##	Удаление
			case "delfile":
				if (DB::run() -> querySingle("select COUNT(*) from `pub_arts` where `id` = '".$id."' and `type` = 'file'") > 0) {
					$res = DB::run() -> queryFetch("select * from `pub_arts` where `id` = '".$id."' and `type` = 'file' LIMIT 1");
					if (!isset($_GET['yes'])) {
						echo 'Вы потверждаете удаление 
						<a href="file.php?act=delfile&amp;id='.$id.'&amp;yes"><strong>ДА</strong></a> | 
						<a href="fileman.php?id='.$res['fid'].'"><strong>НЕТ</strong></a>';
					} else {
						if (DB::run() -> query("DELETE FROM `pub_arts` where `id` = '".$id."' and `type` = 'file' LIMIT 1")) {
							$fid = $res['fid'];
							header("Location: fileman.php?id=$fid");
						} else {
							echo 'ОШИБКА!!!<a href="file.php?act=delfile&amp;id='.$id.'">Назад</a> <br />';
						}
					}
				} else {
					echo 'Такой стаьи не существует<br/>';
				}
			break;

			#####################################################################
			##	Перемещение
			case "perfile":
				if (DB::run() -> querySingle("select COUNT(*) from `pub_arts` where `id` = '".$id."' and `type` = 'file'") > 0) {
					$sql = DB::run() -> queryFetch("select * from `pub_arts` where `id` = '".$id."' and `type` = 'file' LIMIT 1");
					$sql1 = DB::run() -> query("select * from `pub_arts` where `type` = 'dir'");
					if (empty($_POST['submit'])) {
						echo '<form method="post" action="file.php?act=perfile&amp;id='.$id.'">';
							echo 'Выберете категорию куда переместить: <br />';
							echo '<select name="dir">';
							while ($res = $sql1 -> fetch()) {
								if ($res['fid']!=="0" && $res['id'] !== $sql['fid']) {
									echo '<option value="'.$res['id'].'" selecte>'.$res['parent'].') '.$res['name'].'  </option> ';
									//echo '<option value="t2">'.$res['path'].'</option>';
								}
							}
							echo '<input type="hidden" name="name" value="'.$res['name'].'Vasya">';
							echo '</select> <br />';
							echo '<input value="Перемистить" type="submit" name="submit"/></form>';
					} else {
						if (!empty($_POST['dir'])) {
							$fid_d = intval($_POST['dir']);
							$p = DB::run() -> queryFetch("select * from `pub_arts` where `type` = 'dir' and `id` = ? LIMIT 1;", array($fid_d));
							$path = $p['path'];

							if (DB::run() -> queryFetch("UPDATE `pub_arts` SET `fid` = '".$fid_d."', `path` = '".$path."' where `id` = '".$id."'")) {
								header("Location: fileman.php?id=$fid_d");
							} else {
								echo 'ОШИБКА!!! <br /> <a href="fileman.php?id='.$id.'">Назад</a> <br />';
							}
						}
					}
				} else {
					echo 'Такой стаьи не существует<br/>';
				}
			break;
		}
	}
}


if (!empty($id) && is_user()) {
	switch($act) {
		#####################################################################
		##	Выгрузка
		case "upload":
			$admin = isset($admin) ? 1 : 0;
			$sq = mysql_fetch_array(mysql_query("select `type2` from `pub_arts` where `id` = '".$id."' LIMIT 1"));
			if ($sq['type2'] == "YES" || ($rights == 5 || $rights >= 6)) {
				$err = '';
				
				$sql = DB::run() -> queryFetch("SELECT `name`, `text` FROM `pub_arts` WHERE `type` = 'dir' AND `id`=? LIMIT 1;", array($id));
				$tot_file = DB::run() -> querySingle("SELECT COUNT(*) FROM `pub_arts` WHERE `type` = 'file' AND `fid` = ?;", array($id));
				$title = ''.$sql['name'].' #'.($tot_file + 1).'';
			
				if (empty($_POST['submit'])) {
					echo '<form method="post" action="file.php?act=upload&amp;id='.$id.'&amp;admin='.$admin.'" enctype="multipart/form-data">';
					echo 'Название статьи (MAX:50)<br/><input name="name_stat" value = "'.$title.'"/><br/>';
					echo 'Описание статьи (MAX:1000)<br/><textarea name="opis_stat"></textarea><br/>';
					echo '<label>Метки:</label> <br /> <input name="tegs" class="form-control form-control-lg"/> <br />';
					echo 'Выберите текстовый файл( .txt):<br/><input type="file" name="file"/><br/>';
					echo '<input value="Добавить" type="submit" name="submit"/></form>';
			} else {
				$data = $_FILES['file'];
				$originalname = $data['name'];
				$filesize = $data['size'];
				$filetype = $data['type'];
				$file_tmp = $data['tmp_name'];
				$file_err = $data['error'];
				$file_ext = pathinfo($originalname);
				$file_ext = $file_ext['extension'];
				$blacklist_ext = array('php','pl');
				$mime = array('text/plain');
				if (!empty($_POST['name_stat']) && mb_strlen($_POST['name_stat']) < 50) {
					$name_stat = trim($_POST['name_stat']);
				} else {
					@unlink($file_tmp);
					$err = 'Вы забыли ввести название статьи или название статьи привыщает 50 символов';
				}

				//if (!empty($_POST['opis_stat']) && mb_strlen($_POST['opis_stat']) < 1000) {
					$opis_stat = trim($_POST['opis_stat']);
				//} else {
				//	@unlink($file_tmp);
				//	$err = 'Вы забыли ввести описание статьи или название статьи привыщает 1000 символов';
				//}

				foreach($blacklist_ext as $val) {
					if (preg_match("/$val\$/i",$originalname)) {
						@unlink($file_tmp);
						$err = 'Попытка загрузить файл не поддерживаемого формата';
					}
				}

				if ($filesize == "0") {
					@unlink($file_tmp);
					$err = 'Слишком маленький вес файла: 0 Байт!';
				}

				if ($file_err) {
					switch ($file_err) {
						case "1":
							@unlink($file_tmp);
							$err = 'Размер принятого файла превысил максимально допустимый размер!';
						break;
						case "2":
							@unlink($file_tmp);
							$err = 'Размер принятого файла превысил максимально допустимый размер!';
						break;
						case "3":
							@unlink($file_tmp);
							$err = 'Загружаемый файл был получен только частично. ';
						break;
						case "4":
							@unlink($file_tmp);
							$err = 'Файл не был загружен. ';
						break;
					}
				}

				if (mb_substr_count($originalname,".") > 1 ) {
					@unlink($file_tmp);
					$err = 'Файл должен иметь одно расширение. ';
				}

				if (!$file_ext) {
					@unlink($file_tmp);
					$err = 'Файл должен иметь расширение. ';
				}

				if (!in_array($filetype,$mime)) {
					@unlink($file_tmp);
					$err = 'Ошибка, этот файл не поодерживает допустимый mime-type. ';
				}

				if ($err <> "") {
					echo '<div class="rmenu"><p>'.$err.'</p></div>';
				} else {
					if (is_uploaded_file($file_tmp)) {
						$path_file = 'file/'.$user_id.'.txt';
						if (file_exists($path_file)) {
							@unlink($path_file);
						}
						if (move_uploaded_file($file_tmp,$path_file)) {
							$text = file_get_contents($path_file);

							$text = iconv("windows-1251", "UTF-8", $text);
							$text = mysql_real_escape_string($text);
							$sql = mysql_fetch_array(mysql_query("select `path` from `pub_arts` where `id` = '".$id."' and `type` = 'dir' LIMIT 1"));
							$path = $sql['path'];
							$file = $originalname;
							$moder = ($rights == 5 || $rights >= 6 ? '1' : "0");
							$dt = date("d.m.Y");
							$tegs	= (isset($_POST['tegs']))	? r_check($_POST['tegs'])	: '';

							if (mysql_query("
								insert into `pub_arts` set
								`fid` = '".$id."',
								`path` = '".$path."',
								`file` = '".$file."',
								`type` = 'file',
								`type2` = '',
								`view` = '0',
								`name` = '".$name_stat."',
								`opis` = '".$opis_stat."',
								`text` = '".$text."',
								`tegs` = '".$tegs."',
								`ip` = '".$ip."',
								`soft` = '".$agn."',
								`time` = '".SITETIME."',
								`count` = '0',
								`id_avtor` = '".$user_id."',
								`rating` = '0',
								`moder` = '".$moder."',
								`dt` = '".$dt."'
							;")) {
								@unlink($path_file);
								if ($admin == 1) {
									r_notice('Публикация успешно выгружена!');
									r_redirect("fileman.php?id=".$id);
								} else {
									echo 'Статья успешно загружена, перейти к статье:
									<a href="read.php?id='.mysql_insert_id().'">'.$name_stat.'</a> <br />';
								}
							} else {
								@unlink($path_file);
								echo 'Ошибка при загрузке статьи! <br />
								'.mysql_error().' <br />
								<a href="'.(($rights == 5 || $rights >= 6)? 'fileman' : 'index').'.php?id='.$id.'">Назад</a> <br />';
							}
						}
					}
				}
			}
		}
	break;



	## Написание
	case "newstat":
		#################################################################
		##        		     Подготовка к добавлению            	   ##
		#################################################################
			$sql = DB::run() -> queryFetch("SELECT `name`, `text` FROM `pub_arts` WHERE `type` = 'dir' AND `id`=? LIMIT 1;", array($id));
			$tot_file = DB::run() -> querySingle("SELECT COUNT(*) FROM `pub_arts` WHERE `type` = 'file' AND `fid` = ?;", array($id));
			$title = ''.$sql['name'].' #'.($tot_file + 1).'';
			echo '<div class="form cut">';
			echo '<form action="file.php?act=overwrite&amp;id='.$id.'" method="post" enctype="multipart/form-data">';
			echo '<label>Название:</label> <br /> <input name="name" class="form-control form-control-lg" value = "'.$title.'"/> <br />';
			echo '<label>Описание:</label>'; 
			echo '<textarea name="opis"></textarea> <br /><br />';
			echo '<label>Публикация:</label>'; 
			echo '<textarea name="msg" rows="'.$set_user['field_h'].'" id="markItUp" class="form-control form-control-lg"></textarea> <br />';
			echo '<label>Метки:</label> <br /> <input name="tegs" class="form-control form-control-lg"/> <br />';
			
			if (is_admin(array(101))) {
				echo '<p><input name="moder" type="checkbox" value="1" checked="checked" /> <label class="text-success">Проверена</label> </p>';
			}
							
			echo '<button type="submit" name="submit" class="btn btn-success btn-lg"> Добавить </button><br />';
			echo '</form></div>';
		break;
		
		
		#################################################################
		##                     Добавление публикации                   ##
		#################################################################
		case 'overwrite':
			$sql = DB::run() -> queryFetch("SELECT `name`, `text` FROM `pub_arts` WHERE `type` = 'dir' AND `id`=? LIMIT 1;", array($id));
			$tot_file = DB::run() -> querySingle("SELECT COUNT(*) FROM `pub_arts` WHERE `type` = 'file' AND `fid` = ?;", array($id));
			$title = ''.$sql['name'].' #'.($tot_file + 1).'';

			$name	= (isset($_POST['name']))	? check($_POST['name'])	: $title;
			$opis	= (isset($_POST['opis']))	? check($_POST['opis'])	: '';
			$msg	= (isset($_POST['msg']))	? check($_POST['msg'])	: '';
			$tegs	= (isset($_POST['tegs']))	? check($_POST['tegs'])	: '';

			$path = DB::run() -> querySingle("SELECT `path` FROM `pub_arts` WHERE `id` = '".$id."' AND `type` = 'dir' LIMIT 1;", array($id));
			$file = 'file/'.$log.'_'.$id.'_'.SITETIME.'.txt';
			if (is_admin(array(101))) {
				$moder = (isset($_POST['moder'])) ? 1 : 0;
			} else {
				$moder = (is_admin(array(102, 103)) ? "1" : "0");
			}
			$dt = date("d.m.Y");
			
			$re = DB::run() -> querySingle("SELECT COUNT(*) FROM `pub_arts` WHERE `avtor`=? AND `text`=?;", array($log, $msg));
			if (!$re) {
				
				$validation = new Validation();
				$validation 
							-> addRule('string', $name, 'Слишком длинноу или короткоу название!', true, 3, 75)
							-> addRule('string', $msg, 'Слишком длинный или короткий текст публикации!', true, 3, 75000);
				if ($validation->run()) {

					DB::run() -> query("
						INSERT INTO `pub_arts` (`fid`,`parent`,`ord`,`path`,`file`,`type`,`type2`,`view`,`name`,`opis`,`text`,`tegs`,`ip`,`soft`,`time`,`count`,`avtor`,`rating`,`moder`,`dt`) 
						VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", 
						array($id, '0', '0', $path, $file, 'file', '1','0', $name, $opis, $msg, $tegs, $ip, $brow, SITETIME, 0, $log, 0, $moder, $dt)
					);
					$lastid = DB::run() -> lastInsertId();

					notice('Ваша публикация успешно добавлена!');
					redirect("index.php?id=".$id);

				} else {
					show_error($validation->getErrors());
				}
			} else {
				show_error('Ошибка! Даннaя публикация уже была вами отправлена! Возможно она еще не прошла модерацию. Подождите!');
			}

			echo '<div class="breadcrumb"> <br /> </div>';
			echo '<i class="fa fa-arrow-circle-left"></i>  <a href="?act=newstat&amp;id='.$id.'">Вернуться</a><br />';
		break;


		#################################################################
		##						Прикрепление файла	  				   ##
		#################################################################
		case "precfile":
			$sql1 = DB::run() -> queryFetch("select `fid`,`name` from `pub_arts` where `id` = '".$id."'");
			$sql = DB::run() -> queryFetch("select `fid`,`name` from `pub_arts` where `id` = '".$sql1['fid']."'");
			echo '<ol class="breadcrumb">';
			echo '<li><a href="/index.php?"> <i class="fa fa-home fa-lg text-muted"></i> </a></li>';
			echo '<li class=""><a href="index.php?">Публикации</a></li>';
			echo '<li class="active"><strong>Прикрепление файла</strong></li>';
			echo '</ol> ';
			if (is_admin(array(101))) {
				$err = '';
				if (empty($_POST['submit'])) {
					echo '<form method="post" action="file.php?act=precfile&amp;id='.$id.'" enctype="multipart/form-data">';
					echo '<div class = "form">';
					echo '<label>Название для отображения</label>: <br />';
					echo '<input name="name"/> <br /><br />';
					echo '<label>Выберите файл</label> (.txt .zip .rar .png .jpg .jpeg .gif ): <br />';
					echo '<input type="file" name="file"/> <br /><br />';
					echo '<input value="Добавить" type="submit" name="submit"/></div></form>';
				} else {
					$data = $_FILES['file'];
					$originalname = $data['name'];
					$filesize = $data['size'];
					$filetype = $data['type'];
					$file_tmp = $data['tmp_name'];
					$file_err = $data['error'];
					$file_ext = pathinfo($originalname);
					$file_ext = isset($file_ext['extension']) ? $file_ext['extension'] : false;
					$blacklist_ext = array('php','pl');
					$mime = array(
						'text/plain',
						'application/x-zip-compressed',
						'application/zip',
						'image/gif',
						'image/png',
						'image/jpeg',
						'application/x-rar-compressed'
					);

					if (!empty($_POST['name']) && mb_strlen($_POST['name']) < 50) {
						$name = trim($_POST['name']);
					} else {
						@unlink($file_tmp);
						$err = 'Вы забыли ввести название статьи или название статьи привыщает 50 символов';
					}

					foreach ($blacklist_ext as $val) {
						if (preg_match("/$val\$/i",$originalname)) {
							@unlink($file_tmp);
							$err = 'Попытка загрузить файл не поддерживаемого формата';
						}
					}

					if ($filesize == "0") {
						@unlink($file_tmp);
						$err = 'Слишком маленький вес файла: 0 Байт!';
					}

					if ($file_err) {
						switch ($file_err) {
							case "1":
								@unlink($file_tmp);
								$err = 'Размер принятого файла превысил максимально допустимый размер!';
							break;
							case "2":
								@unlink($file_tmp);
								$err = 'Размер принятого файла превысил максимально допустимый размер!';
							break;
							case "3":
								@unlink($file_tmp);
								$err = 'Загружаемый файл был получен только частично. ';
							break;
							case "4":
								@unlink($file_tmp);
								$err = 'Файл не был загружен. ';
							break;
						}
					}

					if (mb_substr_count($originalname,".") > 1) {
						@unlink($file_tmp);
						$err = 'Файл должен иметь одно расширение. ';
					}

					if (!$file_ext) {
						@unlink($file_tmp);
						$err = 'Файл должен иметь расширение. ';
					}

					if (!in_array($filetype,$mime)) {
						@unlink($file_tmp);
						$err = 'Ошибка, этот файл не поодерживает допустимый mime-type. ';
					}
					
					if ($err <> "") {
						show_error(''.$err.'!');
						echo '<a href="act=precfile&id='.$id.'">Повторить</a> <br />';
					} else {
						if (is_uploaded_file($file_tmp)) {
							$path_file = $log.'_'.SITETIME.'.'.$file_ext;
							if (file_exists('file/'.$path_file)) {
								@unlink('file/'.$path_file);
							}
							$dt 	= date("d.m.Y");
							$format = format($path_file);
							$size	= filesize($file_tmp);
							if (move_uploaded_file($file_tmp,'file/'.$path_file)) {
								if ( 
									DB::run() -> query("
										INSERT INTO `pub_file` (`fid`, `name`, `file`, `format`, `size`, `last_load`, `time`, `dt`) 
										VALUES (?, ?, ?, ?, ?, ?, ?, ?);", 
										array($id, $name, $path_file, $format, $size, '0', SITETIME, $dt)
									)
								) {
									$sql1 = DB::run() -> queryFetch("select `fid`,`name` from `pub_arts` where `id` = '".$id."'");
									$sql = DB::run() -> queryFetch("select `fid`,`name` from `pub_arts` where `id` = '".$sql1['fid']."'");
									echo 'Файл успешно загружен: <br /> <a href="fileman.php?id='.$sql1['fid'].'">'.$sql['name'].'</a>';
								} else {
								//	header("location: file.php?act=precfile&id=$id");
								}
							}
						}
					}
				}
			}
			echo '<a href="fileman.php?id='.$sql1['fid'].'">'.$sql['name'].'</a> <br />';
		break;

		#################################################################
		##			Проверяем существование прикрепленного файла	   ##
		#################################################################
		case "look":
			$yesorno = DB::run() -> querySingle("SELECT COUNT(*) from `pub_file` where `id` =?;", array($id));
			if ($yesorno > 0) {

				DB::run() -> query("UPDATE `pub_file` SET `last_load`=`last_load`+1 WHERE `id`=?", array($id));
				$file = DB::run() -> queryFetch("SELECT * from `pub_file` where `id` =?;", array($id));
				$file = './file/'.$file['file'];
				if (file_exists($file)) {
					header("Location: $file");
					//r_redirect("Location: '".$file);
				}  else { // no Нужда доработка
					redirect("Location: '".$file); 
			}	// no name Нужда доработка
			} else {
				redirect("Location: '".$file); 
			}
		break;


		#################################################################
		##					Управление прикрепленного файла	           ##
		#################################################################	
		case "editprec":
			if (is_admin(array(101))) {
				$yesorno = DB::run() -> querySingle("SELECT COUNT(*) FROM `pub_file` WHERE `fid` =?;", array($id));
				if ($yesorno > 0) {
					$sql = DB::run() -> query("select * from `pub_file` where `fid` = '".$id."'");
					$i = 0;
					while ($res = $sql -> fetch()) {
						echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
						echo '<a href="file.php?act=look&amp;id='.$res['id'].'">'.$res['name'].'</a><br/>';
						echo '<a href="file.php?act=editprec&amp;fid='.$res['id'].'&amp;ed&amp;id='.$id.'"><span class="red">Удалить</span></a>';
						echo '</div>';
					}

					if (isset($_GET['ed'])) {
						if (file_exists('./file/'.$ed['file'])) {
							@unlink('./file/'.$ed['file']);
						}

						$sql = DB::run() -> query("select * from `pub_file` where `id` = '".intval($_GET['fid'])."'");
						$ed = $sql -> fetch();
						
						$dd = DB::run() -> queryFetch("select `fid` from `pub_arts` where `id` = '".$ed['fid']."'");
						DB::run() -> query("delete from `pub_file` where `id` = '".intval($_GET['fid'])."'");

						header("Location: fileman.php?id=".$dd['fid']);
					}
				}
			}
			$sql1 = DB::run() -> queryFetch("select `fid` from `pub_arts` where `id` = '".$id."'");
			echo '<a href="fileman.php?id='.$sql1['fid'].'">Назад</a>';
		break;


		##	
		case "rat":
			if ($_SESSION['rat'] !== $id) {
				$_SESSION['rat'] = $id;
				$rat = abs(intval($_POST['rat']));
				$re = DB::run() -> queryFetch("SELECT * FROM `pub_arts` WHERE `id`=? LIMIT 1;", array($id));

				if (!empty($re['rating'])) {
					$re1 = explode(":",$re['rating']);
					$kol = $re1[0];
					$ocenka = $re[1];
					$zap = intval(++$kol).':'.intval($ocenka + $rat);
				} else {
					$kol = 0;
					$ocenka = 0;
					$zap = intval(++$kol).':'.intval($ocenka + $rat);
				}

				DB::run() -> query("update `pub_arts` set `rating` = '".$zap."' where `id` = '".$id."'");
				$ocenka2 = round($rat/2);
				echo ' <br /> Спасибо ваша оценка: <b>"'.$ocenka2.'"</b> принята <br />';  
				
				notice('Спасибо ваша оценка: <b>"'.$ocenka2.'"</b> принята!');
				redirect('read.php?id='.$id);
				
				//$re = DB::run() -> queryFetch("slect `rating` from `pub_arts` where `id` = '".$id."' LIMIT 1");
				$re = DB::run() -> queryFetch("SELECT * FROM `pub_arts` WHERE `id`=?;", array($id));
				$re1 = explode(":",$re['rating']);
				$tit = round($re1[1]/2/$re1[0],1);
				echo 'Всего оценивало: '.(int)$re1[0].' <br />';
				echo 'Средняя оценка: '.$tit.' <br />';
			} else {
				echo 'Вы уже голосовали за эту статью<br/>';
			}
			echo '<br /> <a href="read.php?id='.$id.'">Вернуться</a>';
		break;
	}
}

include_once ('../themes/footer.php');
?>