<?php
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/header.php');
include_once ('core/fun.php');
$id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : '';
$file = DB::run()->queryFetch("SELECT * FROM downloads_files WHERE id= ?", array ($id));
$act = isset($_GET['act']) ? check($_GET['act']) : '';
switch ($act):
default :
if ($file['id']) {
$config['newtitle'] = $file['title'];
$config['description'] = strip_str($file['description']);
$did = DB::run()->queryFetch("SELECT `id`, `name` FROM `downloads_category` WHERE `id` = ? LIMIT 1;", array ($file['category']));
echo '<div class="b"><a href="index.php?id=' . $did['id'] . '">' . $did['name'] . '</a> / <b>' . $file['title'] . '</b> (' . formatsize($file['size']) . ')</div>';
echo '<hr />';
$ext = getExtension($file['file']);
if (in_array($ext, array ('mp3'))) {
echo '<hr />';
echo mp3info(BASEDIR . '/' . $file['path_to_file'] . $file['file']);
echo' <b>Онлайн прослушка:</b><br/>
<object type="application/x-shockwave-flash" data="' . $config['home'] . '/down/core/player.swf?mp3=' . $config['home'] . '/' . htmlspecialchars($file['path_to_file'] . $file['file']) . '" width="200" height="25">
<param name="wmode" value="transparent" />
<param name="movie" value="' . $config['home'] . '/down/core/player.swf?mp3=' . $config['home'] . '/' . htmlspecialchars($file['path_to_file'] . $file['file']) . '" />
</object>';
echo '<hr />';
}
if (in_array($ext, array ('3gp', 'avi', 'mp4', 'flv'))) {
echo '<object type="application/x-shockwave-flash" data="' . $config['home'] . '/down/core/uflvplayer_500x375.swf" height="188" width="250">
<param name="bgcolor" value="#DFE6EF" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="' . $config['home'] . '/down/core/uflvplayer_500x375.swf"/>
<param name="FlashVars" value="way=' . $config['home'] . '/' . htmlspecialchars($file['path_to_file'] . $file['file']) . '&swf=' . $config['home'] . '/down/core/uflvplayer_500x375.swf&skin=white&volume=70"/></object>';
}
if (in_array($ext, array ('jpg', 'jpeg', 'gif', 'png'))) {
echo resize_image($file['path_to_file'], $file['file'], 300, $file['title']);
echo '<br />';
}
echo '<br />' . bb_code($file['description']) . '<br /><br />';
echo 'Добавлено: ' . profile($file['author']) . ' (' . date_fixed($file['date']) . ')';
if (is_admin(array (101, 102))) {
echo ' (<a href="?act=edit&id=' . $file['id'] . '">Редактировать</a> / <a href="?act=del&id=' . $file['id'] . '">Удалить</a>)';
}
echo '<hr />';
if (is_user()) {
echo '<img src="/images/img/download.gif" alt="image" /> <b><a href="get_file.php?act=load&id=' . $file['id'] . '">Скачать</a></b> (' . formatsize($file['size']) . ')<br />';
} else {
echo '<div class="form">';
echo '<form action="get_file.php?act=load&id=' . $file['id'] . '" method="post">';
echo 'Проверочный код:<br /> ';
echo '<img src="/gallery/protect.php" alt="" /><br />';
echo '<input name="provkod" size="6" maxlength="6" />';
echo '<input type="submit" value="Скачать" /></form>';
echo '<em>Чтобы не вводить код при каждом скачивании, советуем <a href="/pages/registration.php">зарегистрироваться</a></em></div><br />';
}
//TODO: попилить
// echo '<div class="b">Похожие файлы</div>';
// $sql_result = DB::run()->query("SELECT id, title, description, date FROM downloads_files WHERE MATCH title, description AGAINST (? IN BOOLEAN MODE) AND id != ? LIMIT 5", array ($file['title'], $id));
//
// while ($related = $sql_result->fetch()) {
// echo '<a href="get_file.php?id=' . $related['id'] . '">' . check($related['title']) . '</a>';
// }
// echo 'Похожих файлов не найдено.';
} else {
show_error('Ошибка! Запрашиваемого файла несуществует.');
}
break;
case 'edit':
if (is_admin(array (101, 102))) {
$file = DB::run()->queryFetch("SELECT * FROM downloads_files WHERE id= ?", array ($id));
if ($file['id']) {
if (isset($_POST['submit']) && !empty($_GET['token'])) {
$token = check($_GET['token']);
$name = check($_POST['name']);
$description = check($_POST['description']);
if ($token == $_SESSION['token']) {
if (utf_strlen($name) >= 5 && utf_strlen($name) <= 50) {
if (utf_strlen($description) <= 5000) {
$description = no_br($description);
DB::run()->query("UPDATE `downloads_files` SET `title` = ?, `description` = ? WHERE `id` = ?", array ($name, $description, $file['id']));
$_SESSION['note'] = 'Файл успешно изменен!';
redirect("get_file.php?id=" . $file['id']);
} else {
show_error('Ошибка! Слишком длинный или короткий текст описания (от 10 до 5000 символов)!');
}
} else {
show_error('Ошибка! Слишком длинное или короткое название (от 5 до 50 символов)!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
}
echo '<div class="form">';
echo '<form action="?act=edit&id=' . $file['id'] . '&token=' . $_SESSION['token'] . '" method="post" enctype="multipart/form-data">';
echo 'Название файла:*:<br />';
echo '<input type="text" name="name" size="50" maxlength="50" value="' . $file['title'] . '" /><br />';
//echo 'Файл (' . $config['allowextload'] . '):<br /><input type="file" name="loadfile" /><br />';
echo 'Описание*:<br />';
echo '<textarea cols="65" rows="5" name="description">' . $file['description'] . '</textarea><br />';
echo '<input value="Редактировать" type="submit" name="submit"/></form></div><br />';
} else {
show_error('Ошибка! Запрашиваемого файла несуществует.');
}
} else {
show_error('Ошибка! Добавлять разделы могут только суперадмины!');
}
break;
case 'del':
if (is_admin(array (101, 102))) {
$file = DB::run()->queryFetch("SELECT * FROM downloads_files WHERE id= ?", array ($id));
if ($file['id']) {
removeDir(BASEDIR . '/' . $file['path_to_file']);
// Удаление файла из БД
DB::run()->query("DELETE FROM downloads_files WHERE id =?", array ($file['id']));
$_SESSION['note'] = 'Файл успешно удален';
redirect("index.php?id=" . $file['category']);
} else {
show_error('Ошибка! Запрашиваемого файла несуществует.');
}
} else {
show_error('Ошибка! Добавлять разделы могут только суперадмины!');
}
break;
case 'load':
$file = DB::run()->queryFetch("SELECT * FROM downloads_files WHERE id= ?", array ($id));
if ($file['id']) {
$provkod = check(strtolower($_POST['provkod']));
$id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
if (is_user() || $provkod == $_SESSION['protect']) {
if (file_exists(BASEDIR . '/' . $file['path_to_file'] . $file['file'])) {
DB::run()->query("UPDATE downloads_files SET count_loads = count_loads +1 WHERE id= ? ", array ($id));
header('location: /' . $file['path_to_file'] . $file['file']);
exit;
} else {
show_error('Ошибка! Файла для скачивания не существует!');
}
} else {
show_error('Ошибка! Проверочное число не совпало с данными на картинке!');
}
echo '<img src="/images/img/back.gif" alt="image" /> <a href="get_file.php?id=' . abs(intval($_GET['id'])) . '">Вернуться</a><br />';
} else {
show_error('Ошибка! Запрашиваемого файла несуществует.');
}
break;
endswitch;
include_once ('../themes/footer.php');