Sürüm Geçmişi

Sürüm Notları

v1.0.0'dan itibaren her özellik, her iyileştirme, her düzeltme.

v2.7.0

Security Center — WAF Paneli + Dosya Bütünlüğü İzleyici, Yerleşik

  • 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 sekmesilogs/security.log dosyasini 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
v2.6.0

Smart Backup — Zamanlanmış Günlük Yedekler, Yerleşik

  • 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 backupmysqldump bağı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çinde db.sql + uploads/ + manifest.json
  • Harici senkron önerisi — schedule kartı, backups/ klasörünü S3, Google Drive veya Dropbox'a senkronlamak için önerilen rclone kalı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
v2.5.0

Schema Studio — 13 Schema.org Tipi, Yerleşik

  • 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
v2.4.0

ZeroTrack Analytics — Gizlilik Odaklı, Çerezsiz, Yerleşik

  • 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
v2.3.18

Daha Net Ana Sayfa Hero — Somut Kanca

Değişen dosyalar (1)
marketing-includes/header.php hero_title + hero_subtitle (EN/TR) somut hook
v2.3.17

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
v2.3.16

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)
v2.3.15

Blog Editörü: Featured Yazı & Boş İçerik Düzeltmesi

  • Blog editörü featured yazıda boş açılıyordu — editör ?id=0'ı (id 0 taşıyan featured yazı) id > 0 kontrolü 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)
v2.3.14

Ana Kurulumda Eklenti Sistemi Onarıldı (Newsletter Artık Listeleniyor)

  • 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)
v2.3.13

Marketing Blog Editörü Artık Admin'de Erişilebilir

  • 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)
v2.3.12

Sihirbaz Ağ Hatası, Profiller ve Eklenti Kaydı 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 plugins tablosunda 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ı
v2.3.11

Kök Admin Düzeltmeleri — İçerik Düzeltici, Bülten Bağlantısı, Sihirbaz Anahtarları

  • İç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
v2.3.10

İçerik Kuyruğu Sihirbazı — Tüm Sitelerde Ham Anahtarlar 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ı
v2.3.9

Pazarlama Sitesinde Bülten Aboneliği Devrede

  • 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
v2.3.8

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)
v2.3.7

Doğru WordPress-Alternatifi Sayfası (Yalnız Gerçek Özellikler)

  • 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
v2.3.6

Orphan Sayfa Yok — Tam İç Bağlantı

  • 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
v2.3.5

AI-Arama Görünürlüğü & WordPress-Alternatifi Konumlandırma

  • 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.txt adresinde 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
v2.3.4

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)
v2.3.3

Makale Görünümü & İç Bağlantı Bütünlüğü Düzeltmeleri

  • 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)
v2.3.2

JSON Sihirbazı Yeniden Adlandırma & Takvim Görünürlük Düzeltmesi

  • İç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
v2.3.1

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
v2.3.0

Güvenilirlik, Güvenlik ve Kesintisiz Dağıtım

  • İ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
  • 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
v2.2.0

İki Adımlı Doğrulama, Akıllı Bülten ve Müşteri Güncelleme Kanalı

  • 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
  • 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.txt iç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
v2.1.3

Güvenlik Sıkılaştırma ve Güncelleme Bütünlüğü

  • 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ık href/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
v2.1.2

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
v2.1.1

Temiz İçerik Render: Markdown, Kod Blokları ve Kodlama

  • 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/bash satı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ı
v2.1.0

Güvenilir Tema Değiştirme, 17 Otomatik Paylaşım Ağı ve Tam Genişlik Admin

  • 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
  • Kritik: Tema Değiştirme Çalışmıyordusettings.key tekil 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ı
v2.0.1

Akıllı Yeni Nesil CMS — Admin UI Yenileme, Sağlam Slug Üretimi ve Otomatik Kayıt

  • 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 Önizlemepreview.php?token=XXX — 48 karakter hex token post_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_to iç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
  • Kritik: Türkçe Slug Bugmb_strtolower() Türkçe İ (U+0130) karakterini iki codepoint'e dönüştürüp transliterasyon map'ini bozuyordu, artakalan bytelar hyphen oluyordu. Yeni slugify() lowercase'den ÖNCE kapsamlı map'le strtr çalıştırır (Türkçe + Latin extended). Tüm sitelerde 866 bozuk slug düzeltildi
  • Sidebar Çizgi Bug.sidebar-brand 56px iken --header-height: 60px idi, 4px kayma yatay çizgi artefaktı oluşturuyordu. Artık var(--header-height) kullanılıyor
  • profile.php 90s Buton.avatar-actions .btn-sm'e border-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 Regresyonulogo-yatay.svg eski test logosuydu. Sidebar'da logo-dikey.svg + inline SVG ile değiştirildi (admin login ile aynı)
  • Lisans Sayfası Marka — Sahte mavi [J] SVG monogramı gerçek logo-dikey.svg ile değiştirildi. Hardcoded #28a745 renkler 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)
v1.5.3

