<?php
include_once '../sys/inc/start.php';
$doc = new document();
$doc -> title ='Файлы';


if (!empty($_POST['upload_on_flash'])){
// Обработка выгрузки файлов с помощью flash-формы
$uof = @$_POST['upload_on_flash'];
if ($id_user = $cache -> get('upload_on_flash.'.$uof))
$user = new user($id_user);
}

if (!isset($_GET['id']) || !is_numeric($_GET['id']))
{
header('Refresh: 1; url=./');
$doc->err('Ошибка выбора сообщения');
exit;
}
$id_message=(int)$_GET['id'];

$q=mysql_query("SELECT * FROM `forum_messages` WHERE `id` = '$id_message'");

if (!mysql_num_rows($q))
{
if (isset($_GET['return']))header('Refresh: 1; url='.$_GET['return']);else header('Refresh: 1; url=./');
$doc->err('Сообщение не найдено');
exit;
}

$message=mysql_fetch_assoc($q);


$q=mysql_query("SELECT * FROM `forum_themes` WHERE `id` = '$message[id_theme]'");

if (!mysql_num_rows($q))
{
if (isset($_GET['return']))
header('Refresh: 1; url='.$_GET['return']);
else header('Refresh: 1; url=./');
$doc->err('Тема не найдена');
exit;
}

$theme=mysql_fetch_assoc($q);



if ($user->group < $message['group_edit'] && ($user->id!=$message['id_user'] || TIME>=$message['time']+600))
{
if (isset($_GET['return']))header('Refresh: 1; url='.$_GET['return']);else header('Refresh: 1; url=./');
$doc->err('Сообщение не доступно для редактирования');
exit;
}

if ($user->group < $message['group_edit'])
{
$doc->msg('Для выгрузки файлов осталось '.($message['time']-TIME+600).' сек');
}

$autor=new user($message['id_user']);

$forum_dir = new files(FILES.'/.forum');

$theme_dir_path = FILES.'/.forum/'.$message['id_theme'];
if (!@is_dir($theme_dir_path))
{
if (!$th_dir = $forum_dir -> mkdir('Файлы темы #'.$message['id_theme'],$message['id_theme']))$doc -> access_denied('Не удалось создать папку под файлы темы');


$th_dir -> group_show = $theme['group_show'];
$th_dir -> group_write = $theme['group_write'];
$th_dir -> group_edit = $theme['group_edit'];
unset($th_dir);
}

$theme_dir = new files($theme_dir_path);





$post_dir_path = FILES.'/.forum/'.$message['id_theme'].'/'.$message['id'];

if (!@is_dir($post_dir_path))
{
if (!$p_dir = $theme_dir -> mkdir('Файлы к сообщению #'.$message['id'],$message['id']))$doc -> access_denied('Не удалось создать папку под файлы сообщения');
$p_dir -> id_user = $user -> id;
$p_dir -> group_show = 0; // папка будет доступна гостям
unset($p_dir);
}

$dir = new files($post_dir_path);

if (!empty($_POST['upload_on_flash'])){
// Обработка выгрузки файлов с помощью flash-формы
include H.'/forum/inc/upload_on_flash.php';
exit;
}




if (!empty($_FILES['file'])){
if ($_FILES['file']['error'])$doc->err('Ошибка при загрузке');
elseif (!$_FILES['file']['size'])$doc->err('Содержимое файла пусто');
elseif ($dcms -> forum_files_upload_size && $_FILES['file']['size'] > $dcms -> forum_files_upload_size)$doc->err('Размер файла превышает установленные ограниченияя');
else
{
if ($files_ok = $dir -> filesAdd(array($_FILES['file']['tmp_name'] => $_FILES['file']['name'])))
{
$files_ok[$_FILES['file']['tmp_name']] -> id_user = $user -> id;
$files_ok[$_FILES['file']['tmp_name']] -> group_show = $dir -> group_show;
$files_ok[$_FILES['file']['tmp_name']] -> group_edit = max($user -> group, $dir -> group_write, 2);
unset ($files_ok);
$doc -> msg('Файл "'.$_FILES['file']['name'].'" успешно добавлен');
}
else
{
$doc -> err('Не удалось сохранить выгруженный файл');
}
}
}
elseif(!empty($_GET['delete']))
{

}

$doc->title='Файлы к сообщению от "'.$autor->login.'"';

$posts=array();


$content = $dir -> getList('time_add:desc');
$files = &$content['files'];

$count = count($files);

for ($i=0;$i<$count;$i++){
$post = output_text($files[$i]->properties);
$posts[]=array('icon' => $files[$i]->icon(),
'title' => "<a href='/files{$dir->path_rel}/".urlencode($files[$i]->name).".htm'>".for_value($files[$i]->runame)."</a>", 'post' => $post);
}

if (!$files)$posts[]=array('icon'=>array('size'=>'small','src'=>'/sys/images/icons/empty.png'),'title'=>'Вложения отсутствуют');

$show = new design();
$show->assign('post',$posts);
$show->display('design.listing.tpl');





$smarty = new design();
$smarty->assign('method','post');
$smarty->assign('files',1);

$uof =  passgen(128);
$cache -> set('upload_on_flash.'.$uof,$user -> id,3600);
$smarty->assign('upload_on_flash',$uof);

$smarty->assign('action',"/forum/message.files.php?id=$message[id]&amp;".passgen().(isset($_GET['return'])?'&amp;return='.urlencode($_GET['return']):null));
$elements=array();
$elements[]=array('type'=>'file', 'title'=>'Файл', 'br'=>1, 'info'=>array('name'=>'file'));
$elements[]=array('type'=>'text', 'br'=>1, 'value'=>'* Файлы, размер которых превышает '.size_data($dcms->forum_files_upload_size).', загружены не будут'); // кнопка
$elements[]=array('type'=>'submit', 'br'=>0, 'info'=>array('value'=>'Прикрепить')); // кнопка
$smarty->assign('el',$elements);
$smarty->display('input.form.tpl');



if (isset($_GET['return']))$doc->ret('В тему',for_value($_GET['return']));
else
$doc->ret('В тему','theme.php?id='.$message['id_theme']);
?>