Özel Mesajlar

Özel mesajlar (PM), üyeler arası mesajlaşma sistemidir. Görünümün tamamı pm.tpl şablonundan gelir.

Kimler kullanabilir?

DLE 21.0'te mesajlaşma üye grubu iznine bağlıdır. İlgili alanlar:

İzin / ayarNerede?Anlamı
allow_pmÜye gruplarıBu grup özel mesaj kullanabilir mi?
max_pmÜye gruplarıSaklanabilecek toplam mesaj/link limiti
max_pm_dayÜye gruplarıGünlük gönderim limiti
!
$config['allow_pm'] diye bir ayar YOKTUR Bazı kaynaklarda geçer ama DLE 21.0 kodunda bulunmaz. Mesajlaşma izni grup bazındadır; Sistem Ayarları'nda genel bir açma/kapama anahtarı arayıp zaman kaybetmeyin.

pm.tpl etiketleri

Şablon üç ana ekrandan oluşur: gelen kutusu (liste), yeni mesaj ve mesaj okuma. Etiketler bu ekranlara göre gruplanmıştır.

Genel / gezinme

Etiket / blokİçeriği
[inbox]…[/inbox]Gelen kutusu sekmesi
[new_pm]…[/new_pm]Yeni mesaj sekmesi
{pm-limit}Mesaj limiti
{proc-pm-limit}Limitin yüzdelik kullanımı
{pm-progress-bar}Limit doluluk çubuğu
✕
Alt çizgi ile tire farklı etiketlerdir pm.tpl içindeki sekme etiketleri alt çizgili: [new_pm]. Üst paneldeki okunmamış mesaj etiketi ise tireli: [new-pm] / {new-pm}. İkisi ayrı şeylerdir; birini diğerinin yerine yazarsanız çalışmaz.

Mesaj listesi

Etiket / blokİçeriği
[pmlist]…[/pmlist]Liste sarmalayıcı
{pmlist}Konuşmaların HTML listesi

Yeni mesaj ekranı

Etiket / blokİçeriği
[newpm]…[/newpm]Yeni mesaj formu
{author}Alıcı kullanıcı adı
{subj}Konu alanı
{editor}Mesaj yazma alanı
[question], [sec_code], [recaptcha]Güvenlik sorusu / captcha

Mesaj okuma ekranı

Etiket / blokİçeriği
[readpm]…[/readpm]Okuma ekranı
{subj}Konu başlığı
[not-self-dialog]…[/not-self-dialog]Kendi kendine yazılan konuşma değilse
{user-dialog}Karşı tarafın kullanıcı adı
[messages]…[/messages]Mesaj döngüsü
[pm-author] / [not-pm-author]Mesajın sahibi mi?

[messages] döngüsü içinde kullanılabilecek etiketler:

Etiket / blokİçeriği
{id}Mesaj ID
{foto}Gönderenin fotoğrafı
{author}Gönderen
{date}Gönderim tarihi
{group-name}Gönderenin grubu
{text}Mesaj metni
{signature}, [signature]İmza
[online] / [offline]Gönderen çevrimiçi mi?
[reply]Yanıtla bağlantısı
[pm-edit]Düzenle bağlantısı
[ignore]Engelle bağlantısı
[del]Sil bağlantısı
[complaint]Şikâyet bağlantısı (kendi mesajınızda görünmez)
✕
İnternette geçen bazı etiketler YOKTUR {pm-list}, {message-id} ve {pm-text} diye şablon etiketleri bulunmaz. Gerçek karşılıkları: liste için [pmlist] + {pmlist}, mesaj metni için {text}, ID için {id}.

Üye panelindeki sayaçlar

Üst panelde (üye bilgi alanı) mesaj durumunu göstermek için şu etiketler kullanılır:

Etiket / blokİçeriği
{new-pm}, [new-pm]…[/new-pm]Okunmamış mesaj bilgisi (varsa göster)
{all-pm}Toplam mesaj sayısı

Veritabanı şeması

i
Mesaj sistemi DLE 17.3'te yenilendi Eski tek tablo (_pm) kaldırıldı. Artık konuşma tabanlı bir şema kullanılıyor. Eski bir kaynaktan kopyalanmış PREFIX._pm sorguları çalışmaz.
TabloNe tutar?
USERPREFIX._conversationsKonuşmalar (konu, son güncelleme)
USERPREFIX._conversation_usersKonuşmanın katılımcıları
USERPREFIX._conversations_messagesMesajların kendisi
USERPREFIX._conversation_readsKimin ne zaman okuduğu
USERPREFIX._ignore_listEngelleme listesi

Üye başına toplam ve okunmamış sayıları performans için USERPREFIX._users.pm_all ve pm_unread sütunlarında önceden hesaplanıp saklanır.

AJAX işlemleri

actionNe yapar?
send_pmYeni mesaj gönderir (captcha, spam denetimi, engel listesi ve limit kontrolünden geçer)
show_sendHızlı gönderim penceresini döndürür
editDüzenleme formunu döndürür
save_edit_pmDüzenlemeyi kaydeder (karşı taraf okuduysa engellenir)
del_pmMesajı siler
(action yok)Mesaj önizlemesi

Tüm istekler user_hash ile denetlenir. Eksik veya yanlış anahtar "güvenlik kodu geçersiz" hatası döndürür.

Kontrol listesi

  • İlgili üye gruplarında allow_pm izni açık.
  • max_pm ve max_pm_day limitleri gruba uygun.
  • pm.tpl içinde [inbox], [new_pm], [pmlist], [newpm], [readpm], [messages] bloklarının hepsi duruyor.
  • Üst panelde {new-pm} (tireli) ile pm.tpl'deki [new_pm] (alt çizgili) karıştırılmadı.
  • Captcha/güvenlik sorusu ayarları grup için tutarlı.

Sırada: SEF Adresler.