Вход Регистрация
Файл: 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('Произошла Ошибка! Вы не ввели запрос &quot;Что искать?&quot;');
            
gen_red('search', '', RND);
        
//}
        //else if ( empty($s) )  {

            //$inSes->addMessage('Произошла Ошибка! Вы не выбрали категорию &quot;Где искать?&quot;');
            //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 .= '&amp;logic=' . strtolower($logic);
                    
$_q .= '&amp;' . 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') . '&amp;logic=' . strtolower($logic) . '&amp;' . 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 
' -&gt; <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) . '&amp;' . 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 
' -&gt; <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) . '">&lt;&lt; Назад</a>';
            }
            else echo 
'&lt;&lt; Назад';

            echo 
' | ';

            if (!empty(
$next['downs_id'])) {

                echo 
'<a href="' . gen_uri('file', $next['downs_id'], RND) . '">Далее &gt;&gt;</a>';
            }
            else echo 
'Далее &gt;&gt;';

            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();
?>
Онлайн: 1
Реклама