Blog ve Yorum Kancaları
Blog yorumlarının yedi kancası: moderasyon, düzenleme, silme, oy ve liste.
Genel Bakış
Blog yorumlarının yolu burada: yazılır, süzgeçten geçer, listelenir, moderasyondan geçer ve gerekirse silinir.
İki ayrım baştan bilinmeli. Misafir yorumunda yazar kimliği sıfırdır. Ve moderasyon kapısı size talebi, olay ise sonucu verir: sabitleme bir aç-kapa olduğu için ikisi aynı değildir.
Referans
Yorum moderasyonunu durdurma
Bir yoruma moderasyon uygulanmadan önce çalışır.
Hook::add('gate:client.blog_comment_moderate', 10,
function ($cid, $action, $actor_id, $author_id, $owner_id) {
// 'pin' bir AC-KAPA talebidir: sonucu buradan bilemezsiniz.
if ($action === 'spam' && Acme::protectedAuthor($author_id))
return 'Bu yazarin yorumu istenmeyen isaretlenemez.';
return null;
});Yorum moderasyonunu izleme
Moderasyon uygulandıktan sonra çalışır. Kapının aksine buradaki değer gerçekleşen işlemdir.
Hook::add('action:client.blog_comment_moderated', 10,
function ($cid, $action, $actor_id, $author_id, $owner_id) {
// Burada DORT deger var: sabitleme ikiye ayrilmis.
if ($action === 'approved' && $author_id) Acme::thankAuthor($author_id);
});Yorum düzenlemesini izleme
Bir yorum yönetici tarafından düzenlendikten sonra çalışır.
Hook::add('action:client.blog_comment_edited', 10,
function ($cid, $actor_id, $author_id, $old, $new) {
// Iki govde de KODLANMIS gelir.
Acme::auditEdit($cid, $actor_id, html_entity_decode($old), html_entity_decode($new));
});Yorum silinmesini izleme
Bir yorum silindikten sonra çalışır.
Hook::add('action:client.blog_comment_deleted', 10,
function ($cid, $actor_id, $author_id, $owner_id, $parent_id) {
// Kok yorumda yanitlar da gitti ama ayri cagri gelmez.
if ($parent_id === 0) Acme::dropBranch($cid);
else Acme::dropComment($cid);
});Yorum oyunu izleme
Bir yoruma faydalı oyu verildiğinde ya da geri alındığında çalışır.
Hook::add('action:client.blog_comment_voted', 10,
function ($cid, $viewer_id, $active, $count) {
if ($active && $count >= 10) Acme::promoteComment($cid);
});Yorum gövdesini kaydetmeden değiştirme
Yorum kaydedilmeden önce çalışır. Kendi süzgecinizi kurmanın yeri burasıdır.
Hook::add('filter:client.blog_comment_message', 10, function (&$message, &$ctx) {
// Govde HAM: kodlama sonra yapilir.
$message = Acme::stripLinks($message);
});Yorum listesini değiştirme
Yorumlar ekrana gitmeden önce çalışır. Yanıt listeleri için de ayrıca çalışır.
Hook::add('filter:client.blog_comment_list', 10, function (&$items, &$ctx) {
// Yonetici bakiyorsa onay bekleyenler de listede.
if ($ctx['is_admin'] ?? false) return;
$items = Acme::hideFlagged($items);
});Tuzaklar
Moderasyon kapısında sabitleme aç-kapa bir taleptir: sonucun sabitleme mi kaldırma mı olacağını oradan bilemezsiniz. Olay kancasında ise değer ikiye ayrılmış hâlde gelir. Kapıda sonuç varsayan bir kural, sabitlemeyi kaldıran işlemi yanlış değerlendirir.
Silme olayında üst kimlik sıfırsa bir kök yorum silinmiştir ve altındaki bütün yanıtlar onunla birlikte gitmiştir. Ama o yanıtlar için ayrı çağrı gelmez: kendi tarafınızda dalı bütün olarak temizlemeniz gerekir, yoksa öksüz kayıtlar kalır.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.