Файл: CMS/load/index.php
Строк: 752
<?php
define('CMS',TRUE);
include('cfg.php');
if (!empty($id) && !empty($mod) && $mod == 'download') { // Загрузка файла
$row = $db->selectRow("SELECT * FROM ?_downs WHERE `downs_id` = ? LIMIT 1", $id);
if (!empty($row)) {
include_once( ENGINE . '/classes/down.class.php' );
$files_path = ROOTPATH . DS . $config['files_folder'] . DS . $id . DS . $row['downs_link'];
if (file_exists($files_path)) {
if (empty($_SESSION[SP]['dload'][$id])) {
$db->query( "UPDATE ?_downs SET `downs_load` = (`downs_load` + 1), `downs_last_load` = ?
WHERE `downs_id` = ? LIMIT 1", SITE_TIME, $id );
}
$_SESSION[SP]['dload'][$id] = 1;
//redirect($config['site_url'] . DS . $config['files_folder'] . DS . $id . DS . $row['downs_link']);
Getf::download( @file_get_contents( $files_path ), $row['downs_link'], true, false );
exit;
}
else {
$inSes->addMessage('Ошибка 404! Файл не найден или ссылка не верна!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка 404! Файл не найден или ссылка не верна!');
gen_red('index', '', RND);
}
}
else if (!empty($mod) && $mod == 'search') { // Поиск файлов
$q = !empty($_REQUEST['q']) ? (string) $_REQUEST['q'] : '';
$logic = !empty($_REQUEST['logic']) ? check($_REQUEST['logic']) : 'or';
$error = '';
$bad_querius = array("x22", "x60", "t", "n", "r", "¬"); // Удаляемые символы из запроса
if (!empty($_REQUEST['q'])) {
if (isset($_REQUEST['s'])) {
if (is_array($_REQUEST['s'])) {
$s = $_REQUEST['s'];
}
else $s = explode(';', $_REQUEST['s']);
}
else $s = array_keys($categories);
$s = array_map('intval', $s);
if (!in_array($logic, array('and', 'or'))) {
$logic = 'or';
}
$logic = strtoupper( $logic );
$q = preg_replace('#[^a-zA-Zа-яА-Я0-9 -_@:;()+=.,&*!?<>#$"'/\]#siu', '', $q);
$q = preg_replace('/s/u', ' ', $q);
$q = preg_replace('/ {2,}/u', ' ', $q);
$q = str_replace($bad_querius, '', strip_tags($q));
if (get_magic_quotes_gpc()) $q = stripslashes($q);
$q = trim( $q );
if ( $q == '' ) {
$inSes->addMessage('Произошла Ошибка! Вы не ввели запрос "Что искать?"');
gen_red('search', '', RND);
//}
//else if ( empty($s) ) {
//$inSes->addMessage('Произошла Ошибка! Вы не выбрали категорию "Где искать?"');
//gen_red('search', '', RND);
}
else {
$q = explode(' ', $q);
array_splice($q, 3);
$escape_array = array(
"x2a" => "", //*
"x22" => "", //"
"x2b" => "", //+
"x2d" => "", //-
"x7e" => "", //~
"x28" => "", //(
"x29" => "", //)
"x3c" => "", //<
"x3e" => "" //>
);
for($i = 0, $query = array(); $i < count( $q ); $i++) {
$query[] = sprintf($lang['SEARCH_WORD'], check($q[$i]));
$q[$i] = strtr($q[$i], $escape_array);
}
$query = implode(' ' . $lang[$logic] . ' ', $query);
$where = !empty($id) ? " AND `d`.`downs_cats_id` = '$id'" : " AND `d`.`downs_cats_id` <> ''";
for($i = 0, $part_of_query = '', $sep = ''; $i < count( $q ); $i++, $sep = $logic) {
$part_of_query .= $sep . " MATCH(`d`.`downs_title`,`d`.`downs_text`) AGAINST('" . mysql_escape_string($q[$i]) . "*' IN BOOLEAN MODE)";
$part_of_query .= $where . ' ';
}
$v = $d = array();
if (!empty($id)) {
$rows = $db->selectPage( $total, "SELECT `d`.*, `c`.*
FROM ?_downs `d` LEFT JOIN ?_downs_category `c`
ON `d`.`downs_cats_id` = `c`.`cats_id`
WHERE " . $part_of_query . "
ORDER BY `d`.`downs_time` DESC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
$c = $from + 1;
$start = ($page - 1) * $onpage;
if ($start < 0) $start = 0;
if ($start > $total - 1) $start = $total - 1;
$stop = $start + $onpage;
if ($stop > $total) $stop = $total;
$d[] = 'Поиск файлов';
$d[] = 'Результаты поиска - ' . $query;
$v[] = '<div class="b">';
$v[] = '- Всего найдено: <b>' . num2name( $total, array('файлов','файла','файл') ) . '</b><br />';
$v[] = '- Показаны результаты с <b>' . intval( $start + 1) . '</b>';
$v[] = ' по <b>' . intval( $stop ) . '</b> место<br /></div>';
foreach($rows as $row) {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
$v[] = '<div class="b" style="min-height: ' . $config['preview_size'] . 'px;">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
$v[] = '<div class="img">' . resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']) . '</div>';
}
else if (!empty($row['downs_screen'])) {
$v[] = '<div class="img">' . resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']) . '</div>';
}
else {
$v[] = '<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
$sex = ($row['downs_user_sex'] == 1) ? ' <span style="color:red;">(+18)</span>' : '';
$v[] = extensions($file_ext);
$v[] = '<b><a href="' . gen_uri('file', $row['downs_id'], RND) . '">' . $row['downs_title'] . '</a></b>' . $sex;
$v[] = '<div class="right">(' . $filesize . ')</div>';
$v[] = '<br />';
if (!empty($row['downs_text'])) $v[] = format_text($row['downs_text'],0,$config['substr_text'],'UTF-8') . '...';
$v[] = '</div>';
}
$title = $rows[0]['cats_name'];
show_header('Результаты поиска - ' . $query, implode(' ', $d), implode(' ', $d));
echo implode('',$v);
$_q = 'q=' . request('q');
$_q .= '&logic=' . strtolower($logic);
$_q .= '&' . RND;
echo show_pages(gen_uri('search', $id, $_q));
}
else {
show_header('Поиск файлов');
show_error('По вашему запросу ' . $query . ' ни чего не найдено!');
}
}
else {
$rows = $db->select("SELECT `d`.*, `c`.*, COUNT( `d`.`downs_id` ) AS `Rows`
FROM ?_downs `d` LEFT JOIN ?_downs_category `c`
ON `d`.`downs_cats_id` = `c`.`cats_id`
WHERE " . $part_of_query . "
GROUP BY `c`.`cats_id`
ORDER BY `c`.`cats_id` ASC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows)) {
foreach($rows as $row) {
$v[] = '<div class="b">' . icon('folder.png', 'icons');
$v[] = '<a href="' . gen_uri('search', $row['cats_id'], 'q=' . request('q') . '&logic=' . strtolower($logic) . '&' . RND) . '">' . $row['cats_name'] . '</a> (' . $row['Rows'] . ')';
$v[] = '</div>';
$d[] = $row['cats_name'];
}
show_header('Результаты поиска - ' . $query, implode(' ', $d), implode(' ', $d));
echo implode('',$v);
}
else {
show_header('Поиск файлов');
show_error('По вашему запросу ' . $query . ' ни чего не найдено!');
}
}
}
}
else {
show_header('Поиск файлов');
}
$form = new cmsForm(gen_uri('search', '', RND), 'post');
$form->addText('Ваш запрос:', 'q', request('q'));
$form->addRadio('', 'logic', strtolower($logic), array('and' => 'Все слова', 'or' => 'Любое из слов'));
echo $form->Submit('Искать');
unset($form);
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">Загруз Зона</a> | ';
echo '<a href="' . gen_uri('new', '', RND) . '">Новые файлы</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">ТОП файлов</a></div>';
}
else if (!empty($mod) && $mod == 'new') { // Новые файлы
show_header('Новые файлы');
$rows = $db->selectPage( $total, "SELECT * FROM ?_downs
WHERE `downs_cats_id` != ''
ORDER BY `downs_time` DESC
LIMIT ?d, ?d", $from, $onpage );
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo '<div class="b" style="min-height: ' . $config['preview_size'] . 'px;">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else if (!empty($row['downs_screen'])) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else {
echo '<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
$sex = ($row['downs_user_sex'] == 1) ? ' <span style="color:red;">(+18)</span>' : '';
echo extensions($file_ext);
echo '<b><a href="' . gen_uri('file', $row['downs_id'], RND) . '">' . $row['downs_title'] . '</a></b>' . $sex;
echo '<div class="right">(' . $filesize . ')</div>';
echo '<br />';
if (!empty($row['downs_text'])) echo format_text($row['downs_text'],0,$config['substr_text'],'UTF-8') . '...';
echo '</div>';
}
echo show_pages('new', RND, 'p');
}
else {
show_error('Новых файлов пока нет!');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">Загруз Зона</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">ТОП файлов</a> | ';
echo '<a href="' . gen_uri('search', '', RND) . '">Поиск</a></div>';
}
else if (!empty($mod) && $mod == 'top') { // ТОП файлов
show_header('Популярные файлы');
$rows = $db->selectPage( $total, "SELECT * FROM ?_downs
WHERE `downs_cats_id` != ''
ORDER BY `downs_load` DESC
LIMIT ?d, ?d", $from, $onpage );
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo '<div class="b" style="min-height: ' . $config['preview_size'] . 'px;">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else if (!empty($row['downs_screen'])) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else {
echo '<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
$sex = ($row['downs_user_sex'] == 1) ? ' <span style="color:red;">(+18)</span>' : '';
echo extensions($file_ext);
echo '<b><a href="' . gen_uri('file', $row['downs_id'], RND) . '">' . $row['downs_title'] . '</a></b>' . $sex;
echo '<div class="right">(' . $filesize . ')</div>';
echo '<br />';
if (!empty($row['downs_text'])) echo format_text($row['downs_text'],0,$config['substr_text'],'UTF-8') . '...';
echo '</div>';
}
echo show_pages('top', RND, 'p');
}
else {
show_error('Файлов пока нет!');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">Загруз Зона</a> | ';
echo '<a href="' . gen_uri('new', '', RND) . '">Новые файлы</a> | ';
echo '<a href="' . gen_uri('search', '', RND) . '">Поиск</a></div>';
}
else if (!empty($id) && !empty($mod) && $mod == 'send_link') { // Отправка ссылки другу
if ($is_logged) {
redirect(gen_users($log, 'send_link', $id, RND));
}
else {
show_header('Отправка ссылки');
show_login('Вы не авторизованы, для отправки ссылки своим друзьям, необходимо');
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('file', $id, RND) . '">Назад</a></div>';
}
}
else if (!empty($id) && !empty($mod) && $mod == 'read') { // Чтение файла
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $id);
if (empty($row) || !is_array($row)) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('index', '', RND);
}
show_header($row['downs_title'] . ' - онлайн чтение', $row['downs_text'], $row['downs_text']);
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS;
if (!is_file($filepath . $row['downs_link'])) {
show_error('Ошибка! Файл не найден или ссылка неверна!');
}
else {
$ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
$file = @file($filepath . $row['downs_link']);
$total = @count($file);
$onpage = !empty($config['chars_onpage']) ? num($config['chars_onpage']) : 300;
if ($total > 0) {
$start = ($page - 1) * $onpage;
if ($start < 0) $start = 0;
if ($start > $total - 1) $start = $total - 1;
$stop = $start + $onpage;
if ($stop > $total) $stop = $total;
$show = array();
for($n = $start; $n < $stop; $n++) {
$show[] = check($file[$n]);
}
echo '<div class="b">' . implode('<br />',$show) . '</div>';
echo show_pages(gen_uri('read', $id, RND));
}
else {
show_error('К сожалению, этот документ не содержит информации!');
}
}
echo '<div class="b">' . show_back_link($row['cats_parent_all'] . ',' . $row['cats_id']);
echo ' -> <a href="' . gen_uri('file', $id, RND) . '">' . $row['downs_title'] . '</a>';
echo '</div>';
}
else if (!empty($id) && !empty($mod) && $mod == 'zip') {
if ($id < 1) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('files', '', RND);
}
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $id);
if (empty($row) || !is_array($row)) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('files', '', RND);
}
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS;
if (!is_file($filepath . $row['downs_link'])) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('file', $id, RND);
}
include_once( ENGINE . '/classes/pclzip.class.php' );
if (!$zip = new PclZip($filepath . $row['downs_link'])) {
$inSes->addMessage('Ошибка! Невозможно просмотреть данный файл, т.к. он не является архивом!');
gen_red('file', $id, RND);
}
if (!empty($_GET['file'])) {
$file = (abs(intval($_GET['file'])) - 1);
$content = $zip -> extract(PCLZIP_OPT_BY_INDEX, $file, PCLZIP_OPT_EXTRACT_AS_STRING);
if (!empty($content)) {
include_once( ENGINE . '/classes/down.class.php' );
$filecontent = $content[0]['content'];
$filename = $content[0]['filename'];
$ext = strtolower(substr($filename, strrpos($filename, '.') + 1));
Getf::download( $filecontent, $filename, true, false );
exit;
}
else {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('zip', $id, RND);
}
}
if (!empty($_GET['view'])) {
$view = (abs(intval($_GET['view'])) - 1);
$content = $zip -> extract(PCLZIP_OPT_BY_INDEX, $view, PCLZIP_OPT_EXTRACT_AS_STRING);
if (!empty($content)) {
$filecontent = $content[0]['content'];
$filename = $content[0]['filename'];
$ext = strtolower(substr($filename, strrpos($filename, '.') + 1));
show_header('Просмотр файла - ' . $filename);
echo '<div class="b">' . extensions($ext);
echo '<b>' . $filename . '</b> (' . size($content[0]['size']) . ')</div>';
if (!preg_match("/.(gif|png|bmp|wbmp|jpg|jpeg)$/", $filename)) {
if ($content[0]['size'] > 0) {
if (is_utf($filecontent)) {
echo '<div class="b">' . highlight_string($filecontent, 1) . '<br />';
}
else {
echo '<div class="b">' . highlight_string(iconv('cp1251', 'UTF-8', $filecontent), 1) . '<br />';
}
echo '- <a href="' . gen_uri('zip', $id, 'file=' . ($view + 1)) . '">Скачать</a></div>';
}
else {
show_error('Данный файл пустой!');
}
}
else {
echo '<div class="b"><img src="' . gen_uri('zip', $id, 'file=' . ($view + 1)) . '" alt="" /><br />';
echo '- <a href="' . gen_uri('zip', $id, 'file=' . ($view + 1)) . '">Скачать</a></div>';
}
}
else {
$inSes->addMessage('Ошибка! Не удалось извлечь файл!');
gen_red('zip', $id, RND);
}
}
else {
show_header('Просмотр архива - ' . $row['downs_title'], $row['downs_text'], $row['downs_text']);
if (($list = $zip -> listContent()) != 0) {
$intotal = $zip -> properties();
$total = $intotal['nb'];
sort($list);
if ($total > 0) {
echo '<div class="b">';
echo 'Всего файлов: ' . $total . '</div><div class="b">';
$arrext = array('.xml', '.wml', '.asp', '.aspx', '.shtml', '.htm', '.phtml', '.html', '.php', '.htt', '.dat', '.tpl', '.htaccess', '.pl', '.js', '.jsp', '.css', '.txt', '.sql', '.gif', '.png', '.bmp', '.wbmp', '.jpg', '.jpeg');
$onpage = 25;
list($start,$stop) = get_page();
for ($i = $start; $i < $stop; $i++) {
if ($list[$i]['folder'] == 1) {
$filename = substr($list[$i]['filename'], 0, -1);
echo icon('folder.png', 'icons') . '<b>Директория ' . $filename . '</b><br />';
}
else {
$filename = $list[$i]['filename'];
$ext = strtolower(substr($filename, strrpos($filename, '.') + 1));
echo extensions($ext);
if (in_array('.' . $ext, $arrext)) {
echo '<a href="' . gen_uri('zip', $id, 'view=' . ($list[$i]['index'] + 1) . '&' . RND) . '">' . $filename . '</a>';
}
else {
echo $list[$i]['filename'];
}
echo ' (' . size($list[$i]['size']) . ')<br />';
}
}
echo '</div>' . show_pages(gen_uri('zip', $id, RND));
}
else {
show_error('Ошибка! В данном архиве нет файлов!');
}
}
else {
show_error('Ошибка! Невозможно открыть архив!');
}
}
echo '<div class="b">' . show_back_link($row['cats_parent_all'] . ',' . $row['cats_id']);
echo ' -> <a href="' . gen_uri('file', $id, RND) . '">' . $row['downs_title'] . '</a>';
echo '</div>';
}
else if (!empty($id) && !empty($mod) && $mod == 'file') {
if ($id < 1) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('index', '', RND);
}
$prs = parse_url($_SERVER['REQUEST_URI']);
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*,
(SELECT `users_gender` FROM ?_users WHERE `users_login` = ?_downs.`downs_user`) AS `users_gender`,
(SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $prs['path'], $id);
if (empty($row) || !is_array($row)) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('index', '', RND);
}
if ($row['downs_user_comm'] == 1 && $is_logged) {
$arr_friends = $db->selectCol("SELECT `friends_login` FROM ?_friends WHERE `users_login` = ?", $log);
}
else $arr_friends = array();
if (!empty($_POST['submit'])) { // Добавление комментария
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
if ($is_logged) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen(trim($msg)) >= 5 && cms_strlen($msg) < 1000) {
if (
($row['downs_user_comm'] == 2 && $row['downs_user'] == $log) ||
($row['downs_user_comm'] == 1 && in_array($log,$arr_friends) ||
($row['downs_user_comm'] == 0))) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$msg = antimat($msg);
$msg = smiles($msg);
$date = date('Y-m-d H:i:s', SITE_TIME);
$db->query("INSERT INTO ?_comments SET `comm_post` = ?, `comm_text` = ?, `comm_author` = ?, `comm_type` = 'load', `comm_date` = ?, `comm_ip` = ?, `comm_ua` = ?", $id, $msg, $log, $date, $ip, $brow);
$db->query("UPDATE ?_downs SET `downs_comments` = (`downs_comments` + 1) WHERE `downs_id` = ?;", $id);
$db->query("UPDATE ?_users SET `users_allcomments` = (`users_allcomments` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?", $config['comm_add_point'], $config['comm_add_money'], $log);
$inSes->addMessage('Сообщение успешно добавлено!', 'ok');
gen_red('file', $id, RND);
}
else $inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
}
else $inSes->addMessage('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
}
else $inSes->addMessage('Ошибка! Комментирование данному файлу запрещено!');
}
else $inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Комментировать могут только зарегистрированные пользователи сайта!');
}
show_header($row['downs_title'], $row['downs_text'], $row['downs_text']);
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS;
$is_java = false; $jad_url = '';
if (!is_file($filepath . $row['downs_link'])) {
show_error('Ошибка! Файл не найден или ссылка неверна!');
}
else {
$file_url = DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = read_file($filepath . $row['downs_link']);
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo '<div class="b">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
echo '<a href="' . $file_url . '">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']) . '</a><br />';
}
else if ($file_ext == 'flv' || $file_ext == 'mp4') {
echo video_player($file_url);
}
else {
if (!empty($row['downs_screen'])) {
echo '<a href="' . $row['downs_screen'] . '">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']) . '</a><br />';
}
else {
echo '<div style="align:center;"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
if ($file_ext == 'jar') {
$is_java = (bool) get_jad($filepath . $row['downs_link'], $config['site_url'] . $file_url);
$jad_url = $config['site_url'] . str_ireplace('.jar', '.jad', $file_url);
}
}
if (!empty($row['downs_text'])) echo nl2br(bb_code($row['downs_text']));
else echo 'Описание к файлу не найдено!';
echo '<br /></div>';
if (!empty($config['allow_downs_nav'])) {
echo '<div class="c">';
$next = $db->selectRow("SELECT `downs_id` FROM ?_downs
WHERE `downs_id` > ? AND `downs_cats_id` = ?
ORDER BY `downs_id` LIMIT 1", $row['downs_id'], $row['downs_cats_id']);
$prev = $db->selectRow("SELECT `downs_id` FROM ?_downs
WHERE `downs_id` < ? AND `downs_cats_id` = ?
ORDER BY `downs_id` DESC LIMIT 1", $row['downs_id'], $row['downs_cats_id']);
if (!empty($prev['downs_id'])) {
echo '<a href="' . gen_uri('file', $prev['downs_id'], RND) . '"><< Назад</a>';
}
else echo '<< Назад';
echo ' | ';
if (!empty($next['downs_id'])) {
echo '<a href="' . gen_uri('file', $next['downs_id'], RND) . '">Далее >></a>';
}
else echo 'Далее >>';
echo '</div>';
}
if ($file_ext == 'mp3') {
$TaggingFormat = 'UTF-8';
require_once( ENGINE . '/getid3/getid3.php' );
$getID3 = new getID3; $v = array();
$getID3->setOption(array('encoding'=>$TaggingFormat));
$info = $getID3->analyze($filepath . $row['downs_link']);
if (!empty($info['tags']['id3v1']['title'][0]) || !empty($info['tags']['id3v2']['title'][0])) {
$v[] = !empty($info['tags']['id3v1']['title'][0]) ? '- Название: ' . check($info['tags']['id3v1']['title'][0]) :
'- Название: ' . check($info['tags']['id3v2']['title'][0]);
}
if (!empty($info['tags']['id3v1']['artist'][0]) || !empty($info['tags']['id3v2']['artist'][0])) {
$v[] = !empty($info['tags']['id3v1']['artist'][0]) ? '- Исполнитель: ' . check($info['tags']['id3v1']['artist'][0]) :
'- Исполнитель: ' . check($info['tags']['id3v2']['artist'][0]);
}
if (!empty($info['tags']['id3v1']['album'][0]) || !empty($info['tags']['id3v2']['album'][0])) {
$v[] = !empty($info['tags']['id3v1']['album'][0]) ? '- Альбом: ' . check($info['tags']['id3v1']['album'][0]) :
'- Альбом: ' . check($info['tags']['id3v2']['album'][0]);
}
if (!empty($info['tags']['id3v1']['year'][0]) || !empty($info['tags']['id3v2']['year'][0])) {
$v[] = !empty($info['tags']['id3v1']['year'][0]) ? '- Год: ' . check($info['tags']['id3v1']['year'][0]) :
'- Год: ' . check($info['tags']['id3v2']['year'][0]);
}
if (!empty($info['tags']['id3v1']['genre'][0]) || !empty($info['tags']['id3v2']['genre'][0])) {
$v[] = !empty($info['tags']['id3v1']['genre'][0]) ? '- Жандр: ' . check($info['tags']['id3v1']['genre'][0]) :
'- Жандр: ' . check($info['tags']['id3v2']['genre'][0]);
}
$v[] = !empty($info['bitrate']) ? '- Битрейт: ' . substr($info['bitrate'],0,3) : '-';
$v[] = !empty($info['playtime_string']) ? '- Длина: ' . $info['playtime_string'] : '-';
if (count($v) > 0) echo '<div class="b"><b>Инфа о треке</b><br />' . implode('<br />',$v) . '</div>';
echo mp3_player($file_url);
}
echo '<div class="b">' . icon('dload.png', 'icons');
echo '<a href="' . gen_uri('download', $row['downs_id'], RND) . '">Скачать</a> (' . $filesize . ')<br />';
if ($is_java && $jad_url) {
echo icon('dload.png', 'icons');
echo '<a href="' . $jad_url . '">Скачать jad-файл</a><br />';
}
else if ($file_ext == 'txt') {
echo icon('post_new.png', 'icons');
echo '<a href="' . gen_uri('read', $id, RND) . '">Читать онлайн</a><br />';
}
else if ($file_ext == 'zip') {
echo icon('post_new.png', 'icons');
echo '<a href="' . gen_uri('zip', $id, RND) . '">Просмотр архива</a><br />';
}
echo '</div>';
echo '<div class="b">';
echo '<b>Закачек:</b> ' . num($row['downs_load']) . '<br />';
echo 'Файл добавлен обитателем: ' . user_visit_icon($row['downs_user'], $row['users_gender']);
echo ' ' . users_anketa($row['downs_user']) . ' (' . get_date($row['downs_time']) . ')<br />';
echo 'В папку: <img src="/images/icons/folder.png" class="icon" alt="" /> ';
echo '<a href="' . gen_uri('files', $row['cats_id'], RND) . '">' . $row['cats_name'] . '</a>';
echo '<br /></div>' . show_bookmarks($row['downs_title'], '', $row['bookmarks']);
echo '<div class="b">' . icon('email_send.png', 'icons');
echo '<a href="' . gen_uri('send_link', $row['downs_id'], RND) . '">Отправить другу</a><br />';
echo '</div>';
$comm_type = 'load';
$comm_url = 'file';
// Подключили комменты
include( MODULES_PATH . 'comments.inc.php' );
if ($is_logged) {
if ($row['downs_user_comm'] == 2 && $row['downs_user'] <> $log) {
show_error('Комментирование только для владельца!');
}
else if ($row['downs_user_comm'] == 1) {
if (!empty($arr_friends) && in_array($log,$arr_friends)) {
$form = new cmsForm(gen_uri('file', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
else {
show_error('Комментирование только для друзей владельца!');
}
}
else {
$form = new cmsForm(gen_uri('file', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
}
else {
show_login('Вы не авторизованы, для комментирования, необходимо');
}
}
echo '<div class="b">' . show_back_link($row['cats_parent_all'] . ',' . $row['cats_id']) . '</div>';
}
else {
if (!empty($id)) {
$cats = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;", $id);
if (!empty($cats)) {
show_header('Загруз зона - ' . $cats['cats_name']);
if ($cats['cats_user_type'] == 3 && !empty($cats['cats_user_pass'])) show_auth_form($id, $cats['cats_user_pass']);
}
else {
$inSes->addMessage('Ошибка! Категория не найдена или ссылка неверна!');
gen_red('files', '', RND);
}
$is_index = false;
}
else {
show_header('Загруз Зона');
$is_index = true;
echo '<div class="b">';
echo '<img src="/images/icons/folder_star.png" class="icon" alt="" /> ';
echo '<a href="' . gen_uri('new', '', RND) . '">Новые</a> | ';
echo '<a href="' . gen_uri('top', '', RND) . '">Популярные</a> | ';
echo '<a href="' . gen_uri('search', '', RND) . '">Поиск</a><br />';
echo '</div>';
}
$sub_cats = false;
$subs = $db->select("SELECT `c`.*
FROM ?_downs_category `c`
WHERE `c`.`cats_user` = '' AND `c`.`cats_parent` = ?;", $id);
//print_r($subs);
if (!empty($subs) && count($subs) > 0 && $page == 1) {
$sub_cats = true;
foreach($subs as $sub) {
echo '<div class="b">' . icon('folder.png', 'icons');
echo '<a href="' . gen_uri('files', $sub['cats_id']) . '">' . $sub['cats_name'] . '</a></b> (' . $sub['cats_count'] . ')</div>';
}
}
if (!empty($id)) $where = "`downs_cats_id` = '$id'"; else $where = "`downs_cats_id` != '0'";
$rows = $db->selectPage( $total, "SELECT * FROM ?_downs
WHERE `downs_link` != '' AND " . $where . "
ORDER BY `downs_time` DESC
LIMIT ?d, ?d", $from, $onpage );
if (!empty($rows) && $total > 0 && !$is_index) {
echo '<div class="b">';
echo '<img src="/images/icons/folder_star.png" class="icon" alt="" /> ';
echo '<b>' . $cats['cats_name'] . '</b></div>';
foreach($rows as $row) {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo '<div class="b" style="min-height: ' . $config['preview_size'] . 'px;">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else if (!empty($row['downs_screen'])) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else {
echo '<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
$sex = ($row['downs_user_sex'] == 1) ? ' <span style="color:red;">(+18)</span>' : '';
echo extensions($file_ext);
echo '<b><a href="' . gen_uri('file', $row['downs_id'], RND) . '">' . $row['downs_title'] . '</a></b>' . $sex;
echo '<div class="right">(' . $filesize . ')</div>';
echo '<br />';
if (!empty($row['downs_text'])) echo format_text($row['downs_text'],0,$config['substr_text'],'UTF-8') . '...';
echo '</div>';
}
echo show_pages(gen_uri('files', $id, RND));
}
else if (!$sub_cats) {
show_error('В данном разделе еще нет файлов!');
}
if (!empty($cats['cats_parent_all'])) echo '<div class="b">' . show_back_link($cats['cats_parent_all']) . '</div>';
}
show_footer();
?>