CPalius Forum modülü, çekirdeğin Node modelini kopyalamaz. Konu, mesaj, bölüm ve izinler kendi entity’lerinde yaşar; Studio’daki Forum masası da AACP’den ayrı durur. Amaç, WordPress tarzı “her şey yazı olsun” yaklaşımı değil, gerçek bir topluluk yazılımını CMF’ye birinci sınıf paket olarak yerleştirmektir.
Bölüm ağacı ve locale
Forum bölümleri division, category ve subcategory olarak katmanlanır. Her bölüm bir locale taşır; Türkçe ve İngilizce ağaçlar translation_group_id ile eşlenir. Böylece /tr/forum ile /en/forum aynı ürünü anlatır ama slugs, başlıklar ve son mesaj önizlemeleri dile göre ayrı kalır.
Konu, mesaj ve denormalizasyon
Bir konuda first_post_id, last_post_id, post_count ve last_poster_name tutulur. Bu alanlar “her listede JOIN” maliyetini keser. Beğeni, bildirim, okundu işareti, taslak, anket ve ek dosyalar ayrı tablolardadır; çekirdek Node JSON’una sıkıştırılmaz.
Moderasyon ve yetenekler
Kilit, birleştirme, taşıma ve satır içi işlemler ForumModerationService üzerinden yürür. Kod ROLE_ADMIN kontrol etmez; forum.moderate, forum.post.create gibi capability’ler capabilities.yaml ve voter ile çözülür. Ban guard, kötü niyetli isteği konu sayfasına gelmeden keser.
Portal ve arama
ForumPortalBlockDataProvider ana sayfaya son konuları basar. ForumSearchProvider site aramasına konu ve mesaj katar. contributions.yaml bu bağları tarif eder; çekirdeğe özel if bloğu yazılmaz.
Yedi aydır Forum, CPalius’un “modül ne kadar ileri gidebilir?” sorusunun cevabı oldu. Canlı sitede gördüğünüz bölümler, anketler ve masalar bu paketin kendisidir.
Yorumlar (0)
Henüz yorum yok. İlk yorumu sen yaz.
Yorum yaz
Yorumunuz yayınlanmadan önce incelenecektir.