- Full gg.deals-style UI: deal feed with filters, game pages with price history charts, rankings, vouchers, news, prepaids, subscriptions, bundles, franchises, wishlist, API docs - Real data crawlers: * gg:crawl (Steam Store API + GOG Catalog + Epic free games) * gg:catalog (252K game slugs from gg.deals sitemaps) * gg:ggdeals (per-game prices via FlareSolverr session, JSON-LD parsing) * gg:seed / gg:crawl-covers (demo seed + Steam CDN cover art) - 24/7 self-updating scheduler (scripts/scheduler_loop.php, lockfile-protected) - Tailwind v4 dark/light theme, Alpine.js, Chart.js
19 lines
792 B
PHP
19 lines
792 B
PHP
<?= $this->extend('layout') ?>
|
|
<?= $this->section('content') ?>
|
|
|
|
<div class="mb-6">
|
|
<h1 class="text-2xl font-extrabold text-white tracking-tight">Franchises</h1>
|
|
<p class="text-sm text-muted mt-1">Browse game series and franchises.</p>
|
|
</div>
|
|
|
|
<div class="grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-3">
|
|
<?php foreach ($franchises as $f): ?>
|
|
<a href="/franchise/<?= esc($f['slug']) ?>" class="group bg-card border border-line rounded-xl p-4 hover:border-accent/50 transition-colors">
|
|
<div class="text-[15px] font-semibold text-zinc-100 group-hover:text-accent"><?= esc($f['name']) ?></div>
|
|
<div class="mt-1 text-xs text-muted"><?= count($f['games']) ?> games</div>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
|
|
<?= $this->endSection() ?>
|