Sürüm Geçmişi
Sürüm Notları
v1.0.0'dan itibaren her özellik, her iyileştirme, her düzeltme.
Security Center — WAF Paneli + Dosya Bütünlüğü İzleyici, Yerleşik
Yeni
- Security Center admin sayfasi — WAF / giris denemeleri, guvenlik olaylari ve dosya butunlugu icin sekme bazli tek panel. Zaten sessizce calisan sistemleri (Security::detectAttacks, login_attempts logu, IntegrityGuard::maybeVerify) gorunur kilar; saldirilari aniden gormeye baslarsiniz. Wordfence Premium ($119/yil) yerine gecer
- WAF sekmesi — son 30 giris denemesi, son 7 gunde basarisiz giris en cok IP'ler, blokli IP'ler tablosu manuel block/unblock ile, top-attackers listesinden tek tikla "Bu saldirgan IP'yi blokla". Ust kpi'lar: basarisiz giris (24s), tekil IP (7g), blokli sayisi, FIM durumu
- Guvenlik Olaylari sekmesi —
logs/security.logdosyasini ayristirir (Security::detectAttacks SQL injection / XSS / path-traversal isabetlerini buraya yazar), IP + mesaj + baglam ile zaman tunel. En yeni 30 olay - Dosya Butunlugu sekmesi — kurulum fingerprint goruntusu, VERIFIED/DRIFT durum etiketi, son tamper raporu (formatli JSON), tek tikla "Scan Now" butonu IntegrityGuard::verifyManifest() tetikler. Drift tespit edildiginde ne yapilmasi gerektigine dair mudahale playbook karti
- Kendi kendine onarilan blocked_ips tablosu — sayfaya ilk ziyarette otomatik yaratilir. Idempotent: ON DUPLICATE KEY UPDATE mevcut bloklari korur. CSRF korumali admin islemler
- Sidebar baglantisi — admin nav'da Backups'in hemen altinda yeni "Security Center" girisi. Kalkan ikonu
Değişen dosyalar (5)
native/admin/security-center.php
—
Yeni admin sayfasi (~500 satir): WAF tab + Events tab + FIM tab
native/admin/includes/sidebar.php
—
Security Center baglantisi eklendi (Backups'in altinda)
features.php
—
Marketing grid: 10. kart — Wordfence Premium $119/yr alternative
sites/*/admin/security-center.php
—
15 site propagated
sites/*/admin/includes/sidebar.php
—
15 site propagated
Smart Backup — Zamanlanmış Günlük Yedekler, Yerleşik
Yeni
- Smart Backup zamanlı cron — admin panelden günlük otomatik yedekleri aç (Backups → Smart Backup Schedule kartı). Saat seç (varsayılan 03:00, düşük trafik penceresi). Cron
BackupManager::scheduledRun()'u çağırır; idempotenttir (cron birden fazla tetiklense bile gün başına tek backup). UpdraftPlus Premium ($70/yıl) yerine geçer - Saklama politikası — 7-365 gün arası yapılandırılabilir. Cutoff'tan eski auto-backup'lar her günlük çalışmadan sonra otomatik silinir. Manuel backup'lar asla otomatik silinmez. Disk kullanımı kontrol altında
- Pure-PHP backup —
mysqldumpbağımlılığı yok (Hostinger ve shared host'lar çoğu kez devre dışı bırakır). Satır-satır akıtmalı dump büyük post tablolarını belleği tüketmeden işler. Çıktı: tek ZIP içindedb.sql+uploads/+manifest.json - Harici senkron önerisi — schedule kartı,
backups/klasörünü S3, Google Drive veya Dropbox'a senkronlamak için önerilenrclonekalıbını belgeler. Native cloud SDK desteği v2.6.x yol haritasında
Değişen dosyalar (4)
native/classes/BackupManager.php
—
scheduledRun() method eklendi — hour + day guard, retention prune
native/cron.php
—
BackupManager::scheduledRun() cron tick'inde tetikleyici (silent no-op default)
native/admin/backups.php
—
Smart Backup Schedule card: enable + hour + retention slider + CSRF-protected save
features.php
—
Marketing grid: Smart Backup karti — UpdraftPlus Premium $70/yr alternative
Schema Studio — 13 Schema.org Tipi, Yerleşik
Yeni
- Schema Studio eklenti ailesi — 13 Schema.org tipi, hepsi post editöründen form bazlı UI ile. Tam liste: Article, BlogPosting, NewsArticle, TechArticle, ScholarlyArticle, Report, FAQPage, HowTo, Product, Event, Review, Course, Recipe (yeni), ve LocalBusiness (yeni). Rank Math Pro'nun schema-builder modülünü ($59/yıl) yerine getirir — abonelik yok, eklenti yok
- Recipe schema — yemek blogları artık Google Rich Recipe kartları yayınlayabilir: hazırlama/pişirme/toplam süre (ISO 8601), porsiyon, kategori, mutfak, kalori, malzeme listesi, adım adım talimat, ortalama puan. Tarif aramalarında %30-40 CTR artışı sağlar
- LocalBusiness schema — Google Maps + lokal arama paketinde sıralama yükseltir. 18 işletme alt tipi (Restaurant, Store, MedicalBusiness, Dentist, BeautySalon, TravelAgency, …). Tam PostalAddress + GeoCoordinates + çalışma saatleri + fiyat aralığı + ortalama puan
- CSV stili veri girişi — malzeme, talimat ve çalışma saatleri textarea'da satır bazlı kabul edilir. Kırılgan JavaScript dizileri yok, +/- butonları yok; notlardan direkt yapıştırılabilir
- Schema önizleme + Google Rich Results Test bağlantısı — editör canlı JSON-LD payload'ını gösterir VE Google'ın doğrulayıcısına tek tık bağlantı sunar. Tahmin yok
Değişen dosyalar (5)
native/includes/helpers.php
—
output_schema() — Recipe + LocalBusiness case bloklari eklendi (~120 satir)
native/admin/post-edit.php
—
Recipe + LocalBusiness POST handler + UI form fields (CSV textarea pattern)
features.php
—
Marketing grid: Schema Studio karti — Rank Math Pro $59/yr alternative
sites/*/includes/helpers.php
—
15 site propagate
sites/*/admin/post-edit.php
—
15 site propagate
ZeroTrack Analytics — Gizlilik Odaklı, Çerezsiz, Yerleşik
Yeni
- ZeroTrack Analytics eklentisi — Google Analytics, Plausible ve Matomo'ya yerleşik, gizlilik öncelikli alternatif. Çerez yok. Ziyaretçi verisi sunucundan asla çıkmaz. KVKK/GDPR uyumlu: IP adresleri günlük rotate edilen salt ile SHA-256 hash'lenir, geçmişe dönük korelasyon matematiksel olarak imkansızdır. Kurulumda otomatik aktif
- Gizlilik panosu admin → ZeroTrack: sayfa görüntülenmeleri, tekil ziyaretçiler, oturumlar, hemen çıkma oranı, günlük trend grafiği, en çok ziyaret edilen sayfalar, kaynaklar, ülkeler, cihazlar, UTM kaynakları. Tarih aralığı seçici (bugün / 7g / 30g / 90g)
- Kutudan çıkar çıkmaz akıllı filtre — tarayıcının Do-Not-Track başlığını dikkate alır; giriş yapmış adminleri saymaz; Googlebot, GPTBot, ClaudeBot, headless Chrome ve 20+ otomasyon user-agent'ını filtreler; IP ve yol bazlı dışlama yapılandırılabilir
- Reverse-proxy farkında — Cloudflare ve LiteSpeed arkasındaki gerçek ziyaretçi IP'sini doğru okur (CDN'i çift saymaz). Cloudflare CF-IPCountry başlığı ile ülke tespiti — üçüncü parti GeoIP veritabanı gerekmez
- Kendi kendini temizler — ham pageview kayıtları yapılandırılabilir bir saklama penceresinden sonra silinir (varsayılan 90 gün). Günlük agregalar sonsuza dek tutulur — minik depolama ayak iziyle uzun vadeli trend analizi
Değişen dosyalar (7)
native/plugins/zerotrack/plugin.php
—
Plugin manifest + bootstrap
native/plugins/zerotrack/ZeroTrackPlugin.php
—
Tracker beacon endpoint, UA parser, salt rotation, daily aggregator, retention cleanup
native/plugins/zerotrack/activate.php
—
DB schema: zt_pageviews, zt_aggregates_daily, zt_settings
native/plugins/zerotrack/admin/index.php
—
Privacy dashboard — KPIs, trend chart, top tables
native/plugins/zerotrack/admin/settings.php
—
Settings UI: master switch, DNT, exclusions, retention
features.php
—
Marketing grid — ZeroTrack vs Plausible $9/mo
sites/*/plugins/zerotrack/
—
Propagated to all 15 sites + _template
Daha Net Ana Sayfa Hero — Somut Kanca
Değişen dosyalar (1)
marketing-includes/header.php
—
hero_title + hero_subtitle (EN/TR) somut hook
Bülten E-postası: Markalı Koyu Header
Değişen dosyalar (2)
plugins/newsletter/data/default-templates.php
—
koyu markalı header bandı + bgcolor sağlamlaştırma (native+kök+15 site)
plugins/newsletter/NewsletterPlugin.php
—
SCHEMA_VERSION 2.5.0 → 2.6.0
Yeniden Tasarlanan Bülten E-posta Şablonları
Değişen dosyalar (2)
plugins/newsletter/data/default-templates.php
—
yeni profesyonel İngilizce e-posta tasarımı (native+kök+15 site)
plugins/newsletter/NewsletterPlugin.php
—
SCHEMA_VERSION 2.4.0 → 2.5.0 (otomatik re-seed tetik)
Blog Editörü: Featured Yazı & Boş İçerik Düzeltmesi
Düzeltildi
- Blog editörü featured yazıda boş açılıyordu — editör
?id=0'ı (id 0 taşıyan featured yazı)id > 0kontrolü yüzünden "yeni yazı" sanıp hiç yüklemiyordu. Artık id varsa (0 dahil) yazıyı yükler; gerçek yeni yazı = hiç id parametresi olmayan. Ayrıca satırın gövdesi boşsa (gövdesi yalnız statik blog veri dosyasında kalmış eski yazılar) editör formu slug/id ile o kaynaktan ön-doldurur; Kaydet veritabanına kalıcılaştırır (yalnız gösterim, yıkıcı değil, mevcut düzenlemeyi asla ezmez)
Değişen dosyalar (1)
admin/blog-post-edit.php
—
id=0 düzenleme + blog-data.php boş-içerik ön-doldurma (jekcms.com kök)
Ana Kurulumda Eklenti Sistemi Onarıldı (Newsletter Artık Listeleniyor)
Düzeltildi
- Newsletter (ve tüm eklentiler) artık eklenti yöneticisinde görünüyor — ana kurulumun bootstrap'ı (uzun süre önce eski bir koddan klonlanmış) eklenti-yükleyici bloğunu tamamen kaybetmişti; bu yüzden eklenti tarayıcısı hiç çalışmadı ve hiçbir eklenti kendini kaydedemedi. Blok kanonik kaynakla birebir geri eklendi; tarayıcı artık çalışıyor (kendini onaran plugins-tablo şemasıyla), Newsletter otomatik kaydolur ve listelenir/etkinleştirilebilir
Değişen dosyalar (1)
includes/bootstrap.php
—
eksik plugin-loader bloğu native ile birebir geri eklendi (jekcms.com kök)
Marketing Blog Editörü Artık Admin'de Erişilebilir
Düzeltildi
- Blog yazıları yeniden düzenlenebilir — iki dilli marketing blogu (jekcms.com/blog'da görünen EN/TR yazılar) public blogla aynı tabloyu okuyan kendi admin editörüne sahip, ancak admin menüsünde linki yoktu; bu yüzden yazılar yönetilemez gibi görünüyordu (CMS Yazılar sayfası ayrı site-içerik tablosunu listeler). Admin sidebar'a "Blog Yazıları (jekcms.com)" girişi eklendi — mevcut yazılar artık listeleniyor ve düzenlenebiliyor
Değişen dosyalar (2)
admin/includes/sidebar.php
—
Marketing Blog (blog-posts.php) nav linki — jekcms.com kök admin
config/translations/{tr,en}.php
—
admin_nav_marketing_blog anahtarı (ham-anahtar regresyonu önlendi)
Sihirbaz Ağ Hatası, Profiller ve Eklenti Kaydı Düzeltildi
Düzeltildi
- "Network error" düzeltildi — JSON sihirbazı uç noktası (
admin/ajax/assistant-json.php) yalnız iki kurulumda vardı; artık her sitede var, "Oluştur" yalnız compass'ta değil her yerde çalışıyor - Eklentiler klon kurulumlarda artık kaydoluyor — eski bir veritabanından klonlanan kurulumlarda
pluginstablosunda yeni kolonlar eksik olabiliyordu; bu, eklenti kaydını sessizce başarısız kılıyordu — bu yüzden Newsletter eklenti yöneticisinde hiç görünmüyordu. Tarayıcı artık tablo şemasını kendi onarıyor; Newsletter (ve her yeni eklenti) kaydolur, görünür/etkinleştirilebilir olur
Değişen dosyalar (3)
includes/plugin_hooks.php
—
plugins tablosu şema self-heal (native+kök+15 site)
classes/ImportSchema.php
—
profiles() + themeProfile() genişletildi
admin/ajax/assistant-json.php
—
kök + tüm sitelere yayıldı
Kök Admin Düzeltmeleri — İçerik Düzeltici, Bülten Bağlantısı, Sihirbaz Anahtarları
Düzeltildi
- İçerik Düzeltici 404 giderildi — SEO Optimizer'ın İçerik/Başlık Düzeltici sayfası kanonik kaynakta vardı ama ana kurulumun admin'inde eksikti, 404 veriyordu. Artık mevcut
- Bülten admin bağlantısı düzeltildi — Newsletter eklenti manifesti admin sayfasını var olmayan bir yola işaret ediyordu; tüm filoda düzeltildi, panel eklenti yöneticisinden açılır (sidebar girişi eklentinin aktif olmasını ister)
- Sihirbaz anahtarları ana sitede de düzeltildi — önceki çeviri-anahtarı paritesi demo siteleri kapsıyordu ama ana kurulumu atlamıştı;
cq_assistant_*anahtarları orada da yansıtıldı, JSON Oluşturma Sihirbazı artık ham anahtar göstermiyor
Değişen dosyalar (3)
admin/content-fixer.php
—
kök kuruluma eklendi (native'den)
plugins/newsletter/plugin.php
—
Admin Page yolu düzeltildi — native+kök+15 site
config/translations/{tr,en}.php + lang/{tr,en}/general.php (kök)
—
cq_assistant_* native paritesi
İçerik Kuyruğu Sihirbazı — Tüm Sitelerde Ham Anahtarlar Düzeltildi
Düzeltildi
- JSON Oluşturma Sihirbazı artık her sitede düzgün okunuyor — içerik-kuyruğu asistanı çeviri anahtarları (
cq_assistant_*) yalnız birkaç sitede vardı; diğer sitelerde etiket yerine "cq_assistant_title" gibi ham anahtarlar görünüyordu. Tüm siteler artık tam anahtar setini kanonik kaynaktan birebir taşıyor
Değişen dosyalar (1)
sites/*/config/translations/{tr,en}.php + lang/{tr,en}/general.php
—
cq_assistant_* native paritesi (15 site × 4 dosya), grep-assert ile sayı eşitliği doğrulandı
Pazarlama Sitesinde Bülten Aboneliği Devrede
Düzeltildi
- Bülten aboneliği artık jekcms.com'da çalışıyor — footer'daki "Abone Ol" formu hazırdı ama abone tablosu yoksa sessizce başarısız oluyordu. Handler artık tabloyu kendi oluşturuyor (idempotent, Newsletter eklentisiyle birebir aynı şema — eklenti admini aynı aboneleri okur). Ana sayfa istatistik rakamları da site genelinde birleştirildi
Değişen dosyalar (2)
marketing-includes/ajax/newsletter-handler.php
—
idempotent self-bootstrap (newsletter_subscribers, eklenti şemasıyla birebir)
index.php / about.php / functions.php
—
stat 500+ → 100+ tutarlı, 14→14+, 24/7 lang-aware
Alt Sayfa SEO Denetimi — Dokümantasyon Başlığı Düzeltildi
Değişen dosyalar (1)
docs.php
—
SEO başlığı markalı + anahtar-kelimeli (görünür UI etkilenmez)
Doğru WordPress-Alternatifi Sayfası (Yalnız Gerçek Özellikler)
Düzeltildi
- Yanlış bir özellik iddiası kaldırıldı — karşılaştırma sayfasına, yapılandırılmış veriye ve llms.txt'e hatalı "çoklu site / filo yönetimi" satırı eklenmişti. jekcms'te böyle bir ürün özelliği yok; her yerden kaldırıldı, yalnızca doğrulanmış gerçek yeteneklerle değiştirildi
Değişen dosyalar (2)
wordpress-alternative.php
—
doğrulanmış özelliklerle yeniden yazıldı (multi-site kaldırıldı)
header.php + llms.txt
—
uydurma özellik kaldırıldı, gerçek yeteneklerle değiştirildi
Orphan Sayfa Yok — Tam İç Bağlantı
Düzeltildi
- Orphan sayfa yok — her public pazarlama sayfası artık footer + sitemap + temiz URL (EN/TR) üzerinden erişilebilir. "Lisanssız Kullanım Bildir" sayfası orphan'dı (hiçbir yerden link yok) — artık footer'da ve taranabilir; WordPress-alternatifi sayfası zaten footer'da bağlıydı (doğrulandı)
Değişen dosyalar (2)
marketing-includes/footer.php
—
report-piracy Legal bölümüne eklendi
functions.php + .htaccess + sitemap.php
—
report-piracy slug map + TR slug + temiz-URL allowlist + sitemap
AI-Arama Görünürlüğü & WordPress-Alternatifi Konumlandırma
Yeni
- WordPress Alternatifi karşılaştırma sayfası — dürüst, faktüel jekcms–WordPress tablosu + SSS (FAQPage yapılandırılmış veri) içeren yeni
/tr/wordpress-alternatifi(EN:/wordpress-alternative) sayfası; sitemap + hreflang + footer bağlantılı - llms.txt —
/llms.txtadresinde makine-okur özet; AI asistanları jekcms'i kendi sunucusunda CMS / WordPress alternatifi olarak doğru tanımlasın
Değişen dosyalar (3)
.htaccess
—
AI bot 403 kaldırıldı (SEO-scraper engelli kalır); wordpress-alternative temiz-URL + TR slug
robots-txt.php
—
GPTBot/OAI/Claude/Perplexity/Google-Extended… açık Allow grupları + llms.txt referansı
llms.txt + wordpress-alternative.php
—
YENİ; header.php SoftwareApplication=CMS + meta; sitemap + footer + slug map
Pazarlama Sitesi SEO Sağlamlaştırma
Değişen dosyalar (1)
.htaccess
—
www→non-www+https tek hop; .php→temiz URL 301 (allowlist, THE_REQUEST guard, static-serve öncesi)
Makale Görünümü & İç Bağlantı Bütünlüğü Düzeltmeleri
Düzeltildi
- Bozuk iç bağlantılar kaynağında düzeltildi — Otomatik iç bağlantılayıcı ham Markdown üzerinde çalışıp bir Markdown bağlantısının içine link enjekte edebiliyor, render sonrası bozuk/yarı-görünür anchor’a dönüşüyordu. Markdown bağlantı/görselleri artık korunuyor; iç bağlantılama içeriği bir daha asla bozamaz. Link temizleyici de sertleştirildi: önceden bozulmuş/sızmış link kalıntısını tamamen siliyor — etkilenen sitede iç-bağlantı taramasını yeniden çalıştırmak eski içeriği kendiliğinden onarıyor
- Kontrol listeleri düzgün — Markdown görev listeleri (
- [ ]/- [x]) artık ham "[ ]" yerine gerçek onay kutusu simgesi gösteriyor - Tablolar stillendi — Makaledeki Markdown tabloları artık kenarlık/iç boşluk/başlık stiliyle çiziliyor; sütunlar iç içe değil
- Çift madde işareti gitti — liste öğelerinde hem varsayılan bullet hem özel işaret çıkıyordu; kopya kaldırıldı
- İlgili yazılar düzeltildi — ilgili bölüm iki kez render oluyordu, biri tam-genişlik yığılı görsel; bozuk kopya kaldırıldı, temiz kart ızgarası kaldı
- Öne çıkan görsel oranı — tekil yazı kapak görseli artık kırpık kareye yakın değil, düzgün 16:9 çerçevede
- İçindekiler aksanlı karakterleri doğru gösteriyor — "Bu sayfada" listesi HTML entity'lerini çift-escape edip "Güncel" gösteriyordu; başlıklar artık gösterimden önce çözülüyor (çapa bağlantıları senkron)
- Ön yüz düzeltmeleri artık anında yayında — deploy sayfa önbelleğini temizliyor; düzeltme artık 5 dakikaya kadar eski önbelleklenmiş HTML'le maskelenmiyor
Değişen dosyalar (4)
includes/auto-linker.php
—
markdown link/görsel placeholder koruması (iç içe anchor kök nedeni)
includes/helpers.php
—
parse_markdown GFM task-list ([ ]/[x] → onay kutusu glyph)
themes/travel (subpages.css, single.php)
—
tablo CSS + çift-madde list-style:none + bozuk dublikat related blok kaldırıldı
themes/health (single-v2.css)
—
.h-single__cover 4/3 → 16/9 (native + ilgili siteler)
JSON Sihirbazı Yeniden Adlandırma & Takvim Görünürlük Düzeltmesi
Düzeltildi
- İçerik takvimi düzeltildi — plan yine görünüyor — Bazı kurulumlarda takvim sessizce tamamen boş geliyordu: sorgu, eski içerik-kuyruğu tablolarında hiç olmayan bir kolona dayanıyordu, hata verip hiçbir şey göstermiyordu. Sorgu artık şemadan bağımsız ve kendini onaran yapıda; ay görünümü ayrıca tarihi olan tüm öğeleri durumundan bağımsız gösterir (taslak / onaylı / işlemde / tamamlandı), duruma göre renkli
- Takvim önizleme görseli bir dalda yanlış alanı kullanıyordu — düzeltildi
Değişen dosyalar (2)
admin/content-queue.php
—
takvim status filtresi genişletildi (scheduled_date olan tüm öğeler) + görsel-alan dal hatası
lang/*/general.php, config/translations/*
—
cq_assistant_title → JSON Oluşturma Sihirbazı / JSON Generation Wizard
Daha Sade İçerik Kuyruğu İçe Aktarma Ekranı
Değişen dosyalar (1)
admin/content-queue.php
—
import sekmesi: bölüm ayrımı (gap) + statik format kutuları kaldırıldı — native + _template + 14 site senkron
Güvenilirlik, Güvenlik ve Kesintisiz Dağıtım
Yeni
- İki Adımlı Doğrulama (TOTP) — Her sitenin Güvenlik ayarlarında modern QR kurulum kartı. Google Authenticator / Authy / 1Password ile tara; kendi sunucunda üretilen QR (üçüncü taraf yok), manuel anahtar yedeğiyle. Girişte fail-open tasarım — 2FA arızası seni asla kilitleyemez
- Kesintisiz otomatik dağıtım — Güncellemeler artık değişiklikten dakikalar sonra tüm filoya HTTPS üzerinden otomatik iner, deploy sonrası sağlık kontrolüyle. Elle yükleme yok, SSH yok, kilitlenme yok
Düzeltildi
- Google sonuçlarında site adı — Uzun süredir devam eden bir ayar saklama sorunu, arama motorlarının çıplak alan adına düşmesine yol açıyordu. Artık her site başlık, sosyal kart ve yapılandırılmış veride gerçek adını gösteriyor — filo genelinde doğrulandı
- Oturum kalıcılığı — Admin oturumları artık beklenmedik şekilde düşmüyor; çıkış yapana kadar kalıyor (kök neden: sunucu oturum çöp toplaması ayarlı ömürle hizalı değildi)
- Footer & marka — Footer güvenilir render oluyor ve Genel Ayarlar'dan tek kaynaktan besleniyor (slogan / footer metni), uygun yerlerde iki dilli (TR/EN); demo/yer-tutucu kalıntıları temizlendi
Değişen dosyalar (5)
includes/Totp.php / QrSvg.php
—
NEW — self-hosted TOTP + QR (SVG)
deploy/deploy-all.sh
—
NEW — sunucu-tarafı ban-proof auto-deploy + smoke-test
includes/Session.php
—
gc_maxlifetime fix (oturum kalıcılığı)
admin/settings.php
—
modern 2FA kartı + settings persistence (SERP) fix
marketing-includes/footer.php
—
bulletproof footer
İki Adımlı Doğrulama, Akıllı Bülten ve Müşteri Güncelleme Kanalı
Yeni
- Admin iki adımlı doğrulama (TOTP) — QR ile kurulan, hesap bazında Güvenlik ayarlarından açılıp kapatılan opsiyonel zaman-tabanlı 2FA; tüm authenticator uygulamalarıyla uyumlu
- Akıllı bülten özetleri — Abonelik eklentisi artık yeni yazıların otomatik haftalık veya aylık özetini gönderebilir (sıklık kapalı/haftalık/aylık + ayın günü), cron ile sunucu-taraflı güvenilir tetik ve periyot başına tekilleştirme
- Müşteri self-update kanalı — Uçtan uca imzalı güncelleme: manifest gömülü public key ile doğrulanır (her install'da çalışır), SHA-256 zorunlu, tek komutluk release paketleyici temiz çekirdek paketi üretir ve yanlış imzalı release'i reddeden anahtar-çifti güvenlik kapısı içerir
Düzeltildi
- Kritik SEO: arşiv sayfaları artık soft-404 değil — Tech ve Minimalist temalarında her kategori/author arşivi sabit 404 dönüyordu (şablon, hiç set edilmeyen bir yönlendirme anahtarını okuyordu); bu sayfalar artık doğru çözülür ve author arşivleri tam desteklenir
- API yazma yetkilendirme — Kimlik doğrulanmış düşük yetkili token artık içerik oluşturamaz/değiştiremez/silemez veya başka yazarın yazısına dokunamaz; rol + sahiplik ürünün kendi yetki modelinden zorunlu kılınır
- Sitemap/robots dayanıklılığı — Güvenlik user-agent heuristikleri
sitemap*.xml/robots.txtiçin Googlebot/Search Console'a 403 dönebiliyordu; bu uçlar artık tüm engelleme kurallarını atlar, indeksleme asla kazara kaybolmaz - Footer sosyal bağlantılar — Pazarlama footer'ı yalnız Genel Ayarlar → Sosyal Medya'da tanımlı hesapları gösterir (yer-tutucu/demo bağlantılar kaldırıldı)
Değişen dosyalar (9)
native/includes/Totp.php
—
NEW — RFC6238 TOTP
native/admin/login.php
—
2FA 2-adım akışı
native/plugins/newsletter/classes/WeeklyDigest.php
—
haftalık+aylık dispatch
native/themes/{tech,minimalist}/templates/archive.php
—
archive_slug + author dalı
native/api/v1/index.php
—
authorizeWrite() rol/sahiplik
native/.htaccess
—
sitemap/robots güvenlik-bypass
native/classes/Updater.php
—
gömülü public key + managed guard
tools/release.php
—
NEW — release paketleyici + anahtar self-doğrulama
marketing-includes/header.php
—
şema adı i18n
Güvenlik Sıkılaştırma ve Güncelleme Bütünlüğü
Düzeltildi
- Kritik: SSRF engellendi — Sunucu-taraflı görsel çekme (URL'den medya) yalnız http/https genel hostlara izin verir; özel/loopback/link-local ve bulut-metadata adresleri reddedilir, yönlendirme kapalı, boyut sınırlı
- Yüksek: Markdown XSS engellendi — İçerikteki link/görsel URL'leri şema-allowlist;
javascript:,data:,vbscript:ve protokol-göreli URL'ler artıkhref/src'e giremez - Yüksek: Siteler-arası istek sertleştirme — Durum değiştiren istekler CSRF token'a ek olarak same-origin (Origin/Referer) zorunlu kılar; tüm admin aksiyon sayfalarını topluca korur
- SVG yükleme XSS engellendi — Script, olay-işleyici, foreignObject, dış-referans veya XML-entity (XXE) içeren SVG'ler reddedilir; statik SVG'lere izin sürer
- Güncelleme bütünlüğü zorunlu — Doğrulanmış SHA-256 olmadan güncelleme reddedilir; manuel ZIP uygulaması resmi hash girilmedikçe varsayılan kapalı; geliştirici-lisansı localhost tespiti gerçek loopback bağlantı ister (Host-header spoof kapatıldı)
Değişen dosyalar (8)
api/v1/index.php
—
validateRemoteUrl() SSRF guard
includes/helpers.php
—
parse_markdown URL şema allowlist
includes/Security.php
—
CSRF same-origin + SVG denylist
classes/Updater.php
—
zorunlu sha256 (hash_equals)
admin/updates.php
—
manuel ZIP default-kapalı + sha256 gate
classes/License.php
—
isLocalhost loopback-peer zorunlu
tools/check-drift.php
—
NEW — standardizasyon drift denetimi
STANDARDIZATION.md
—
NEW — propagasyon/governance modeli
Core Web Vitals: Responsive Görseller, LCP ve Önbellek
Değişen dosyalar (5)
includes/helpers.php
—
jek_img_optimize() global filtre + instant-search async
index.php
—
ob_start('jek_img_optimize') (yalnız frontend)
classes/Media.php
—
regenerateVariants() — eksik boyut varyantı backfill
cron.php
—
görsel varyant backfill (nazik, cursor, idempotent)
themes/travel/*
—
picture()/LCP + koşullu critical-CSS
Temiz İçerik Render: Markdown, Kod Blokları ve Kodlama
Düzeltildi
- Kritik: Ham Markdown Başlıkları — Bir yazı HTML ile Markdown'ı karıştırdığında (AI/otomasyon çıktısının normali),
##/###başlıklar, kod blokları ve listeler render edilmek yerine ham basılıyordu. Markdown motoru yeniden yazıldı; blok öğeler HTML'in yanında da dönüştürülüyor - Kritik: Komutlar Başlık Oluyordu — Kod (```/~~~ blokları, satır-içi ve mevcut
<pre>) artık başlık ayrıştırmasından ÖNCE korunuyor;#shell yorumları ve#!/bin/bashsatırları asla başlık sanılmıyor - Eski Linux Yazıları Onarıldı — WordPress içe aktarımında parçalanmış komut blokları (
<pre>…</p><p>…</pre>) temiz çok-satırlı kod bloklarına birleştirildi - Kritik: Türkçe Bozulması (Mojibake) — Bazı otomatik içerik çift kodlanmış geliyordu (Türkçe harfler CJK glifi: "Çikolata" → "脟ikolata"). API artık her gelen yazım yolunu otomatik onarıyor (kendini doğrular, yanlış pozitif yok); fleet aracı tüm sitelerdeki mevcut içeriği temizliyor
Değişen dosyalar (5)
includes/helpers.php
—
parse_markdown() v2 — kod-koru-önce, başlıklar HTML içerikte de
api/v1/index.php
—
fixMojibake() güçlendirildi + demojibakeDeep() (tüm write yolları)
marketing-assets/css/main.css
—
.nl-band site token'ları + pill
tools/fix-mojibake-all.php
—
NEW — 15 site fleet mojibake onarımı
tools/fix-celil-pre.php
—
NEW — celil <pre> komut bloğu onarımı
Güvenilir Tema Değiştirme, 17 Otomatik Paylaşım Ağı ve Tam Genişlik Admin
Yeni
- Bölgesel & Fediverse Otomatik Paylaşım — Sosyal otomasyon motoruna sekiz yeni ağ: Pixelfed, Misskey/Sharkey, WriteFreely, Micro.blog ve Lemmy (token/instance), VK (OAuth2), ayrıca Hatena Bookmark ve Plurk (OAuth1). Bağlı her hesaba yeni içerik, platforma özel hız ve geri-çekilme ile otomatik gönderilir
- Dürüst Yetenek Notları — Güvenli/resmi yayın API'si olmayan ağlar (Xing, Naver, Nostr) sessizce başarısız olmak yerine gerekçesiyle açıkça etiketlendi — sahte bağlayıcı yok
Düzeltildi
- Kritik: Tema Değiştirme Çalışmıyordu —
settings.keytekil indeksli olduğu için eski "UPDATE sonra satır yoksa INSERT" yolu, değer değişmediğinde (aynı temayı tekrar aktive etme veya her geçişte çalışan otomatik önceki-tema yedeği) duplicate-key hatası fırlatıyordu. Aktivasyon veritabanı hatasıyla iptal oluyor ve tema asla değişmiyordu. Tema yazımları artık tek-satır upsert (sil + ekle) — mevcut mükerrer/yetim satırları da otomatik temizler. Aktif-tema okuması deterministik (canonical grup, en yeni satır) olduğundan ön yüz her zaman seçilen temayı gösterir
Değişen dosyalar (4)
admin/themes.php
—
setThemeSettingRow() singleton upsert; tüm yazım noktaları
includes/helpers.php
—
get_active_theme() deterministik sorgu
plugins/jek-social/classes/adapters/*
—
Pixelfed/Misskey/WriteFreely/Microblog/Lemmy/Vk/Hatena/Plurk
admin/plugins/jek-social/connections.php
—
.js-wrap tam genişlik + yeni platform formları
Akıllı Yeni Nesil CMS — Admin UI Yenileme, Sağlam Slug Üretimi ve Otomatik Kayıt
Yeni
- Yeni Admin Tasarım Dili — Birleşik badge sistemi (5 pill varyant: başarı/hata/uyarı/bilgi/nötr), renkli arka plan + dekoratif SVG'li stat-card-v2, outline hızlı erişim butonları, boş/hata durumu için state-block
- Dil Değiştirici — Admin header'da TR/EN toggle, session-based override (
$_SESSION[admin_lang_override]), sayfalar arası korunur - Otomatik Taslak Kaydı — Post editörü her 30sn kaydeder + localStorage offline yedek. Sağ alt köşede status pill: "Kaydediliyor…" / "Kaydedildi · 15:42" / "Çevrimdışı". Kapatırken değişiklik varsa yeniden açıldığında geri yükleme isteği
- Anonim Önizleme —
preview.php?token=XXX— 48 karakter hex tokenpost_meta'da saklanır. "Önizleme Linki" butonuyla URL otomatik panoya kopyalanır. Turuncu banner önizleme modunu belirtir - Revizyon Karşılaştırma — Herhangi bir revizyona tıklayın → kelime bazlı diff modalı (CDN üzerinden jsdiff). Yeşil ekleme / kırmızı üstü çizili silme. Otomatik snapshot ile "Bu revizyonu geri yükle"
- Kelime Sayısı Dağılımı — Dashboard'da post kelime sayılarının yığılı barı (0-500, 500-1K, 1K-1.5K, 1.5K+), hover tooltip ile
- Tarih Aralığı Filtresi — Post listesinde
date_from/date_toiçin native tarih seçiciler - Medya Grid/Liste Toggle — Kütüphane görünümü grid ve dikey liste arası geçiş, tercih localStorage'da saklanır
- Slug Onarım Aracı —
admin/tools/rebuild-slugs.php— dry-run önizleme + çakışma yönetimi + CLI modu ile toplu işlem
Düzeltildi
- Kritik: Türkçe Slug Bug —
mb_strtolower()Türkçeİ(U+0130) karakterini iki codepoint'e dönüştürüp transliterasyon map'ini bozuyordu, artakalan bytelar hyphen oluyordu. Yenislugify()lowercase'den ÖNCE kapsamlı map'lestrtrçalıştırır (Türkçe + Latin extended). Tüm sitelerde 866 bozuk slug düzeltildi - Sidebar Çizgi Bug —
.sidebar-brand56px iken--header-height: 60pxidi, 4px kayma yatay çizgi artefaktı oluşturuyordu. Artıkvar(--header-height)kullanılıyor - profile.php 90s Buton —
.avatar-actions .btn-sm'eborder-radius: 50%uygulanmıştı, butonlar daireye dönüşüyordu. Ayrıca "Active" ifadesi Türkçe admin'de İngilizce hardcoded idi. İkisi de düzeltildi - Ayarlar Thumbnail Input'ları — Pixel input'larda hiç stil yoktu (native browser default — 90s). Artık düzgün padding, focus ring, arka plan var
- Logo Regresyonu —
logo-yatay.svgeski test logosuydu. Sidebar'dalogo-dikey.svg+ inline SVG ile değiştirildi (admin login ile aynı) - Lisans Sayfası Marka — Sahte mavi
[J]SVG monogramı gerçeklogo-dikey.svgile değiştirildi. Hardcoded#28a745renkler CSS değişkenlerine taşındı - Güncellemeler Sayfası UX — Lisans yok / güncelleme başarısız / güncel durumları birleşik pill-badge formatı kullanıyor. Raw İngilizce hatalar Türkçe UI'dan kaldırıldı
Değişen dosyalar (32)
includes/helpers.php
—
slugify() — bulletproof Turkish + Latin extended
api/v1/index.php
—
generateSlug() wrapper → slugify()
config/functions.php
—
Session-based admin_lang_override
admin/ajax/autosave.php
—
Existing — no change (frontend added)
admin/ajax/preview-token.php
—
NEW — generates 48-hex preview tokens
admin/ajax/revision-get.php
—
NEW — fetches revision JSON for diff
admin/ajax/revision-restore.php
—
NEW — restores post from revision
admin/tools/rebuild-slugs.php
—
NEW — slug rebuild UI
admin/tools/rebuild-slugs-cli.php
—
NEW — CLI version
admin/post-edit.php
—
Autosave JS, preview link, revision diff modal
admin/posts.php
—
Date range filter
admin/media.php
—
Grid/list toggle
admin/profile.php
—
90s button fix + TR translate
admin/settings.php
—
Thumbnail input styling
admin/fix-images.php
—
Pill-badge + icon buttons
admin/content-fixer.php
—
Unified badge system
admin/license.php
—
logo-dikey.svg + CSS vars
admin/updates.php
—
Pill-badge state blocks
admin/login.php
—
Tagline added
admin/assets/css/admin.css
—
Pill-badge, qa-btn, stat-card-v2, lang-toggle
admin/includes/sidebar.php
—
Border fix + slug tool link + inline SVG logo
admin/includes/header.php
—
Language toggle button
admin/includes/init.php
—
set_admin_lang handler
preview.php
—
NEW — anonymous token-based draft viewer
config/constants.php
—
CMS_VERSION = 2.0.1
version.json
—
v2.0.1, db_version 6
marketing-includes/header.php
—
Hero title → "Smart Next-Gen CMS" / "Akıllı Yeni Nesil CMS"
marketing-includes/footer.php
—
logo-dikey.svg + site_tagline
marketing-assets/css/main.css
—
.ss-frame (screenshot component) + .footer-tagline
marketing-includes/ss-helper.php
—
NEW — ss_frame() / ss_step() helpers
tools/sync-from-celil.sh
—
NEW — deployment script (21 verbatim files)
tools/patch-from-celil.php
—
NEW — surgical patch script (6 targeted edits)
Otomatik Ayar Seed, Core Web Vitals, Güncelleme Sistemi ve SEO Güçlendirme
Yeni
- Otomatik Ayar Seed —
ensure_default_settings()ilk sayfa yüklemesindesite_namevesite_alternate_namedeğerlerini otomatik olarak veritabanına yazar. Önbellek dosyası sayesinde tek seferlik çalışır, performans etkisi sıfır. Yeni siteler için manuel SQL çalıştırmaya gerek kalmaz - Migration Sistemi — Altyapı sağlanan tüm sitelerde
migrations/5_seo_settings_seed.phpoluşturuldu. Güncelleme sistemi artık veritabanı değişikliklerini otomatik olarak dağıtabiliyor - LCP Eager Loading — Sayfa yüklemesindeki ilk post kartı görseli tüm tema mimarilerinde
loading="eager" fetchpriority="high"alıyor. ~200-500ms LCP iyileşmesi bekleniyor - CLS Önleme — Tüm post kartı görsellerine
widthveheightnitelikleri eklendi. Sayfa düzeni kaymasını tamamen ortadan kaldırır - CSS Önbellek Yönetimi — Starter tema başlıklarındaki stil dosyası bağlantılarına
?v=THEME_VERSIONparametresi eklendi - Güncelleme Sunucusu Bağlandı —
api/updates/check.phpartık statik yanıt yerine gerçekUpdateManagerile veritabanı sorgusu yapıyor. Bağlantı hatalarında güvenli geri dönüş sağlar - jekcms Backlinkleri — Aktif siteler, yönetim panelleri ve paket temalar dahil tüm footer dosyaları artık
jekcms.comadresine "jekcms" bağlantı metniyle yönlendiriyor - Pazarlama Sitesi SEO — Gerçek favicon URL'si (SVG),
application-namemeta etiketi,theme-color, WebSite şemasıalternateNameeklendi. Dekoratif metin CSS'e taşınarak Google sitelink kirliliği önlendi
Düzeltildi
- Sitemap sayfalama URL'leri kaldırıldı — Anasayfa, kategori, etiket ve yazar sitemap'lerinden sayfalama URL'leri çıkarıldı. Arama motoru tarama bütçesi israfı önlendi
- İnce içerikli etiket sayfaları artık
noindex— 3'ten az yazısı olan etiket sayfalarıoutput_robots_meta()aracılığıylanoindex, followalıyor - Markdown
# Başlıkartık<h1>yerine<h2>üretiyor — sayfa başlığı zaten H1 olduğundan çift H1 sorunu önlendi - SQL migration dosyası
sql/v1.5.1-seo-site-names.sqlsilindi — otomatikensure_default_settings()mekanizması ile değiştirildi - Pazarlama sitesinin favicon'u data URI idi — Google, SERP'de favicon göstermek için gerçek URL gerektirir.
/favicon.svgile değiştirildi - Pazarlama sitesinde "Dashboard Posts Media Settings" Google sitelink'lerinde görünüyordu — dekoratif metin HTML'den CSS
content: attr(data-label)yöntemine taşındı
Değişen dosyalar (18)
includes/helpers.php
—
ensure_default_settings() + thin tag noindex + markdown H1→H2
includes/bootstrap.php
—
ensure_default_settings() call added
classes/Sitemap.php
—
Pagination URLs removed
migrations/5_seo_settings_seed.php
—
NEW — DB seed migration
version.json
—
v1.5.3, db_version 5
themes/*/partials/post-card.php
—
LCP eager + CLS dimensions
themes/*/templates/index.php
—
Featured image eager loading
themes/*/templates/archive.php
—
Card index parameter
themes/*/templates/header.php
—
CSS cache busting
themes/*/functions.php
—
render_post_card index param
themes/*/templates/footer.php
—
jekcms backlink
admin/includes/footer.php
—
jekcms backlink noreferrer
api/updates/check.php
—
Real UpdateManager connection
favicon.svg
—
NEW — Root favicon for Google SERP (marketing)
index.php
—
Mockup text → CSS data-label (marketing)
marketing-includes/header.php
—
Favicon + application-name + schema (marketing)
marketing-assets/css/main.css
—
Mockup nav CSS content rule (marketing)
changelog.php
—
v1.5.3 release entry (marketing)
Derin SEO Denetimi — Schema, OG Görsel, Core Web Vitals ve Erişilebilirlik
Düzeltildi
- BlogPosting
authorşemasındaurlözelliği eksikti — Google 2023'ten beri yazar URL'si zorunlu kılıyor. Tüm sitelerdeauthor.urleklendi - BreadcrumbList son elemanında
item(URL) özelliği eksikti — Google Rich Results testi hata veriyordu. Tüm helpers.php dosyalarında kategori ve kategorisiz yollar düzeltildi - Paket tema functions.php dosyalarında
og:image:widthveog:image:heightmeta etiketleri eksikti — Facebook/LinkedIn görsel önizlemeleri yanlış görünebiliyordu. 1200×630 boyutları eklendi - Aktif tema single.php dosyalarında öne çıkan görselde
fetchpriority="high"eksikti — LCP (Largest Contentful Paint) performansını etkiliyor. Eksik olanlarawidth/heightde eklendi - Aktif tema dosyalarında yazar avatar
<img>etiketlerinde boşalt=""vardı — erişilebilirlik ve görsel SEO sorunu. Yazar adıyla değiştirildi - Etkilenen temalarda sabit kodlanmış
<html lang="tr">— doğru dil bildirimi için dinamikget_setting()ile değiştirildi
Değişen dosyalar (4)
includes/helpers.php
—
Author URL + BreadcrumbList item fix
themes/*/functions.php
—
og:image:width/height added
themes/*/templates/single.php
—
fetchpriority + avatar alt text
themes/*/templates/header.php
—
Dynamic html lang attribute
SEO Denetimi — Sayfalama, Sitemap Dili, Etiket Temizliği ve OG Locale
Düzeltildi
- Sayfalama URL'lerinde çift sorgu dizesi hatası —
get_canonical_url()?page=Ndöndürdüğü için?page=3?page=4oluşuyordu. baseUrl'den page parametresi çıkarılarak düzeltildi - Schema
$currentUrlsayfalanmış sayfalarda?page=Neksikti — canonical ve schema URL'leri artık tutarlı ?page=1duplicate içerik — tüm site .htaccess dosyalarında temiz URL'ye 301 yönlendirme eklendi- News sitemap'te sabit kodlanmış
<news:language>en</news:language>— tüm sitelerdeget_setting()ile dinamik hale getirildi - Etiket URL'leri anasayfaya 301 dönüyordu — tüm sitelerde minimal HTML sayfasıyla 410 Gone yanıtına değiştirildi
- BlogPosting şemasında
inLanguageözelliği eksikti — tüm sitelerde dinamik dil algılama eklendi og:localeTürkçe sitelerdeen_USolarak sabit kodlanmıştı — site dil ayarına göretr_TRveyaen_USdinamik olarak ayarlandı- AVIF → WebP şema görseli geri dönüşünde
file_exists()kontrolü eksikti — dosya yokken WebP URL'si yayınlanıyordu
Değişen dosyalar (6)
includes/helpers.php
—
Pagination fix, schema URL, inLanguage, AVIF fallback
.htaccess
—
?page=1 redirect rule
classes/Sitemap.php
—
News language dynamic detection
config/routes.php
—
Tag 410 Gone response
themes/*/header.php
—
og:locale dynamic setting
themes/*/functions.php
—
og:locale dynamic setting
Duplike Engelleme, Akıllı Küçük Görsel ve Yönetim Araçları
Yeni
Post::checkDuplicate()metodu — oluşturma öncesi başlık veya slug ile duplike post tespiti- Tüm API webhook'larına duplike kontrolü entegre edildi:
webhookPublish,webhookSchedule,webhookDraft,webhookBulkPublish,webhookContentGenerate - Duplike tespit edildiğinde mevcut post detaylarıyla (id, title, slug, status, url) HTTP 409 yanıtı
- Kasıtlı duplikeler için
force_duplicate: trueistek parametresi - Toplu yayın duplikeleri sessizce atlar, engellemek yerine
skippedsayacını artırır - Posts sayfasında "Duplikeler" butonu — tam duplike analiziyle modal pencere açar
- Slug desen tespit motoru: başka bir post olarak da mevcut olan temel slug'a sahip
-N(N=1-10) ile biten postları bulur - Tek tıkla ve toplu "Tüm Duplikeleri Çöpe At" işlemleri, gerçek zamanlı arayüz güncellemeleriyle
get_featured_image()içinde image proxy geri dönüşü — önceden oluşturulmuş küçük görsel dosyaları eksikseimage-proxy.phpile dinamik boyutlandırma- Boyut haritası: thumbnail (400×400), card (480×300), medium (800×500), large (1600×1000)
- Boyutlandırılmış varyantları ararken AVIF → WebP → orijinal format kademesi
- İçerik Kuyruğu kenar çubuğu rozeti artık
draftvereadyile birliktequeueddurumunu da sayıyor
Değişen dosyalar (6)
classes/Post.php
—
checkDuplicate() method added
api/v1/index.php
—
checkDuplicatePost() + webhook integrations
admin/posts.php
—
Duplicates button, modal, JavaScript
admin/ajax/find-duplicates.php
—
NEW — AJAX duplicate finder endpoint
includes/helpers.php
—
get_featured_image() image-proxy fallback
admin/includes/init.php
—
Content Queue badge query updated
Production Sağlamlaştırma — SEO Düzeltmeleri, Lisans Zorunluluğu ve Oturum Güvenliği
Yeni
output_robots_meta()fonksiyonu — sayfa bazında robot yönergeleri (404 ve arama sayfaları için noindex, post seviyesinde geçersiz kılma)init.phpvelogin.php'de lisans zorunluluğu — aktif lisans anahtarı yoksalicense.php'ye yönlendirme- Siteler arası oturum ele geçirme önleme: çerez yolu
parse_url(SITE_URL, PHP_URL_PATH)ile siteye özel URL yoluna ayarlandı Auth::loadUser()içinde oturum_site_hashdoğrulaması — kimlik doğrulanmış oturumların ortak barındırılan siteler arasında paylaşılmasını önler- Siteye özel
remember_tokençerez yolu — beni hatırla belirteçleri artık aynı alan adındaki siteler arasında paylaşılmıyor - Footer markalaması tüm kurulumlarda standartlaştırıldı
Düzeltildi
- API yükleme yolunda çift
uploads/uploads/ön eki —uploadFromUrl()veuploadFromBase64()artık veritabanına kaydetmeden önce fazla ön eki çıkarıyor - Etkilenen site başlıklarından çift
<link rel="canonical">etiketleri kaldırıldı - FAQ şema çıktısı: minimum 3 öğe, 50+ karakter yanıt, maksimum 10 öğe zorunluluğu; tüm helpers dosyalarında tekilleştirildi
- Kenar çubuğu kategori yazı sayıları tasarım kurallarına göre kaldırıldı
- single.php dosyalarında yazar adı bağlantıları tıklanabilir
<a href>etiketlerine dönüştürüldü - SITE_NAME yapılandırma boşlukları düzeltildi — "FinanceSubject" gibi birleşik adlar "Finance Subject" olarak güncellendi
- Schema.org URL'lerinden izleme parametreleri (
utm_source,fbclidvb.)parse_url()ile temizlendi - Post kartı görsellerine eksik
width/heightnitelikleri eklendi — CLS önleme uygulandı
Değişen dosyalar (7)
api/v1/index.php
—
Upload path fix
includes/helpers.php
—
robots_meta, FAQ schema, schema URL cleanup
classes/Auth.php
—
_site_hash verification, cookie path
classes/Session.php
—
Site-specific cookie path
admin/includes/init.php
—
License enforcement redirect
admin/login.php
—
License check before auth
sql/v1.4.5-migration.sql
—
Fix corrupt featured_image paths
SEO Yenilemesi, İçerik Optimizasyonu, Breadcrumb ve İçindekiler Tablosu
Yeni
- Tüm aktif sitelerde kapsamlı SEO yenilemesi — meta etiketleri, Open Graph, Twitter Cards, Schema.org yapılandırılmış veri gözden geçirildi ve standartlaştırıldı
- Schema.org
BreadcrumbListişaretlemesiyle breadcrumb navigasyonu her siteye eklendi - İçindekiler Tablosu (TOC) —
<h2>/<h3>başlıklarından otomatik oluşturulur, temaya göre kenar çubuğu widget'ı veya satır içi blok olarak görüntülenir - Sözlük tabanlı eş anlamlı kelime yenilemesiyle İçerik Optimizasyonu — Türkçe morfolojiyi bozan yapay zeka API (Gemini/Groq) yaklaşımının yerine geçti
- Türkçe eş anlamlı sözlük (~200 modern kelime çifti) ve İngilizce eş anlamlı sözlük (~180 çift), arkaik terimler çıkarıldı
- Optimizasyon sözlük seçimi için
get_setting('general', 'ai_content_language')ile otomatik dil algılama - Google SERP site adı düzeltmesi:
og:site_nameve WebSite şemasında boş dizeleri yakalamak için??operatörü?:ile değiştirildi - Google site adı sinyali için tüm tema başlıklarına
<meta name="application-name">etiketi eklendi - Livecub için Pinterest Compose API — Gemini fotoğraf üretir, PHP GD metin katmanı ekler, 5 düzen şablonu, 1000×1500 çıktı
- SosyalMedya kapak görseli motoru değiştirildi: PHP GD degradeleri → Gemini Image API profesyonel fotoğraflar (1080×1920, AVIF, 5 stil)
- Türkçe slug oluşturma düzeltmesi:
generateSlug()artık tüm sitelerde ç, ğ, ı, ö, ş, ü harflerini doğru dönüştürüyor - Production veritabanlarındaki bozuk Türkçe slug'ları onarmak için
fix-slugs.phpyardımcı betiği
Düzeltildi
- Etkilenen sitelerde robots.txt dosyalarında çözümlenmemiş
{{SITE_DOMAIN}}yer tutucuları vardı - hobirehber şema fonksiyonu
output_hobirehber_schema()yerineoutput_hobbyrig_schema()olarak adlandırılmıştı - Production'daki CSP başlığı Google Analytics, AdSense ve Facebook Pixel alan adlarını engelliyordu
- MinimalistRig postlarında
featured_imagesütununda göreli yollar yerine tam URL'ler vardı - Livecub favicon'u Livecub L+Heart marka ikonu yerine jekcms [J] ikonunu gösteriyordu
Değişen dosyalar (7)
includes/helpers.php
—
SEO functions, breadcrumbs, TOC, schema fixes
includes/ContentOptimizer.php
—
Dictionary-based synonym refresh engine
admin/content-optimizer.php
—
Optimizer admin interface
themes/*/header.php
—
Breadcrumbs, meta tags, application-name
themes/*/single.php
—
TOC integration
themes/*/style.css
—
Breadcrumb and TOC styling
api/v1/pinterest-compose.php
—
NEW — Pinterest image composer (Livecub)
Kritik SEO Düzeltmesi, Çoklu Site Şablonu ve Dokümantasyon
Yeni
- Yeni jekcms siteleri oluşturmak için kanonik temel olarak
_template/dizini oluşturuldu — gerekli tüm dosyalar, klasör yapısı ve yer tutucu değişkenler dahil - Çift ortam yapılandırması: ana bilgisayar adına dayalı otomatik algılamayla
.env(yerel geliştirme) ve.env-production(canlı sunucu) - Hızlı site klonlama için yer tutucu sistemi:
{{SITE_NAME}},{{SITE_SLUG}},{{SITE_DOMAIN}} - Tutarlı markalamayla standart hata sayfaları: 400, 401, 403, 404, 500, 502, 503
- Geri sayım zamanlayıcılı bakım modu sayfası (
maintenance.php) - GZIP sıkıştırma, tarayıcı önbellekleme (statik içerik için 1 yıl), güvenlik başlıkları ve URL yeniden yazma ile standartlaştırılmış
.htaccess - Eksiksiz dağıtım dokümantasyonu: mimari kılavuz, SEO kontrol listesi, responsive görsel referansı, yükseltme talimatları
Düzeltildi
- Kritik: Production sitelerde tüm Google indekslemeyi yanlışlıkla engelleyen
X-Robots-Tag: noindexHTTP başlığı kaldırıldı - Yönetim içerik kuyruğu yeniden deneme: başarısız görev yeniden kuyruğa alındığında
attemptssayacı sıfıra dönüyor - Post düzenleyici panelinden eski Pinterest paylaşım kodu kaldırıldı
- Sadece blog sitelerinin yönetim panellerinden e-ticaret menüleri (Satış, Müşteriler) kaldırıldı
- Eksik AJAX uç noktaları (yorum, bülten, beğeni) tüm sitelerde senkronize edildi
- kriptogetiri'ye eksik
SpamFilter.phpsınıfı eklendi
Değişen dosyalar (6)
sites/_template/
—
NEW — Complete site template directory
.env.example
—
Environment configuration template
maintenance.php
—
NEW — Maintenance mode page
error.php
—
NEW — Unified error handler (400-503)
.htaccess
—
Standardized security + performance rules
skills/*.md
—
Architecture, deployment, SEO, image documentation
E-Ticaret, Müşteri Portalı, Lisans Sistemi ve Çok Dilli Motor
Yeni
- iyzico ödeme geçidi entegrasyonu ile eksiksiz e-ticaret sistemi — kredi kartı işleme, 3D Secure, taksit desteği
- Sipariş yönetimi yaşam döngüsü: oluşturma → ödeme → onay → hazırlama → tamamlandı, iptal ve iade akışlarıyla
- Otomatik numaralama, vergi hesaplama ve indirilebilir müşteri makbuzlarıyla PDF fatura oluşturma
/customer/adresinde müşteri portalı — sipariş geçmişi, aktif lisanslar, indirilebilir faturalar ve profil yönetimi ile gösterge paneli- Konulu mesajlar, öncelik seviyeleri ve yönetici yanıt takibi ile destek bileti sistemi
- Veritabanı tabanlı çevirilerle çok dilli motor — Türkçe ve İngilizce hazır, herhangi bir dile genişletilebilir
- Tembel yükleme yaklaşımlı
Translatorsınıfı: dizeler önceden değil talep üzerine ayrıştırılır — çok dilli kurulumlarda bellek kullanımını önemli ölçüde azaltır - 6 kademeli jekcms lisans sistemi: DEV (ücretsiz), PER (kişisel), STD (standart), PRO (profesyonel), AGC (ajans), ENT (kurumsal)
/api/license/adresinde lisans aktivasyon, doğrulama ve deaktivasyon API'si/api/updates/adresinde kontrol, indirme ve raporlama uç noktalarıyla güncelleme sunucusu- SSRF korumalı image proxy — özel IP aralıklarını (10.x, 172.16-31.x, 192.168.x, 127.x) engeller ve otomatik çöp toplama (7 günlük TTL)
- Önbellek yönetim sistemi: sayfa, sorgu, obje, site haritası, RSS, görsel önbelleği ile yönetim AJAX temizleme kontrolleri
- IP tabanlı izleme ve yapılandırılabilir eşiklerle hız sınırlandırma
- Kalıcı kötü niyetli kullanıcılar için IP engelleme listesi
- SEO sayfalama:
rel="next"/rel="prev"etiketleri, canonical URL sorgu dizesi hariç tutma, robots.txtAllow: /*?page= - CLS önleme için otomatik
width/heightnitelikleriyle responsive görselsrcsetoluşturma - HiDPI/Retina ekranlar için Gravatar 2x görüntüleme
Kırılma
- Siteler
sites/dizin yapısına taşındı — mevcut kurulumlar yol migrasyonu gerektirir
Değişen dosyalar (14)
classes/Order.php
—
Order management
classes/Customer.php
—
Customer accounts
classes/Invoice.php
—
PDF invoice generation
classes/SupportTicket.php
—
Support ticket system
classes/Translator.php
—
Multi-language engine
classes/Payment/IyzicoGateway.php
—
iyzico payment integration
classes/Security.php
—
Rate limiting, CSRF, XSS protection
classes/License.php
—
License client
classes/Updater.php
—
Update client
includes/image-proxy.php
—
SSRF-protected image proxy with GC
includes/cache-cleanup.php
—
Cache garbage collection
customer/
—
NEW — Customer portal directory
api/license/
—
NEW — License API endpoints
api/updates/
—
NEW — Update server API endpoints
Yönetim Paneli İngilizce Çevirisi ve Arayüz İyileştirmesi
Yeni
- Tüm yönetim paneli arayüz öğelerinin eksiksiz İngilizce çevirisi — menüler, etiketler, butonlar, ipuçları, hata mesajları ve başarı bildirimleri
- Yönetim genelinde terminoloji birliği: tüm modüllerde tutarlı "Posts", "Pages", "Media", "Settings" kullanımı
- IP bazlı tekilleştirme ile post oylama sistemi etkinleştirildi
- Bot filtrelemeli post görüntülenme sayacı
- PLUGINS bölümü altında yönetim kenar çubuğuna bülten modülü bağlantısı
- Otomatik içerik üretim hattı için yapay zeka içerik kuyruğu altyapısı
Düzeltildi
- Daha temiz navigasyon görünümü için yönetim kenar çubuğu boşluğu azaltıldı
- Yönetim panelinde CSS iyileştirmeleri — tutarlı dolgu, kenarlık hizalama ve küçük ekranlarda responsive davranış
Eklenti Mimarisi, Bülten Sistemi ve Reklam Modülü
Yeni
- Veritabanı tabanlı yönetim ile eklenti etkinleştirme/devre dışı bırakma sistemi — eklentiler kod değişikliği olmadan aktif edilebilir, devre dışı bırakılabilir ve yapılandırılabilir
- Abone yönetimi, kampanya oluşturma ve teslimat takibi ile bülten modülü — isteğe bağlı etkinleştirme için çekirdekten PLUGINS menüsüne taşındı
- Gösterim ve tıklanma takibi ile banner ve satır içi reklam yerleşimleri için reklam sistemi
- Spam koruması, e-posta bildirimleri ve yönetim mesaj yönetimi ile iletişim formu
- Durum takibi (gönderildi, başarısız, geri döndü) ile e-posta teslimat kaydı
- Denetim ve desen analizi için spam koruma kaydı
- Yeniden düzenlenen yönetim kenar çubuğu: PLUGINS bölümü temel navigasyondan ayrıldı
- Harici entegrasyonlar için API uç noktası iyileştirmeleri
Değişen dosyalar (6)
classes/Plugin.php
—
Plugin management engine
classes/Newsletter.php
—
Newsletter subscriber + campaign system
classes/Advertising.php
—
Ad placement and tracking
classes/SpamFilter.php
—
Spam detection and logging
admin/plugins.php
—
NEW — Plugin management interface
admin/newsletter.php
—
NEW — Newsletter administration
Ortam Sistemi, SEO Araçları ve Performans Altyapısı
Yeni
- Ortam yapılandırma sistemi — ana bilgisayar adına dayalı otomatik yerel/production algılama, ayrı veritabanı kimlik bilgileri ve URL ayarları
- Sayfa içi analiz, anahtar kelime yoğunluğu denetleyicisi ve okunabilirlik puanlamasıyla SEO Optimizasyon yönetim aracı
- Genişletilmiş site haritası sistemi: ayrı
sitemap-posts.xml,sitemap-pages.xmlvesitemap-categories.xmlilesitemap.xmlindeksi - Schema.org otomatik algılama: sayfa türüne göre
Article,BlogPosting,WebPageveWebSiteyapılandırılmış veri enjeksiyonu post_viewstablosuyla post görüntülenme takibi — bot filtrelemeli, IP ile tekilleştirilmiş, "Popüler Yazılar" widget'ları için kullanılırpost_votestablosuyla post oylama sistemi altyapısı — IP bazlı hız sınırlandırma, beğen/beğenme- Performans temeli: çıktı ara bellekleme, geliştirme modunda sorgu kaydı, çalışma süresi takibi
- Post düzenleyicide sayfa bazında
noindex/nofollowayarlarıyla gelişmişrobotsmeta kontrolleri
Değişen dosyalar (4)
config/environment.php
—
NEW — Environment auto-detection
admin/seo-optimizer.php
—
NEW — SEO analysis tool
includes/sitemap.php
—
Extended sitemap generation
includes/schema.php
—
Schema.org structured data
İlk Sürüm — Blog CMS Temeli
Yeni
- Yazı ve sayfa yönetimi ile temel blog CMS — WYSIWYG düzenleyici, taslak/yayınlandı/zamanlanmış durum iş akışı, revizyon geçmişi
- Rol tabanlı erişim kontrollü kullanıcı kimlik doğrulaması: admin, editör, yazar, abone — her rol ayrıntılı izin sınırlarına sahip
- Sınırsız iç içe geçme derinliği ve SEO dostu URL slug'larıyla hiyerarşik kategori sistemi
- Otomatik öneri, toplu işlemler ve etiket bulutu oluşturma ile etiket yönetimi
- Sürükle-bırak yükleme, otomatik AVIF/WebP dönüşümü ve galeri yönetimi ile medya kütüphanesi
- 14+ premium temayı destekleyen tema sistemi — her tema şablonlar, parçalar, varlıklar ve yapılandırma içeren bağımsız bir dizindir
- Mobil öncelikli yaklaşımla responsive tasarım — tüm temalar kutudan çıktığı haliyle Google Mobil Uyumluluk testini geçer
- İç içe yanıtlar, Gravatar entegrasyonu ve yönetim moderasyon kuyruğu ile yorum sistemi
- Temel SEO:
<title>etiketleri,<meta description>, canonical URL'ler ve XML site haritası oluşturma - Tam içerik ve özet modlarıyla
/feed.xmladresinde RSS beslemesi - Başlıklar, içerik ve özetler genelinde alaka puanlamalı arama işlevi
- Yazı istatistikleri, son etkinlik akışı ve hızlı işlem butonlarıyla yönetim kontrol paneli
- Harici entegrasyonlar için API belirteç sistemi — anahtar oluşturma, iptal ve kullanım kaydı
.htaccessyeniden yazma kurallarıyla temiz URL yönlendirme —/yazi-slug,/category/ad,/tag/ad,/author/ad
Değişen dosyalar (10)
classes/Post.php
—
Post/page CRUD + revision system
classes/User.php
—
Authentication + role management
classes/Category.php
—
Hierarchical categories
classes/Tag.php
—
Tag management
classes/Media.php
—
Media library + AVIF/WebP conversion
classes/Comment.php
—
Threaded comments
classes/Database.php
—
PDO wrapper with prepared statements
admin/
—
Complete admin panel (dashboard, posts, pages, media, settings)
themes/
—
14+ responsive themes
api/v1/index.php
—
RESTful API with token authentication
Sitenizi bugün yayına alın
Kurulum, içerik yönetimi, SEO ve otomasyon — hepsi tek platformda. 30 dakikada başlayın.
Fiyatlara Göz At- 30 dakikada kurulum ve yayın
- 14+ profesyonel tema
- n8n otomasyon entegrasyonu
- Otomatik SEO — Sitemap, Schema.org
- PayPal & iyzico ödeme entegrasyonu