Files
deepseek fff7a4b9b9 GG.deals clone: CodeIgniter 4 + MongoDB game price tracker
- 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
2026-08-23 07:06:02 +00:00

83 lines
4.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?= $this->extend('layout') ?>
<?= $this->section('content') ?>
<div class="text-xs text-muted mb-4 flex items-center gap-1.5">
<a href="/faq" class="hover:text-accent">FAQ</a>
<span></span>
<span class="text-zinc-400"><?= esc($tutorial[0]) ?></span>
</div>
<div class="max-w-3xl bg-panel border border-line rounded-2xl p-6 mb-8">
<h1 class="text-2xl font-extrabold text-white tracking-tight mb-4"><?= esc($tutorial[0]) ?></h1>
<?php
$content = match ($tutorial[1]) {
'steam' => [
'Open the Steam client on your computer and sign in.',
'Click "Games" in the top menu, then "Activate a Product on Steam".',
'Click "Next" and agree to the Steam Subscriber Agreement.',
'Enter the CD key you purchased — it looks like XXXXX-XXXXX-XXXXX.',
'Click "Next". The game will be added to your library and begin downloading automatically.',
'You can also do this in the browser: store.steampowered.com/account/registerkey.',
],
'gog' => [
'Sign in to your GOG.com account in the browser or GOG Galaxy client.',
'In the browser, hover over your username and click "Account".',
'Click "Redeem code" in the account menu.',
'Enter the code from your purchase and click "Redeem".',
'The game is added to your library. In GOG Galaxy it appears immediately — install from the library tab.',
],
'epic' => [
'Open the Epic Games Launcher and sign in.',
'Click your profile icon (top right) and select "Redeem Code".',
'Enter the code — it is usually 5 groups of 5 characters.',
'Click "Redeem". The game is added to your library.',
'Find it under your library and click "Install" to download.',
],
'origin' => [
'Open the EA app (formerly Origin) and sign in.',
'Click "Menu" (≡) in the top-left, then "Redeem Product Code".',
'Enter the code and click "Next".',
'The game appears in your library. Select it and click "Download".',
],
'uplay' => [
'Open Ubisoft Connect (Uplay) and sign in.',
'Click "Games" then "Activate a key" in the top bar.',
'Enter your product key.',
'Click "Activate". The game is added to your library.',
'Ubisoft Connect also supports claiming keys directly on account.ubisoft.com.',
],
'keyshops' => [
'Keyshops are marketplaces where third-party sellers list game keys.',
'They are usually cheaper than official stores — sometimes significantly.',
'The main risks: region-locked keys that may not activate in your country, and keys purchased with stolen payment methods that can be revoked later.',
'Always check the key region before buying. Global keys are the safest option.',
'You can disable keyshop prices entirely in the site settings (Keyshops toggle).',
'If a key fails to activate, contact the seller first — most marketplaces have buyer protection.',
],
};
?>
<ol class="space-y-3">
<?php foreach ($content as $i => $step): ?>
<li class="flex gap-3">
<span class="w-6 h-6 rounded-full bg-accent/15 text-accent text-xs font-extrabold flex items-center justify-center shrink-0 mt-0.5"><?= $i + 1 ?></span>
<span class="text-sm text-zinc-200 leading-relaxed"><?= esc($step) ?></span>
</li>
<?php endforeach; ?>
</ol>
</div>
<div class="bg-panel border border-line rounded-2xl p-6 max-w-3xl">
<h2 class="text-sm font-bold text-zinc-200 uppercase tracking-wider mb-3">Other tutorials</h2>
<div class="grid sm:grid-cols-2 gap-2.5">
<?php foreach ($all as $key => [$title, $plat]) : if ($key === array_search($tutorial, $all, true)) continue; ?>
<a href="/page/<?= $key ?>" class="flex items-center gap-3 bg-card border border-line rounded-xl px-4 py-3 hover:border-accent/40 transition-colors group">
<span class="text-lg">📖</span>
<span class="text-sm font-semibold text-zinc-100 group-hover:text-accent"><?= esc($title) ?></span>
</a>
<?php endforeach; ?>
</div>
</div>
<?= $this->endSection() ?>