Вход Регистрация
Файл: new_top/modules/cat.php
Строк: 118
<?php
/**
 * Categories — list and category top
 */

declare(strict_types=1);

$catId = (int)($_GET['id'] ?? 0);
$title Database::fetchColumn('SELECT title FROM config WHERE id = 1') ?: 'Top';
$pfMax = (int)(Database::fetchColumn('SELECT pf_max FROM config WHERE id = 1') ?: 100);
if (
$pfMax 1$pfMax 100;

// ---- Single category ----
if ($catId 0) {
    
$cat Database::fetch('SELECT * FROM cat WHERE id = ?', [$catId]);
    if (!
$cat) {
        
http_response_code(404);
        echo 
'Категория не найдена';
        exit;
    }

    
$platforms Database::fetchAll(
        
'SELECT p.*, c.name AS cat_name FROM platforms p
         LEFT JOIN cat c ON c.id = p.cat_id
         WHERE p.mode = 0 AND p.ban = 0 AND p.cat_id = ?
         ORDER BY p.hs DESC, p.ht DESC
         LIMIT ' 
$pfMax,
        [
$catId]
    );
    
$count count($platforms);
    
$totalInCat = (int) Database::fetchColumn(
        
'SELECT COUNT(*) FROM platforms WHERE mode = 0 AND ban = 0 AND cat_id = ?',
        [
$catId]
    );

    
?><!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
    <?= pwa_meta() ?>
    <title><?= e($cat['name']) ?> — <?= e($title?></title>
        <link rel="stylesheet" href="/assets/css/style.css">
    </head>
    <body>
    <div class="app">
        <header class="topbar">
            <div class="topbar-brand"><div class="logo">T</div><span><?= e($title?></span></div>
                    <nav class="topbar-nav">
            <a href="/">Топ</a>
            <a href="/?module=cat" class="active">Категории</a>
            <a href="/?module=search">Поиск</a>
            <a href="/?module=rules">Правила</a>
            <a href="/?module=office">Кабинет</a>
            <?php if (!empty($_SESSION['user_level']) && (int)$_SESSION['user_level'] >= 9): ?>
            <a href="/?module=admin">Админ</a>
            <?php endif; ?>
        </nav>
        </header>

        <h1 class="page-title"><?= e($cat['name']) ?></h1>
        <?= Ads::render('cat_top'?>
        <?= Ads::render('global_footer'?>
        <p class="page-sub">
            <?= $totalInCat ?> <?= $totalInCat === 'площадка' : ($totalInCat >= && $totalInCat <= 'площадки' 'площадок'?>
            · сортировка по хостам
            · <a href="/?module=cat">все категории</a>
        </p>

        <?php if ($count === 0): ?>
            <div class="empty">
                <div class="empty-icon">📂</div>
                <div>В этой категории пока нет площадок</div>
                <a href="/?module=cat" class="btn btn-ghost" style="margin-top:14px">← К категориям</a>
            </div>
        <?php else: ?>
            <div class="rank-list">
                <?php foreach ($platforms as $i => $p):
                    
$pos $i 1;
                    
$isGold = (int)$p['gold'] > time();
                    
$cardClass 'rank-card';
                    if (
$pos === 1$cardClass .= ' top1';
                    elseif (
$pos === 2$cardClass .= ' top2';
                    elseif (
$pos === 3$cardClass .= ' top3';
                    if (
$isGold$cardClass .= ' gold-card';
                
?>
                    <article class="<?= $cardClass ?>">
                        <div class="rank-pos"><?= $pos ?></div>
                        <div class="rank-body">
                            <div class="rank-url">
                                <a href="/in/<?= (int)$p['id'?>" target="_blank" rel="nofollow noopener"><?= e($p['url']) ?></a>
                                <?php if ($isGold): ?><span class="badge-gold">★ Gold</span><?php endif; ?>
                            </div>
                            <?php if ($p['message'] !== ''): ?>
                                <div class="rank-msg"><?= e($p['message']) ?></div>
                            <?php endif; ?>
                            <div class="rank-meta">
                                <a class="chip" href="/?module=stats&id=<?= (int)$p['id'?>">📊 стат</a>
                            </div>
                        </div>
                        <div class="rank-stats">
                            <div class="stat-label">хосты</div>
                            <div class="stat-hs"><?= number_format((int)$p['hs'], 0''' '?></div>
                            <div class="stat-ht"><?= number_format((int)$p['ht'], 0''' '?> хитов</div>
                        </div>
                    </article>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>
        <footer class="site-footer"><a href="/">← Топ-<?= $pfMax ?></a></footer>
    </div>
    <?= pwa_register() ?>
</body>
    </html>
    <?php
    
exit;
}

// ---- List of categories ----
$cats Database::fetchAll(
    
'SELECT c.*,
        (SELECT COUNT(*) FROM platforms p WHERE p.cat_id = c.id AND p.mode = 0 AND p.ban = 0) AS cnt
     FROM cat c
     ORDER BY c.sort, c.name'
);

?><!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
    <?= pwa_meta() ?>
    <title>Категории — <?= e($title?></title>
    <link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<div class="app">
    <header class="topbar">
        <div class="topbar-brand"><div class="logo">T</div><span><?= e($title?></span></div>
                <nav class="topbar-nav">
            <a href="/">Топ</a>
            <a href="/?module=cat" class="active">Категории</a>
            <a href="/?module=search">Поиск</a>
            <a href="/?module=rules">Правила</a>
            <a href="/?module=office">Кабинет</a>
            <?php if (!empty($_SESSION['user_level']) && (int)$_SESSION['user_level'] >= 9): ?>
            <a href="/?module=admin">Админ</a>
            <?php endif; ?>
        </nav>
    </header>

    <h1 class="page-title">Категории</h1>
    <p class="page-sub">Выберите раздел рейтинга</p>
    <?= Ads::render('cat_top'?>
    <?= Ads::render('global_footer'?>

    <?php if (!$cats): ?>
        <div class="empty"><div>Категории не созданы</div></div>
    <?php else: ?>
        <div class="rank-list">
            <?php foreach ($cats as $c): ?>
                <a href="/?module=cat&id=<?= (int)$c['id'?>" class="rank-card" style="text-decoration:none;color:inherit;grid-template-columns:1fr auto">
                    <div class="rank-body">
                        <div class="rank-url"><?= e($c['name']) ?></div>
                        <div class="rank-msg">
                            <?php
                            $n 
= (int)$c['cnt'];
                            echo 
$n ' ' . ($n === 'площадка' : ($n >= && $n <= 'площадки' 'площадок'));
                            
?>
                        </div>
                    </div>
                    <div class="rank-stats">
                        <div class="stat-hs" style="font-size:1.1rem"><?= (int)$c['cnt'?></div>
                        <div class="stat-label">в топе</div>
                    </div>
                </a>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>
        <footer class="site-footer"><a href="/">← Топ-<?= $pfMax ?></a></footer>
</div>
</body>
</html>
Онлайн: 2
Реклама