İçeriğe geç

CPalius CMF 1.1.2

Yayın: 2026-09-16 · Kanal: kararlı · Kritik: hayır

Bir dosya yaması. Üyelerin ve operatörlerin gerçekten karşılaştığı dört şey: düzenlenemeyen ve yanlış dilde giden e-postalar, kimseye haber verilmeden değiştirilebilen hesap bilgileri, hiç verilemeyen itibar, ve hiçbir zaman hata olmamış trafikle dolan hata kaydı.

E-postalar düzenlenebilir ve üyenin kendi dilinde gidiyor

AACP → Sistem → E-posta şablonları. Sitenin üyelere gönderdiği her e-posta artık düzenlenebiliyor; her etkin dil için ayrı bir kart var. AACP → Diller ekranından üçüncü bir dili açtığınızda burada üçüncü kart beliriyor — dil tanıtmanın ikinci bir yeri yok.

Dokuz e-posta kapsamda: e-posta doğrulama, hoş geldiniz, onay bekliyor, hesap onaylandı, aşağıdaki üç hesap değişikliği bildirimi, ve tekil bildirim ile bildirim özetinin dış zarfları.

Her üye bunların hepsini artık kayıt sırasında seçtiği dilde alıyor. Bu seçim zaten kaydediliyordu ama hiçbir yer onu geri okumuyordu; dolayısıyla dil, e-postayı tetikleyen isteğin diliydi. Bir hesabı onaylayan yönetici üyeye yöneticinin dilinde e-posta gönderiyordu, kuyruk işçisinden veya cron'dan çıkan her şey ise herkese kernel varsayılanıyla gidiyordu. İkisi de kaynağında düzeltildi.

Kayıt formu da artık sabit Türkçe/İngilizce ikilisini değil gerçekten etkin olan dilleri listeliyor, ve profil sayfasına "e-posta dili" alanı eklendi; üye daha sonra fikrini değiştirebiliyor.

Geri düşme zinciri

Bir e-posta şu sırayla çözülüyor: o dildeki sizin metniniz, sonra sitenin varsayılan dilindeki sizin metniniz, sonra sürümle gelen metin. Bir alanı boşaltmak ya da varsayılanla birebir aynı metni kaydetmek, kaydı saklamak yerine siliyor — böylece hiç dokunulmamış bir kurulum sürümle gelen metnin iyileştirmelerini almaya devam ediyor ve "düzenle, fikrini değiştir, geri al" hiç iz bırakmıyor.

Sizin yazdığınız metin hiçbir zaman çeviri biçimlendiricisinden geçmiyor. Aksi hâlde bir kutucuğa yanlışlıkla yazılmış tek bir { işareti, sonraki bütün kayıt e-postalarını e-posta yerine hataya çevirirdi.

E-posta ve kullanıcı adı değişikliği yönetici onayı istiyor

Şimdiye kadar profil formu ikisini de doğrudan hesaba yazıyordu. Bu sessiz bir hesap ele geçirme aracıdır: oturumu elinde tutan biri parola sıfırlamayı kendi adresine yönlendirebilir ya da başka bir üyenin bilinen kullanıcı adını alabilir, üstelik kimseye haber verilmeden.

Artık talep bekletiliyor. AACP → Kullanıcılar → Değişiklik talepleri ekranı ne istendiğini gösteriyor; siz onaylayana kadar hesapta hiçbir şey değişmiyor, üye eski bilgileriyle giriş yapmaya devam ediyor ve talebini kendisi geri çekebiliyor. Üyeye talep alındığında, onaylandığında ve reddedildiğinde e-posta gidiyor — onay bildirimi yeni adrese gidiyor; asıl mesele de bu: değişiklik onun işi değilse bunu orada öğreniyor.

Onay, talebin verildiği ana değil, düğmeye bastığınız ana göre yeniden doğrulanıyor. Geçen hafta boş olan bir adres bu hafta kapılmış olabilir.

Bunu istemeyen operatörler Ayarlar → Hesap → kayıt altından kapatabiliyor; varsayılan olarak açık.

İtibar artık konu seçmeyi gerektirmiyor

Konu seçici zorunluydu ve yalnızca alıcının yazdığı konuları listeliyordu; bu yüzden çoğu zaman boş kalıyor ve itibar hiç verilemiyordu.

Yerine isteğe bağlı bir bağlantı alanı geldi: itibarın konusu olan bağlantıyı yapıştırın ya da boş bırakın. Bu forumdaki bir konunun bağlantısı tanınıyor ve gerçek konuya bağlanmaya devam ediyor; böylece o konu yeniden adlandırılsa veya taşınsa bile kayıt çalışır kalıyor. Diğer her şey bağlantı olarak saklanıyor.

Daha sessiz, daha dürüst kayıtlar

  • 404 artık hata değil. /autodiscover/autodiscover.xml, /wp-login.php veya /.env yoklayan her tarayıcı panelin kayıt defterine bir ERROR satırı yazıyordu; çoğunluğu bot trafiği olan bir kayıt defteri de okunmaz oluyor. 404 ve 405 artık notice seviyesinde: eşiği düşüren hâlâ görüyor, ama artık uygulamanın hatası kılığında durmuyorlar.

  • Başka dildeki blog kategorisi 404 değil. Bir kategori adresi paylaşılırken ve dizine eklenirken dil öneki yolculuktan sağ çıkmıyor. İngilizce sitede görünen Türkçe bir slug artık çevirisi varsa oraya yönlendiriliyor, yoksa 404 statüsüyle arşiv sayfası gösteriliyor — tekil yazıların zaten hep yaptığı şey. Canlıdaki hata kaydının ikinci en büyük kaynağıydı.

Yükseltme notları

Yamayı uygulamak dışında yapılacak bir şey yok.

Bu yamanın bir veritabanı tablosuna (cp_mail_templates) ve bir kolona (forum_user_reputations.topic_url) ihtiyacı var; yama ise migration çalıştıramaz. Bu yüzden ikisi de gerektiği ilk anda kodun kendisi tarafından, bir kez oluşturuluyor. Migration'lar taze kurulum yolu için duruyor ve iki taraf da ikinci çalışanın hiçbir şey yapmayacağı şekilde yazıldı.

Veritabanı kullanıcınızın DDL yetkisi yoksa hiçbir şey bozulmuyor: e-postalar eskisi gibi sürümle gelen metne düşüyor, ve AACP → Güncellemeler → Uygula ikisini de düzgün biçimde oluşturuyor.

Bilinen kısıtlar

  • Tekil olaylara ait bildirim e-postaları dile göre gidiyor, ancak bir modülün gönderdiği olay gövdesi şablonları hâlâ Twig dosyası; e-posta şablonu ekranında görünmüyorlar. Yalnızca etraflarındaki zarf düzenlenebiliyor.
  • latest.json hâlâ 1.1.1 paketini gösteriyor. Bu sürüm bir yama, yeni bir tam paket değil; 1.1.1'den eski kurulumlar önce 1.1.1 sürümünü, ardından bu yamayı almalı.
Son güncelleme: 13.10.2026