fanatos (20.01.2013 / 14:38)НА ВОТ ЦЕЛЫЙ КОД ПОСМАТРИ
ну без этих скобок тоже не работает
<?php
/**
* @package JohnCMS
* @link http://johncms.com
* @copyright Copyright (C) 2008-2011 JohnCMS Community
* @license LICENSE.txt (see attached file)
* @version VERSION.txt (see attached file)
* @author http://johncms.com/about
*/
define('_IN_JOHNCMS', 1);
$headmod = 'load';
$textl = 'Загрузки';
require('../incfiles/core.php');
require('includes/functions.php');
$down_path = $rootpath . 'files/download';
$screens_path = $rootpath . 'files/download/screen';
$files_path = $rootpath . 'files/download/files';
/*
-----------------------------------------------------------------
Настройки
-----------------------------------------------------------------
*/
$set_down = !empty($set['download']) ? unserialize($set['download']) : array (
'mod' => 1,
'theme_screen' => 1,
'top' => 25,
'icon_java' => 1,
'video_screen' => 1,
'screen_resize' => 1
);
if ($set_down['video_screen'] && !extension_loaded('ffmpeg'))
$set_down['video_screen'] = 0;
/*
-----------------------------------------------------------------
Ограничиваем доступ к Загрузкам
-----------------------------------------------------------------
*/
$error = '';
if (!$set['mod_down'] && $rights < 7)
$error = 'Загрузки закрыты';
elseif ($set['mod_down'] == 1 && !$user_id)
$error = 'Доступ к загрузкам открыт только <a href="../login.php">авторизованным</a> посетителям';
if ($error) {
require('../incfiles/head.php');
echo functions::display_error($error);
require('../incfiles/end.php');
exit;
}
$old = time() - 259200;
$realtime = time() + $system_set['timeshift']*3600;
/*
-----------------------------------------------------------------
Список разрешений для выгрузки
-----------------------------------------------------------------
*/
$defaultExt = array('rar', 'zip', 'pdf', 'nth', 'txt', 'tar', 'gz', 'jpg', 'jpeg', 'gif', 'png', 'bmp',
'3gp', 'mp3', 'mpg', 'sis', 'thm', 'jad', 'jar', 'cab', 'sis', 'sisx', 'exe', 'msi', 'apk', 'djvu', 'fb2');
/*
-----------------------------------------------------------------
Переключаем режимы работы
-----------------------------------------------------------------
*/
$array = array (
'add_cat' => 'includes/category',
'edit_cat' => 'includes/category',
'del_cat' => 'includes/category',
'mod_files' => 'includes/outputFiles',
'new_files' => 'includes/outputFiles',
'top_files' => 'includes/outputFiles',
'user_files' => 'includes/outputFiles',
'comms' => 'includes/comments',
'comms_all' => 'includes/comments',
'edit_file' => 'includes/fileControl',
'del_file' => 'includes/fileControl',
'edit_about' => 'includes/fileControl',
'edit_screen' => 'includes/fileControl',
'file_more' => 'includes/fileControl',
'jad_file' => 'includes/fileControl',
'mp3tags' => 'includes/fileControl',
'load_file' => 'includes/fileControl',
'open_zip' => 'includes/fileControl',
'txt_in_jar' => 'includes/fileControl',
'txt_in_zip' => 'includes/fileControl',
'view' => 'includes/fileControl',
'transfer_file' => 'includes/fileControl',
'down_file' => 'includes/upload',
'import' => 'includes/upload',
'scan_about' => 'includes',
'scan_dir' => 'includes',
'search' => 'includes',
'top_users' => 'includes',
'recount' => 'includes',
'bookmark' => 'includes'
);
$path = !empty($array[$act]) ? $array[$act] . '/' : '';
if (array_key_exists($act, $array) && file_exists($path . $act . '.php')) {
require($path . $act . '.php');
} else {
require('../incfiles/head.php');
if (!$set['mod_down'])
echo '<div class="rmenu">Загруз-зона закрыта!</div>';
/*
-----------------------------------------------------------------
Выводим список папок и файлов
-----------------------------------------------------------------
*/
if ($id) {
$cat = mysql_query("SELECT * FROM `down_files` WHERE `type` = 1 AND `id` = '$id' LIMIT 1");
$res_down_cat = mysql_fetch_assoc($cat);
if (mysql_num_rows($cat) == 0 || !is_dir($res_down_cat['dir'] . '/' . $res_down_cat['name'])) {
// Если неправильно выбран каталог, выводим ошибку
echo functions::display_error('Каталог не существует
<a href="index.php">К категориям</a>');
require('../incfiles/end.php');
exit;
}
$title_pages = functions::checkout(mb_substr($res_down_cat['rus_name'], 0, 30));
$textl = mb_strlen($res_down_cat['rus_name']) > 30 ? $title_pages . '...' : $title_pages;
// Получаем структуру каталогов
$tree = array ();
$dirid = $id;
$i = 0;
while ($dirid != '0' && $dirid != "") {
$res_down = mysql_fetch_assoc(mysql_query("SELECT * FROM `down_files` WHERE `type` = 1 AND `id` = '$dirid' LIMIT 1"));
$tree[] = $i ? '<a href="index.php?id=' . $dirid . '">' . functions::checkout($res_down['rus_name']) . '</a>' : functions::checkout($res_down['rus_name']);
$dirid = $res_down['refid'];
++$i;
}
$tree[] = '<a href="index.php">Загрузки</a>';
krsort($tree);
echo '<div class="phdr">' . functions::display_menu($tree) . '</div>';
$total_new = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `type` = '2' AND `time` > $old AND `dir` LIKE '" . ($res_down_cat['dir'] . '/' . $res_down_cat['name']) . "%'"), 0);
if ($total_new)
echo '<div class="rmenu"><a href="index.php?act=new_files&id=' . $id . '">Новые файлы</a> (' . $total_new . ')</div>';
} else {
//TODO: Написать модуль "последние файлы". Если нет новых файлов, то будут показываться 10, или более последних (по дате выгрузки)
echo '<div class="phdr">Загрузки</div>' .
'<div class="menu"><a href="index.php?act=search">Поиск</a></div>'.
'<div class="menu"><a href="index.php?act=top_files&id=0">Топ файлов</a></div>'.
'<div class="menu"><a href="index.php?act=top_users">Топ Юзеров</a></div>';
$total_new = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `type` = '2' AND `time` > $old"), 0);
if ($total_new)
echo '<div class="rmenu"><a href="index.php?act=new_files&id=' . $id . '">Новые файлы</a> (' . $total_new . ')</div>';
if ($rights == 4 || $rights >= 6) {
$mod_files = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `type` = '3'"), 0);
if ($mod_files > 0)
echo '<div class="rmenu"><a href="index.php?act=mod_files">Файлы на модерации</a> ' . $mod . '</div>';
}
}
// Подсчитываем число папок и файлов
$total_cat = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `refid` = '$id' AND `type` = 1"), 0);
$total_files = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `refid` = '$id' AND `type` = 2"), 0);
$sum_total = $total_files + $total_cat;
if ($sum_total) {
if ($total_files > 1) {
// Сортировка файлов
if (isset($_POST['sort_down']))
$_SESSION['sort_down'] = $_POST['sort_down'] ? 1 : 0;
if (isset($_POST['sort_down2']))
$_SESSION['sort_down2'] = $_POST['sort_down2'] ? 1 : 0;
$sql_sort = isset($_SESSION['sort_down']) && $_SESSION['sort_down'] ? ', `name`' : ', `time`';
$sql_sort .= isset($_SESSION['sort_down2']) && $_SESSION['sort_down2'] ? ' ASC' : ' DESC';
echo '<form action="index.php?id=' . $id . '" method="post"><div class="topmenu"><b>Сортировка: </b>' .
'<select name="sort_down" style="font-size:x-small"><option value="0"' . (!$_SESSION['sort_down'] ? ' selected="selected"' : '') . '>по времени</option>' .
'<option value="1"' . ($_SESSION['sort_down'] ? ' selected="selected"' : '') . '>по имени</option>' .
'</select> & <select name="sort_down2" style="font-size:x-small">' .
'<option value="0"' . (!$_SESSION['sort_down2'] ? ' selected="selected"' : '') . '>по убыванию</option>' .
'<option value="1"' . ($_SESSION['sort_down2'] ? ' selected="selected"' : '') . '>по возрастанию</option>' .
'</select><input type="submit" value=">>" style="font-size:x-small"/></div></form>';
} else
$sql_sort = '';
$req_down = mysql_query("SELECT * FROM `down_files` WHERE `refid` = '$id' AND `type` < 3 ORDER BY `type` ASC, `sort` ASC $sql_sort LIMIT $start, $kmess");
//Выводим список папок и файлов
$i = 0;
while ($res_down = mysql_fetch_assoc($req_down)) {
echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
if ($res_down['type'] == 1) {
echo '<img src="../images/folder.gif" alt="." /> ' .
'<a href="index.php?id=' . $res_down['id'] . '">' . functions::checkout($res_down['rus_name']) . '</a> (' . $res_down['total'] . ')';
//Разрешоные форматы
if ($rights == 4 || $rights >= 6 || !empty($res_down['desc'])) {
$menu = array (
'<a href="index.php?act=edit_cat&id=' . $res_down['id'] . '&up">Вверх</a>',
'<a href="index.php?act=edit_cat&id=' . $res_down['id'] . '&down">Вниз</a>',
'<a href="index.php?act=edit_cat&id=' . $res_down['id'] . '">Изменить</a>',
'<a href="index.php?act=del_cat&id=' . $res_down['id'] . '">Удалить</a>'
);
echo '<div class="sub">' .
(!empty($res_down['desc']) ? '<div class="gray">' . functions::checkout($res_down['desc'], 1, 1) . '</div>' : '') .
($rights == 4 || $rights >= 6 ? functions::display_menu($menu) : '') .
'</div>';
}
} else {
echo display_file($res_down);
}
echo '</div>';
++$i;
}
} else {
echo '<div class="menu">' . $lng['list_empty'] . '</div>';
}
echo '<div class="phdr">';
if ($total_cat > 0)
echo 'Папок: ' . $total_cat;
echo ' ';
if ($total_files > 0)
echo 'Файлов: ' . $total_files;
echo '</div>';
// Постраничная навигация
if ($sum_total > $kmess) {
echo '<div class="menu">' . functions::display_pagination('index.php?id=' . $id . '&', $start, $sum_total, $kmess);
echo '</div><div class="menu"><form action="index.php" method="get"><input type="hidden" name="id" value="' . $id . '"/>' .
'<input type="text" name="page" size="2"/><input type="submit" value="К странице »"/></form></div>';
}
if ($rights == 4 || $rights >= 6) {
/*
-----------------------------------------------------------------
Выводим ссылки на модерские функции
-----------------------------------------------------------------
*/
echo '<div class="func"><form action="redirect.php" method="post"><select name="act">' .
'<option value="add_cat">Создать папку</option>';
if ($id) {
$del_cat = mysql_result(mysql_query("SELECT COUNT(*) FROM `down_files` WHERE `type` = 1 AND`refid` = '$id'"), 0);
if (!$del_cat) {
echo '<option value="del_cat">Удалить папку</option>';
}
echo '<option value="edit_cat">Изменить папку</option>' .
'<option value="import">Импорт файла</option>' .
'<option value="down_file">Выгрузить файл</option>';
}
echo '<option value="scan_dir">Обновить файлы</option>' .
'<option value="clean">Удалить отсутств. файлы</option>' .
'<option value="scan_about">Обновить описания</option>' .
'<option value="recount">Обновить счетчики</option>' .
'<input type="hidden" name="id" value="' . $id . '"/>' .
'</select><input type="submit" value="Выполнить"/></form></div>';
}
else if (isset($res_down_cat['field']) && $res_down_cat['field'] && $user_id && $id)
echo '<div class="func"><a href="index.php?act=down_file&id=' . $id . '">Выгрузить файл</a></div>';
else if (isset($res_down_cat['field']) && $res_down_cat['field'] && $user_id && $id)
echo '<p><div class="func"><a href="index.php?act=down_file&id=' . $id . '">Выгрузить файл</a></div></p>';
echo '<p>';
echo ($id ? '<a href="index.php">В загрузки</a>' :
'<a href="index.php?act=comms_all">Обзор комментариев</a>
<a href="index.php?act=bookmark">Мои закладки</a>') . '</p>';
}
require('../incfiles/end.php');
?>