Otomatik Ayar Seed, Core Web Vitals, Güncelleme Sistemi ve SEO Güçlendirme

  • Otomatik Ayar Seedensure_default_settings() ilk sayfa yüklemesinde site_name ve site_alternate_name değ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.php oluş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 width ve height nitelikleri 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_VERSION parametresi eklendi
  • Güncelleme Sunucusu Bağlandıapi/updates/check.php artık statik yanıt yerine gerçek UpdateManager ile 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.com adresine "jekcms" bağlantı metniyle yönlendiriyor
  • Pazarlama Sitesi SEO — Gerçek favicon URL'si (SVG), application-name meta etiketi, theme-color, WebSite şeması alternateName eklendi. Dekoratif metin CSS'e taşınarak Google sitelink kirliliği önlendi
  • 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ığıyla noindex, follow alıyor
  • Markdown # Başlık artı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.sql silindi — otomatik ensure_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.svg ile 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)
v1.5.2

Derin SEO Denetimi — Schema, OG Görsel, Core Web Vitals ve Erişilebilirlik

  • BlogPosting author şemasında url özelliği eksikti — Google 2023'ten beri yazar URL'si zorunlu kılıyor. Tüm sitelerde author.url eklendi
  • 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:width ve og:image:height meta 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 olanlara width/height de 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 dinamik get_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
v1.5.1

SEO Denetimi — Sayfalama, Sitemap Dili, Etiket Temizliği ve OG Locale

  • Sayfalama URL'lerinde çift sorgu dizesi hatası — get_canonical_url() ?page=N döndürdüğü için ?page=3?page=4 oluşuyordu. baseUrl'den page parametresi çıkarılarak düzeltildi
  • Schema $currentUrl sayfalanmış sayfalarda ?page=N eksikti — canonical ve schema URL'leri artık tutarlı
  • ?page=1 duplicate 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 sitelerde get_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:locale Türkçe sitelerde en_US olarak sabit kodlanmıştı — site dil ayarına göre tr_TR veya en_US dinamik 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
v1.5.0

Duplike Engelleme, Akıllı Küçük Görsel ve Yönetim Araçları

  • 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: true istek parametresi
  • Toplu yayın duplikeleri sessizce atlar, engellemek yerine skipped sayacı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ı eksikse image-proxy.php ile 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 draft ve ready ile birlikte queued durumunu 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
v1.4.5

Production Sağlamlaştırma — SEO Düzeltmeleri, Lisans Zorunluluğu ve Oturum Güvenliği

  • output_robots_meta() fonksiyonu — sayfa bazında robot yönergeleri (404 ve arama sayfaları için noindex, post seviyesinde geçersiz kılma)
  • init.php ve login.php'de lisans zorunluluğu — aktif lisans anahtarı yoksa license.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_hash doğ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ı
  • API yükleme yolunda çift uploads/uploads/ ön eki — uploadFromUrl() ve uploadFromBase64() 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, fbclid vb.) parse_url() ile temizlendi
  • Post kartı görsellerine eksik width/height nitelikleri 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
v1.4.0

SEO Yenilemesi, İçerik Optimizasyonu, Breadcrumb ve İçindekiler Tablosu

  • 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 BreadcrumbList iş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_name ve 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.php yardımcı betiği
  • Etkilenen sitelerde robots.txt dosyalarında çözümlenmemiş {{SITE_DOMAIN}} yer tutucuları vardı
  • hobirehber şema fonksiyonu output_hobirehber_schema() yerine output_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_image sü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)
v1.3.1

Kritik SEO Düzeltmesi, Çoklu Site Şablonu ve Dokümantasyon

  • 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ı
  • Kritik: Production sitelerde tüm Google indekslemeyi yanlışlıkla engelleyen X-Robots-Tag: noindex HTTP 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 attempts sayacı 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.php sı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
v1.3.0

E-Ticaret, Müşteri Portalı, Lisans Sistemi ve Çok Dilli Motor

  • 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ı Translator sı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.txt Allow: /*?page=
  • CLS önleme için otomatik width/height nitelikleriyle responsive görsel srcset oluşturma
  • HiDPI/Retina ekranlar için Gravatar 2x görüntüleme
  • 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
v1.2.1

Yönetim Paneli İngilizce Çevirisi ve Arayüz İyileştirmesi

  • 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ı
  • 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ış
v1.2.0

Eklenti Mimarisi, Bülten Sistemi ve Reklam Modülü

  • 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
v1.1.0

Ortam Sistemi, SEO Araçları ve Performans Altyapısı

  • 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.xml ve sitemap-categories.xml ile sitemap.xml indeksi
  • Schema.org otomatik algılama: sayfa türüne göre Article, BlogPosting, WebPage ve WebSite yapılandırılmış veri enjeksiyonu
  • post_views tablosuyla post görüntülenme takibi — bot filtrelemeli, IP ile tekilleştirilmiş, "Popüler Yazılar" widget'ları için kullanılır
  • post_votes tablosuyla 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/nofollow ayarlarıyla gelişmiş robots meta 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
v1.0.0

İlk Sürüm — Blog CMS Temeli

  • 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.xml adresinde 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ı
  • .htaccess yeniden 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

Yeniliklerden ilk sen haberdar ol

Yeni özellikler, sürüm notları ve CMS rehberleri — ayda birkaç e-posta, spam yok.