Site İçeriği Kancaları
Sayfalar, haberler, slaytlar, müşteri yorumları ve menünün on iki kancası.
Genel Bakış
Sitenin yazılı içeriği burada: sayfalar, sözleşmeler, haberler, makaleler, referanslar, slaytlar, müşteri yorumları ve menü.
Kaydetme yolu iki filtreye ayrılır: ana kayıt bir kez, dil verisi her dil için ayrı geçer. Gövdeyi temizleyecekseniz ikincisi doğru yerdir.
Referans
İçerik silmeyi durdurma
Bir site içeriği silinmeden önce çalışır. Sayfa, sözleşme, haber, makale ve referans aynı kapıdan geçer.
Hook::add('gate:client.content_delete', 10, function ($page, $page_type) {
// Sozlesme silmek siparis akisini etkileyebilir.
if ($page_type === 'contract') return 'Sozlesmeler silinemez, pasife alin.';
return null;
});İçerik silinmesini izleme
Site içeriği silindikten sonra çalışır.
Hook::add('action:client.content.deleted', 10, function ($id, $page_type, $page) {
Acme::dropFromIndex('page', $id);
});İçeriğin görüntülenmesini izleme
Bir site içeriği ziyaret edildiğinde çalışır. Ziyaretçi giriş yapmamış olabilir.
Hook::add('action:client.content.viewed', 10, function ($id, $type, $record) {
// Her ziyarette calisir: hafif tutun.
Acme::trackView($type, $id);
});İçerik detay verisini değiştirme
İçerik ekrana gitmeden önce çalışır. Kendi kısa kodlarınızı çözmenin ya da arama başlıklarını değiştirmenin yeri.
Hook::add('filter:client.content_detail.data', 10, function (&$record, &$id, &$type) {
if ($type !== 'articles') return;
$record['content'] = Acme::resolveShortcodes($record['content'] ?? '');
});Kaydedilecek içerik verisini değiştirme
İçeriğin ana kaydı yazılmadan önce çalışır.
Hook::add('filter:client.content_save_data', 10, function (&$set_data, $page_type, $id) {
// Ayarlar METIN: coz, duzenle, yeniden kodla.
$opt = Utility::jdecode($set_data['options'] ?? '', true) ?: [];
$opt['acme_reviewed'] = 1;
$set_data['options'] = Utility::jencode($opt);
});Dil verisini kaydetmeden değiştirme
İçeriğin her dili için ayrı çalışır. Gövde ham işaretleme olduğu için temizlemenin en doğru yeri burasıdır.
Hook::add('filter:client.content_lang_data', 10,
function (&$set_lang_data, $lkey, $page_type) {
// Govde ham isaretleme: temizligin dogru yeri burasi.
$set_lang_data['content'] = Acme::sanitize($set_lang_data['content'] ?? '');
});Sayfa kaydını izleme
Bir sayfa kaydedildikten sonra çalışır.
Hook::add('action:client.page_saved', 10, function ($id, $page_type, $is_new) {
Acme::reindex('page', $id);
});Blog kaydı kaydını izleme
Bir blog kaydı kaydedildikten sonra çalışır.
Hook::add('action:client.blog.saved', 10, function ($id, $is_new) {
Acme::reindex('page', $id);
});Haber kaydını izleme
Bir haber kaydedildikten sonra çalışır.
Hook::add('action:client.news.saved', 10, function ($id, $is_new) {
Acme::reindex('page', $id);
});Slayt kaydını izleme
Bir slayt kaydedildikten sonra çalışır.
Hook::add('action:client.slide.saved', 10, function ($id, $is_new) {
Acme::reindex('page', $id);
});Müşteri yorumunun kaydını izleme
Site üzerindeki müşteri yorumu kaydedildikten sonra çalışır.
Hook::add('action:client.feedback.saved', 10, function ($id, $status, $is_new) {
// Onay bekleyen yorum sitede gorunmez.
if ($status === 'approved') Acme::publishTestimonial($id);
});Menü değişikliklerini kaydetmeden değiştirme
Site menüsündeki değişiklikler uygulanmadan önce çalışır.
Hook::add('filter:client.menu_save_changes', 10, function (&$changes) {
// Yigin: ekleme, duzenleme, silme ve siralama bir arada olabilir.
$changes = array_values(array_filter($changes,
fn ($c) => ($c['type'] ?? '') !== 'delete' || Acme::menuDeletable($c['data'] ?? [])));
});Tuzaklar
İçerik kaydetme filtresinde ayarlar alanı kodlanmış metin olarak gelir. Ona diziymiş gibi bir anahtar yazmak alanı bozar ve kayıt okunamaz hâle gelir. Doğrusu: çöz, düzenle, yeniden kodla.
Dil verisi filtresi dil başına çağrılır: üç dilli bir kayıtta üç kez. Sayaç tutan ya da tek seferlik iş yapan bir dinleyici burada üç kez çalışır. Tek seferlik iş için ana kayıt filtresini kullanın.
İ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.