# HTML → PHP dönüşüm haritası

Bu dosya, `../dist/` tasarımını görsel ve işlevsel referans kabul eder. HTML sınıfları, var olan CSS ve mobil yerleşim korunur; statik içeriğin kaynağı ile form eylemleri dinamik hale getirilir.

| HTML | PHP / temiz URL | Dinamik veri |
| --- | --- | --- |
| `index.html` | `public/index.php` / `/` | öne çıkan oyunlar, sayı ve arama; `games`, `commands` |
| `oyunlar.html` | `public/oyunlar.php` / `/oyunlar` | oyun kartları, sayfalama ve filtre; `games`, `game_categories`, `commands` |
| `crusader-kings-3-hileleri.html` | `public/crusader-kings-3-hileleri.php` / `/oyun/crusader-kings-3` | özel rehber düzeni + `games`, `commands`, `game_votes` |
| `fallout-4-hileleri.html` | `public/fallout-4-hileleri.php` / `/oyun/fallout-4` | özel rehber ve eşya oluşturucu + aynı tablolar |
| yeni oyun | `public/oyun.php` / `/oyun/{slug}` | oyun özeti, kullanım adımları ve komut tablosu |
| `blog.html` | `public/blog.php` / `/blog` | aynı editoryal kart düzeninde `blog_posts`, `blog_categories`, `media` |
| `blog-detay.html` | `public/blog-detay.php` / `/blog/{slug}` | aynı yazı/TOC düzeninde `blog_posts` |
| `toplu-hile-ekle.html` | `public/toplu-hile-ekle.php` / `/toplu-hile-ekle` | taslak, JSON dışa aktarma, üye gönderimi; `submissions` |

## Ortak parçalar ve işlevler

Tasarımda ortak header, footer, masaüstü ve mobil menü, tema anahtarı, breadcrumb, blog/oyun kartları, oyun detayında solda gezinme ve sağda bilgi kutusu bulunuyor. Ana arama, oyun dizini filtresi, sayfa içi komut arama/kategori süzme, kopyalama, Fallout eşya komutu oluşturucu, mobil menü, giriş modalı ve toplu tablo içe aktarma JavaScript işlevleridir. `src/bootstrap.php` veri bağlantısı, oturum, URL, HTML kaçışı ve CSRF yardımcılarını sağlar; `src/contributions.php` gönderi ve inceleme kurallarını toplar. Tekrarlanan görünüm parçası için `src/views/` kullanılır; özel oyun sayfalarının farklı içerik blokları yerlerinde kalır.

## Veritabanı

- `users`: üye/yönetici ve şifre özeti.
- `game_suggestions`: henüz yayında olmayan dizin kartları.
- `game_categories` → `games`: oyun türü ve oyunun kimliği; oyun başına bir tür yeterli.
- `commands` → `games`: komut, açıklama, sözdizimi, kategori ve sıra.
- `submissions` → `users`: oyunla birlikte tüm kodların incelenen JSON paketi; onayda tek transaction ile `games` ve `commands` oluşturulur.
- `favorites` → `users`, `games`: hesapta kayıtlı oyunlar.
- `game_votes` → `users`, `games`: üyenin her oyun için güncellenebilir tek oyu.
- `blog_categories` → `blog_posts`: editoryal kategori; blog içerikleri taslaktan yayına geçer.
- `media` → `users`: güvenli yüklenen görsel meta verisi; blog yazısı görseli isteğe bağlı.
- `site_pages`: kurumsal sayfaların içerik ve yayın durumu.
- `settings`: genel başlık, açıklama, iletişim ve SEO alanları.
- `login_attempts`: giriş hızı sınırlaması.

Oyun ve yazı slug alanları benzersizdir; durum ve tarih alanlarında listeleme indeksleri bulunur. Yönetim işlemleri POST + CSRF kullanır. Yükleme yalnızca admin yetkisiyle yapılır. Yeniden yazma kuralları mevcut `.php` ve asset dosyalarını engellemeden temiz yolları gösterir.

## İnceleme sonucunda tespit edilen önceki PHP sürümü açıkları

Oyun dizininin 12 kartı iki gerçek karta düşürülmüştü; eksik oyun kartlarının katkı çağrısı olarak yerinde kalması gerekiyor. Gerçek girişe bağlanabilecek tasarım modalı kaldırılmıştı. Faydalı mı oylaması kaldırılmıştı. Blog kartlarının yalnızca bir tanesi tıklanabiliyor ve tümü statik. SEO yolları, sitemap/robots/404, kategori, medya ve ayar yönetimi eksik. CK3/Fallout için HTML içinde yalnızca 20'şer örnek satır var; 187/158 gibi sayıların veri olmadan gerçekmiş gibi gösterilmesi doğru değil. Bu eksikler görsel yapıyı koruyarak ele alınır.
