Вход Регистрация
Файл: download/index.php
Строк: 230
<?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
 *
 * @var $lng
 */

define('_IN_JOHNCMS', 1);

$headmod = 'load';

require_once 
'../incfiles/core.php';
require_once 
'functions.php';
$cat = isset($_GET['cat']) ? intval($_GET['cat']) : 0;
$sort = isset($_GET['sort']) ? $_GET['sort'] : "";
$tree = array();
$dirid = $cat;

// Access control
$error = '';

if (empty(
$set['mod_down']) AND $rights < 7) {
    
$error = $lng_dl['downloads_closed'];
} elseif (!empty(
$set['mod_down']) AND $set['mod_down'] == 1 AND !$user_id) {
    
$error = $lng['access_guest_forbidden'];
}

if (!empty(
$error)) {
    require_once(
'../incfiles/head.php');
    echo 
'<div class="rmenu"><p>' . $error . '</p></div>';
    require_once(
"../incfiles/end.php");
    exit;
}

$do = array('new', 'rat', 'bookmarks');
if (
in_array($act, $do)) {
    include_once(
$act . '.php');
} else {
    while (
$dirid != '0' && $dirid != "") {
        
$req = db::query("SELECT * FROM `downpath` WHERE `id` = '" . $dirid .
            
"' LIMIT 1");
        
$res = mysqli_fetch_array($req);
        
$tree[] = '<a href="dir_' . $dirid . '.html" title="' . $res['name'] . '">' . $res['name'] . '</a>';
        
$dirid = $res['refid'];
    }
    
krsort($tree);
    
$cdir = array_pop($tree);
    
$valueeq = '';
    foreach (
$tree as $valuee) {
        
$valueeq = '' . $valueeq . $valuee . ' / ';
    }
    
$textl = $lng_dl['downloads'] . ' ' . strip_tags($valueeq . $cdir) . '';
    require_once 
'../incfiles/head.php';


    if (empty(
$_GET['cat'])) {
        
// Заголовок начальной страницы загрузок
        
?>
        <div class="phdr"><strong><?= $lng_dl['downloads'] ?></strong></div>
        <div class="topmenu">
            <a href="search.php"><?= $lng_dl['search_files'] ?></a>
            <?php if ($user_id): ?>
                | <a href="index.php?act=bookmarks"><?= $lng_dl['bookmarks'] ?></a>
            <?php endif; ?>
        </div>
        <div class="gmenu blockpad">
            <?= functions::image('new.png') ?><a href="index.php?act=new"><?= $lng_dl['last_100_files'] ?></a><br>
            <?= functions::image('rate.gif') ?><a href="top_users.php"><?= $lng_dl['user_rating'] ?></a><br>
            <?= functions::image('rate.gif') ?><a href="top.php"><?= $lng_dl['top_files'] ?></a>
        </div>

    <?php
    
} else {
        echo 
'<div class="phdr"><a href="index.html">' . $lng_dl['downloads'] . '</a> | ';
        foreach (
$tree as $value) {
            echo 
$value;
            if (
$value != $cdir)
                echo 
' | ';
        }
        echo 
'<b>' . strip_tags($cdir) . '</b></div>';
    }


    
$totalcat = db::result(db::query("SELECT COUNT(*) FROM `downpath` WHERE `refid` = '" . $cat . "'"), 0);

    if (
$totalcat > 0) {
        
$zap = db::query("SELECT * FROM `downpath` WHERE `refid` = '" . $cat . "' ORDER BY `position` ASC LIMIT " . $start . "," . $kmess);
        
$cachetime = time() - $down_setting['cachetime'] * 3600; // Время кэширования

        
if (is_file('cache/' . $cat . '.dat') && filemtime('cache/' . $cat . '.dat') > $cachetime) {
            
$count_cache = file_get_contents('cache/' . $cat . '.dat');
            
$count_cache = unserialize($count_cache);
            
$opencache = 'true';
        } else {
            
$count_cache = array();
        }
        
$i = 0;
        while (
$zap2 = mysqli_fetch_array($zap)) {
            echo (
$i % 2) ? '<div class="list1">' : '<div class="list2">';
            ++
$i;
            if (!
$count_cache[$zap2['id']]) {
                
////////// счётчики //////////
                
$countf = db::result(db::query("SELECT COUNT(*) FROM `downfiles` WHERE `type` != 1 AND `status` = 1 && `way` LIKE '" . $zap2['way'] . "%' "), 0);
                
$old = time() - (3 * 24 * 3600);
                
$countnf = db::result(db::query("SELECT COUNT(*) FROM `downfiles` WHERE `type` != 1 AND `status` = 1 && `time` > '" . $old . "' && `way` LIKE '" . $zap2['way'] . "%' "), 0);

                
//$countp = db::result(db::query("SELECT COUNT(*) FROM `downpath` WHERE `way` LIKE '" . $zap2['way'] ."%';"), 0);
                //$countp--; // Счётчик папок. Раскомментировать если нужен.

                
if ($countnf) {
                    
$countnf = '/<span class="red">+' . $countnf . '</span>';
                } else {
                    
$countnf = '';
                }
                
$count_cache[$zap2['id']] = $countf . $countnf; // Сюда вставлять $countp если нужен счётчик папок.
            
}
            echo 
'<img src="img/dir.png" alt="."/> <a href="dir_' . $zap2['id'] . '.html">' . $zap2['name'] . '</a> (' . $count_cache[$zap2['id']] . ')<br/>';
            if (
$zap2['desc']) {
                echo 
'<div class="sub">' . $zap2['desc'] . '</div>';
            }
            echo 
'</div>';
        }
        echo 
'<div class="phdr">' . $lng_dl['all_dirs'] . ': ' . $totalcat . '</div>';
        if (
$totalcat > $kmess) {
            echo 
'<div class="topmenu">';
            echo 
'' . functions::display_pagination('index.php?cat=' . $cat . '&amp;', $start, $totalcat, $kmess) . '</div>';
            echo 
'<p><form action="index.php" method="get"><input type="hidden" name="cat" value="' . $cat . '"/><input type="text" name="page" size="2"/><input type="submit" value="' . $lng_dl['to_page'] . ' &gt;&gt;"/></form></p>';
        }

        
//// Создаём файл с кэшем если он устарел или его нет ////
        
if (!$opencache && $arr = fopen('cache/' . $cat . '.dat', "w")) {
            
fwrite($arr, serialize($count_cache));
            
fclose($arr);
            
//echo 'Кэш обновлен или создан!';
        
}

    } else {
        
$req = db::query("SELECT COUNT(*) FROM `downfiles` WHERE `type` != '1' AND `pathid` = '" . $cat . "' AND `status` = 1");
        
$totalfile = db::result($req, 0);

        if (
$totalfile > 0) {
            
// Проверка установки сортировки
            
if ($sort) {
                
$_SESSION['downsort'] = $sort;
            } else {
                
$sort = isset($_SESSION['downsort']) ? $_SESSION['downsort'] : '';
            }
            
// Проверка упорядочивания
            
if (isset($_GET['orderby'])) {
                
$order = $_GET['orderby'] == 'desc' ? 'desc' : 'asc';
                
$_SESSION['orderby'] = $order;
            } else {
                
$order = (isset($_SESSION['orderby']) && $_SESSION['orderby'] == 'desc') ? 'desc' : 'asc';
            }
            
// Ссылки
            
echo '<div class="menu"><small><a href="index.php?act=new&amp;cat=' . $cat . '">' . $lng_dl['last_100_files'] . '</a> | <a href="top.html?&amp;cat=' . $cat . '">' . $lng_dl['dir_top'] . '</a></small></div>';

            echo 
'<div class="menu">
            <a href="index.php?cat=' 
. $cat . '&amp;orderby=' . ($order == 'desc' ? 'asc' : 'desc') . '" title = "' . ($order == 'desc' ? $lng_dl['desc'] : $lng_dl['asc']) . '"><img src="img/' . ($order == 'desc' ? 'asc' : 'desc') . '.png" alt="' . ($order == 'desc' ? $lng_dl['desc'] : $lng_dl['asc']) . '" /></a>
            ' 
. $lng_dl['sorting'] . ': ' . (($sort == 'time' or $sort == 'count' or $sort == 'rating') ? '<a href="index.php?cat=' . $cat . '&amp;sort=name">' . $lng_dl['name'] . '</a>' : '<b>' . $lng_dl['name'] . '</b>') . ' |
            ' 
. ($sort != 'time' ? '<a href="index.php?cat=' . $cat . '&amp;sort=time">' . $lng_dl['date'] . '</a>' : '<b>' . $lng_dl['date'] . '</b>') . ' |
            ' 
. ($sort != 'count' ? '<a href="index.php?cat=' . $cat . '&amp;sort=count">' . $lng_dl['loads_count'] . '</a>' : '<b>' . $lng_dl['loads_count'] . '</b>') . ' |
            ' 
. ($sort != 'rating' ? '<a href="index.php?cat=' . $cat . '&amp;sort=rating">' . $lng_dl['rating'] . '</a>' : '<b>' . $lng_dl['rating'] . '</b>') . '</div>';
            if (
$sort != 'time' && $sort != 'count' && $sort != 'rating')
                
$sort = 'name';
            
$zap = db::query("SELECT * FROM `downfiles` WHERE `type` != '1' AND `pathid` = '" . $cat . "' AND `status` = 1 ORDER BY `" . $sort . "` " . $order . " LIMIT " . $start . "," . $kmess);


            
// Вывод списка файлов
            
$i = 0;
            while (
$zap2 = mysqli_fetch_array($zap)) {
                echo (
$i % 2) ? '<div class="list1">' : '<div class="list2">';
                ++
$i;
                
$tf = pathinfo($zap2['way'], PATHINFO_EXTENSION); // Тип файла
                
if ($tf == 'mp3') {
                    
$set_view = array('variant' => 1);
                } elseif (((
$tf == 'thm' or $tf == 'nth') && $down_setting['tmini']) || (($tf == '3gp' or $tf == 'mp4' or $tf == 'avi') && $down_setting['vmini']) || ($tf == 'jpg' or $tf == 'png' or $tf == 'jpeg' or $tf == 'gif')) {
                    
$set_view = array('link_download' => 1, 'div' => 1);
                } else {
                    
$set_view = array('variant'  => 1,
                                      
'size'     => 1, 'desc' => 1, 'count' => 1, 'div' => 1,
                                      
'comments' => 1, 'add_date' => 1, 'rating' => 1);
                }
                echo 
f_preview($zap2, $set_view, $tf);
                echo 
'</div>';
            }


        } else {
            
?>
            <div class="menu">
                <p>
                    <?= $lng['list_empty'] ?>
                </p>
            </div>
        <?php
        
}

        echo 
'<div class="phdr">' . $lng_dl['all_files'] . ': ' . $totalfile . '</div>';
        if (
$totalfile > $kmess) {
            echo 
'<div class="topmenu">';
            echo 
'' . functions::display_pagination('index.php?cat=' . $cat . '&amp;', $start, $totalfile, $kmess) . '';
            echo 
'</div><p><form action="index.php" method="get"><input type="hidden" name="cat" value="' . $cat . '"/><input type="text" name="page" size="2"/><input type="submit" value="' . $lng_dl['to_page'] . ' &gt;&gt;"/></form>';
            echo 
'</p>';
        }

        
$dost = db::query("SELECT * FROM `downpath` WHERE id = '" . $cat . "';");
        
$dost = mysqli_fetch_array($dost);
        if (
$dost['dost'] && $user_id != 0) {
            echo 
'<div class="menu"><img src="img/upload.png" alt="."/><a href="add_file.php?cat=' . $cat . '">' . $lng_dl['load_your_file'] . '</a></div>';
        }
    }

    if (!empty(
$_GET['cat'])) {
        echo 
'<div class="menu"><a href="index.php">' . $lng_dl['back_to_downloads'] . '</a><br/>';
        foreach (
$tree as $value) {
            echo 
$value;
            echo 
'<br/>';
        }
        echo 
'</div>';
    }

    
?>
    <?php if ($rights == 4 || $rights >= 6): ?>
        <p>
            <?php if ($totalcat > 0): ?>
                <a href="admin.php?act=import&amp;cat=<?= $cat ?>"><?= $lng_dl['import_file'] ?></a><br>
                <a href="admin.php?act=upload&amp;cat=<?= $cat ?>"><?= $lng_dl['upload_file'] ?></a><br>
            <?php endif; ?>
            <a href="admin.php"><?= $lng_dl['admin_panel'] ?></a>
        </p>
    <?php endif; ?>

<?php
}
require_once 
'../incfiles/end.php';
Онлайн: 2
Реклама