06 — Rıza kapısı (çerez bandı, analitik ve reklam kodu)
Ölçüt:
E:\localhost\docs\bilgi bankası (yasal/kvkk-web-sitesi-gereksinimleri.md,analytics/ga4-tuketici-onayi.md,adsense/riza-cmp.md). Framework bu kuralı uygular; proje yalnız veri verir (integrationsayarları), açma/kapama anahtarı yoktur.
1. Karar kuralı
Karar tek yerden verilir: ConsentProvider::decision(array $integrations): array{open,analytics,ads}.
Kapı AÇIK = (analitik ayarı dolu VEYA reklam ayarı dolu) VE site noindex DEĞİL.
| Site | Analitik / reklam ayarı | Kapı | Bant | Analitik ve reklam kodu | Rıza kaydı | Yasal bölümler (ölçüm / reklam / bant) | "Çerez Tercihleri" bağlantısı |
|---|---|---|---|---|---|---|---|
| indekslenebilir | dolu | açık | var | yüklenir (reklam ve serbest betikler rızaya kadar bekler) | yazılır | çıkar | var |
| indekslenebilir | boş | kapalı | yok | yok | reddedilir | çıkmaz | yok |
| noindex | dolu | kapalı | yok | HİÇ yüklenmez (head/body serbest betikler dahil) | reddedilir | çıkmaz | yok |
| noindex | boş | kapalı | yok | yok | reddedilir | çıkmaz | yok |
- Noindex bilgisinin tek kaynağı
CrawlerProvider::isSiteNoindex()(=SeoResolver::isSiteNoindex()): routemapview_mapping[site]['robots']['noindex'] = trueya daseogrubundakimeta-robotsayarı. Robots.txtDisallow: /, sitemap 404 kararıyla aynı cevaptır; ikinci bir bayrak yoktur. Karar okunamazsa noindex sayılır (kapalı). - Yerel (
.test) davranışı değişmez: yerelde ayrı bir ortam kuralı yoktur; noindex bayrağı yoksa ve ayarlar doluysa bant yerelde de çıkar. - Routemap'te elle
cookie => falseyazılmaz; anahtar kaldırıldı, framework onu okumaz. Noindex siteye yazmak yeterlidir, hiçbir şey eklemek gerekmez.
2. Tüketiciler (hepsi aynı fonksiyondan alır)
| Tüketici | Kapı kapalıyken |
|---|---|
FrontendProvider::render |
consent_head boş; google_analytics_code, google_adsense_code, head_scripts, body_scripts boş; consent_open = false (footer "Çerez Tercihleri" bağlantısı basılmaz) |
LegalProvider::render |
bant şablonu basılmaz |
LegalService::capabilities |
analytics, ads, consent_banner = false; yasal şablonlarda {{#analytics}}, {{#ads}}, {{#consent_banner}} bölümleri ve çerez envanteri satırları çıkmaz |
ConsentService::record |
POST /fw-consent reddedilir (consent gate is closed), tabloya satır yazılmaz |
FrontendBaseController::loadAdSettings |
adsense_status = 0; reklam yuvası görünümü hiçbir şey basmaz |
hasAnalytics() / hasAds() yalnız ayarın dolu olup olmadığını söyleyen özel yardımcılardır; tüketici onları çağırmaz. Kapı testi: fw_frw19_riza_kapisi.php (G-kapi-01…14).
3. Proje ne yapar?
Hiçbir şey. Analitik/reklam ayarını integrations grubuna yazar; noindex sitedeyse kod ve bant zaten çıkmaz. Siteyi indekslenebilir yaptığınız anda (routemap'ten noindex kalkınca) ayarlar doluysa bant ve kod kendiliğinden gelir.