<?php
define('_IN_JOHNCMS', 1);
$headmod = 'lib';
$textl = 'Библиотека';
require_once ("../incfiles/core.php");
require_once ("./inc/conf.php");
require_once ("../incfiles/head.php");
if($rights == 5 || $rights >= 6)
{
if(empty($id))
{
echo '<div class="rmenu">ОШИБКА!!!<br/></div>';
}else{
switch($act)
{
case "editfile":
if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
{
$res = mysql_fetch_array(mysql_query("select * from `library` 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');
if(empty($_POST['submit']))
{
echo '<form method="post" action="file.php?act=editfile&id='.$id.'">';
echo 'Название стаьи:<br/><input value="'.$name.'" name="name"/><br/>';
echo 'Описание стаьи:<br/><textarea name="opis">'.$opis.'</textarea><br/>';
echo 'Статья:<br/><textarea name="text" cols="100" rows="30">'.$text.'</textarea><br/>';
echo '<input value="Изменить" type="submit" name="submit"/></form>';
}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']));
if(mysql_query("update `library` set `name` = '".$name."', `opis` = '".$opis."', `text` = '".$text."' where `id` = '".$id."' LIMIT 1"))
{
$fid = $res['fid'];
header("Location: fileman.php?id=$fid");
}else{
echo 'ОШИБКА!!!<a href="file.php?act=editfile&id='.$id.'">Назад</a><br/>';
}
}
}
}else{
echo 'Такой стаьи не существует<br/>';
}
break;
case "delfile":
if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
{
$res = mysql_fetch_array(mysql_query("select * from `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
if(!isset($_GET['yes']))
{
echo 'Вы потверждаете удаление <a href="file.php?act=delfile&id='.$id.'&yes"><strong>ДА</strong></a> | <a href="fileman.php?id='.$res['fid'].'"><strong>НЕТ</strong></a>';
}else{
if(mysql_query("DELETE FROM `library` 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&id='.$id.'">Назад</a><br/>';
}
}
}else{
echo 'Такой стаьи не существует<br/>';
}
break;
case "perfile":
if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
{
$sql = mysql_fetch_array(mysql_query("select * from `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
$sql1 = mysql_query("select * from `library` where `type` = 'dir'");
if(empty($_POST['submit']))
{
echo '<form method="post" action="file.php?act=perfile&id='.$id.'">';
echo 'Выберете категорию куда переместить:<br/>';
echo '<select name="dir">';
while($res = mysql_fetch_array($sql1))
{
if($res['fid']!=="0" && $res['id']!==$sql['fid'])
{
echo '<option value="'.$res['id'].'">'.$res['name'].'</option>';
}
}
echo '</select><br/>';
echo '<input value="Перемистить" type="submit" name="submit"/></form>';
}else{
if(!empty($_POST['dir']))
{
$fid_d = intval($_POST['dir']);
if(mysql_query("update `library` set `fid` = '".$fid_d."' 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) && $user_id)
{
switch($act)
{
case "upload":
$sq = mysql_fetch_array(mysql_query("select `type2` from `library` where `id` = '".$id."' LIMIT 1"));
if($sq['type2'] == "YES" || ($rights == 5 || $rights >= 6))
{
$err = '';
if(empty($_POST['submit']))
{
echo '<form method="post" action="file.php?act=upload&id='.$id.'" enctype="multipart/form-data">';
echo 'Название статьи (MAX:50)<br/><input name="name_stat"/><br/>';
echo 'Описание статьи (MAX:1000)<br/><textarea name="opis_stat"></textarea><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 `library` where `id` = '".$id."' and `type` = 'dir' LIMIT 1"));
$path = $sql['path'];
$file = $originalname;
$moder = ($rights == 5 || $rights >= 6 ? '1' : "0");
if(mysql_query("insert into `library` set
`id` = '',
`fid` = '".$id."',
`path` = '".$path."',
`file` = '".$file."',
`type` = 'file',
`name` = '".$name_stat."',
`opis` = '".$opis_stat."',
`text` = '".$text."',
`ip` = '".$ipp."',
`soft` = '".$agn."',
`time` = '".$realtime."',
`count` = '0',
`id_avtor` = '".$user_id."',
`rating` = '0',
`moder` = '".$moder."';"))
{
@unlink($path_file);
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":
$sq = mysql_fetch_array(mysql_query("select `type2` from `library` where `id` = '".$id."' LIMIT 1"));
if($sq['type2'] == "YES" || ($rights == 5 || $rights >= 6))
{
$next = isset($_GET['next'])?intval($_GET['next']):0;
if(!isset($_GET['finish']))
{
echo '<form method="POST" action="file.php?act=newstat&id='.$id.'&next='.++$next.'">';
echo 'Текст статьи:<br/><strong>Если ваш браузер не подерживает добавление большого текста в форму то вы можете просто по кусочкам этот текст добавлять и нажимать на кнопку ДАЛЕЕ после того как весь текст добавите нажмете ФИНИШ</strong><br/><textarea name="txt" cols="30" rows="10"></textarea><br/>';
echo '<input value="Далее >>" type="submit" name="submit"/><a href="file.php?act=newstat&id='.$id.'&finish"><input value="Финиш" type="submit" name="finish"/></a></form>';
echo '<br/>';
}else{
if(file_exists('file/'.$user_id.'_'.$id.'.txt'))
{
if(empty($_POST['sub']))
{
echo '<form method="POST" action="file.php?act=newstat&id='.$id.'&finish">';
echo 'Название статьи:<br/><input name="name"/><br/>';
echo 'Описание статьи:<br/><textarea name="opis"></textarea><br/>';
echo '<input value="Добавить" type="submit" name="sub"/></form>';
}else{
if(!empty($_POST['name']) && !empty($_POST['opis']))
{
$name = trim($_POST['name']);
$opis = trim($_POST['opis']);
$file = file_get_contents('file/'.$user_id.'_'.$id.'.txt');
$txt = iconv("windows-1251","UTF-8",$file);
$sql = mysql_fetch_array(mysql_query("select `path` from `library` where `id` = '".$id."' and `type` = 'dir' LIMIT 1"));
$path = $sql['path'];
$file = 'file/'.$user_id.'_'.$id.'_'.$realtime.'.txt';
$moder = ($rights == 5 || $rights >= 6 ? '1' : "0");
if(mysql_query("insert into `library` set
`id` = '',
`fid` = '".$id."',
`path` = '".$path."',
`file` = '".$file."',
`type` = 'file',
`name` = '".$name."',
`opis` = '".$opis."',
`text` = '".$txt."',
`ip` = '".$ipp."',
`soft` = '".$agn."',
`time` = '".$realtime."',
`count` = '0',
`id_avtor` = '".$user_id."',
`rating` = '0',
`moder` = '".$moder."';"))
{
@unlink('file/'.$user_id.'_'.$id.'.txt');
echo 'Статья успешно добавлена, перейти к статье:
<a href="read.php?id='.mysql_insert_id().'">'.$name.'</a><br/>';
}else{
echo 'Ошибка при добавлении статьи!<br/><a href="'.(($rights == 5 || $rights >= 6)? 'fileman' : 'index').'.php?id='.$id.'">Назад</a><br/>';
}
}else{
echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели название или описание!<br/></div>';
}
}
}else{
echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели текст!<br/></div>';
}
}
if(isset($_GET['next'])){
if(!empty($_POST['txt']))
{
$txt = trim($_POST['txt']);
$txt = iconv("UTF-8", "windows-1251", $txt);
#$txt = mysql_real_escape_string($txt);
#$n .= $next.'-';
$text_name = 'file/'.$user_id.'_'.$id.'.txt';
if(!file_exists($text_name))
{
$fp = fopen($text_name,"w");
flock($fp,LOCK_EX);
fputs($fp,$txt."\r\n");
flock($fp,LOCK_UN);
fclose($fp);
}else{
$fp = fopen($text_name,"a");
flock($fp,LOCK_EX);
fputs($fp,$txt."\r\n");
flock($fp,LOCK_UN);
fclose($fp);
}
}else{
echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели текст!<br/></div>';
}
}
}
break;
case "precfile":
if($rights == 5 || $rights >= 6)
{
$err = '';
if(empty($_POST['submit']))
{
echo '<form method="post" action="file.php?act=precfile&id='.$id.'" enctype="multipart/form-data">';
echo 'Название для отображения:<br/><input name="name"/><br/>';
echo 'Выберите файл( .txt .zip .rar .png .jpg . jpeg .gif .png):<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','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 <> "")
{
echo '<div class="rmenu"><p>' . $err . '</p></div>';
}else{
if(is_uploaded_file($file_tmp))
{
$path_file = $user_id.'_'.$realtime.'.'.$file_ext;
if(file_exists('file/'.$path_file))
{
@unlink('file/'.$path_file);
}
if(move_uploaded_file($file_tmp,'file/'.$path_file))
{
if(mysql_query("insert into `lib_file` set
`id` = '',
`fid` = '".$id."',
`name` = '".$name."',
`file` = '".$path_file."',
`time` = '".$realtime."';"))
{
$sql1 = mysql_fetch_array(mysql_query("select `fid`,`name` from `library` where `id` = '".$id."'"));
$sql = mysql_fetch_array(mysql_query("select `fid`,`name` from `library` 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");
}
}
}
}
}
}
break;
case "look":
$cou = mysql_result(mysql_query("select COUNT(*) from `lib_file` where `id` = '".$id."'"),0);
if($cou > 0)
{
$res = mysql_fetch_array(mysql_query("select * from `lib_file` where `id` = '".$id."'"));
$file = './file/'.$res['file'];
if(file_exists($file))
{
header("Location: $file");
}
}
break;
case "editprec":
if($rights == 5 || $rights >= 6)
{
$cou = mysql_result(mysql_query("select COUNT(*) from `lib_file` where `fid` = '".$id."'"),0);
if($cou > 0)
{
$sql = mysql_query("select * from `lib_file` where `fid` = '".$id."'");
while($res = mysql_fetch_array($sql))
{
$i = 11;
echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
echo '<a href="file.php?act=look&id='.$res['id'].'">'.$res['name'].'</a><br/>';
echo '<a href="file.php?act=editprec&fid='.$res['id'].'&ed&id='.$id.'"><span class="red">Удалить</span></a>';
echo '</div>';
}
if(isset($_GET['ed']))
{
if(file_exists('./file/'.$ed['file']))
{
@unlink('./file/'.$ed['file']);
}
$sql = mysql_query("select * from `lib_file` where `id` = '".intval($_GET['fid'])."'");
$ed = mysql_fetch_array($sql);
$dd = mysql_fetch_array(mysql_query("select `fid` from `library` where `id` = '".$ed['fid']."'"));
mysql_query("delete from `lib_file` where `id` = '".intval($_GET['fid'])."'");
header("Location: fileman.php?id=".$dd['fid']);
}
}
}
$sql1 = mysql_fetch_array(mysql_query("select `fid` from `library` where `id` = '".$id."'"));
echo '<a href="fileman.php?id='.$sql1['fid'].'">Назад</a>';
break;
case "rat":
if($_SESSION['rat'] !== $id)
{
$_SESSION['rat'] = $id;
$rat = intval($_POST['rat']);
$re = mysql_fetch_array(mysql_query("slect `rating` from `library` where `id` = '".$id."' LIMIT 1"));
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);
}
mysql_query("update `library` set `rating` = '".$zap."' where `id` = '".$id."'");
$ocenka2=round($ocenka/2);
echo'<br/>Спасибо ваша оценка: <b>"'.(int)$ocenka2.'"</b> принята<br/>';
$re = mysql_fetch_array(mysql_query("slect `rating` from `library` where `id` = '".$id."' LIMIT 1"));
$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;
}
}
require_once ("../incfiles/end.php");
?>