Sistem Olayı Kancaları

1.6k görüntülenme Markdown

Kurulumun kendisine ait on kanca: eklentiler, duyurular, içe aktarma, görevler, sürümler, site haritası ve sertifikalar.

Genel Bakış

Bu kancalar müşteriyle değil kurulumun kendisiyle ilgilenir: hangi eklenti kuruldu, hangi duyuru yayımlandı, hangi aktarım bitti, yeni sürüm çıktı mı.

Üçü dışarıya bakar: site haritası arama motorlarına, sertifika taraması uyarı sistemine, lisans devri sayfası tarafların ekranına.

Referans

Eklenti kurulumunu izleme

actionaddon.installed
AdminModules kurulum sonrası

Bir eklenti paketi kurulduktan sonra çalışır. Kurulmuş olması etkin olduğu anlamına gelmez.

Parametreler 2
$modulestringKurulan eklentinin anahtarı.
$activatedboolKurulum sırasında etkinleştirildi mi. Yanlışsa eklenti diskte durur ama çalışmaz.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:addon.installed', 10, function ($module, $activated) {
    // Kurulmus olmasi etkin oldugu anlamina gelmez.
    if ($activated) Acme::onEnabled($module);
});

Eklenti durumunun değişmesini izleme

actionaddon.status_changed
AdminModules iki değerden biri

Bir eklenti açıldığında ya da kapatıldığında çalışır.

Parametreler 2
$keystringEklentinin anahtarı.
$statusstringYeni durum: enable ya da disable.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:addon.status_changed', 10, function ($key, $status) {
    if ($status === 'disable') Acme::pauseIntegration($key);
});

Eklenti silinmesini izleme

actionaddon.deleted
AdminModules silme sonrası

Bir eklenti kaldırıldıktan sonra çalışır.

Parametreler 1
$modulestringSilinen eklentinin anahtarı.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:addon.deleted', 10, function ($module) {
    Acme::cleanupIntegration($module);
});

Duyuru kaydını izleme

actionannouncement.saved
AdminAnnouncements ekleme ve düzenleme

Bir duyuru kaydedildikten sonra çalışır.

Parametreler 3
$savedIdintDuyurunun kimliği.
$dataarrayKaydedilen veri: başlığı, iletisi, tipi, hedef ülke ve dili, ürün grubu, sunucusu, tarih aralığı ve durumu.
$isNewboolDoğruysa yeni eklendi, yanlışsa güncellendi.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:announcement.saved', 10, function ($savedId, $data, $isNew) {
    // Yalniz yeni duyuruyu dis kanala tasiyin.
    if ($isNew) Acme::broadcast($data['title'] ?? '', $data['message'] ?? '');
});

İçe aktarmanın bitmesini izleme

actionimport.completed
Imports tip başına

Başka bir sistemden veri aktarımı bittiğinde çalışır. Veri tipi başına çalışır: müşteriler, ürünler ve faturalar ayrı ayrı biter.

Parametreler 3
$platformstringAktarımın yapıldığı platform.
$typestringAktarılan veri tipi.
$resultarrayAktarımın sonucu: ilerleme, sayaçlar ve durum.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:import.completed', 10, function ($platform, $type, $result) {
    // Tip basina calisir: 'her sey bitti' anlamina gelmez.
    Acme::noteImport($platform, $type, $result);
});

Görev kaydını izleme

actiontask.saved
AdminTasks ekleme ve düzenleme

Panel içindeki bir görev kaydedildiğinde çalışır.

Parametreler 2
$idintGörevin kimliği.
$is_newboolDoğruysa yeni oluşturuldu.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:task.saved', 10, function ($id, $is_new) {
    if ($is_new) Acme::mirrorTask($id);
});

Yeni sürüm bildirimini izleme

actionupdates.new_version_detected
Updates yalnız bildirim

Yeni bir çekirdek sürümü görüldüğünde çalışır. Yükseltme yapılmaz: bu yalnız bir haberdir.

Parametreler 2
$responsearrayYeni sürümün bilgisi: numarası, tipi ve değişiklik listesi.
$current_versionstringKurulu olan sürüm.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:updates.new_version_detected', 10, function ($response, $current_version) {
    // Yukseltme yapilmaz, yalnizca haber verilir.
    Acme::notifyOps('yeni surum: ' . ($response['version'] ?? '?'));
});

Site haritasına adres ekleme

filtersitemap.links
Sitemap dil başına

Site haritası üretilirken çalışır. Kendi sayfalarınızı arama motorlarına buradan bildirirsiniz.

Parametreler 2
$linksarraybağlaTam adres listesi. Ekleme ve çıkarma serbesttir. Boş elemanlar ve tekrarlar çıktı üretilirken temizlenir; sıra korunur.
$ctxarraybağlaBağlam: bu haritanın dili ve aktif temanın karşılamadığı adres anahtarları. Kanca her dil için ayrı çalışır: adresinizi o dile göre üretin.
Dönüş 1
voidDönüş yoksayılır; listeye ekleme yaparsınız.
Dinleyici
Hook::add('filter:sitemap.links', 10, function (&$links, &$ctx) {
    // Kanca her dil icin ayri calisir.
    foreach (Acme::publicPages($ctx['lang'] ?? '') as $url) $links[] = $url;
});

Süresi dolan sertifikaları bildirme

filterssl.expiring_services
cronjobs katkı döndürür

Süresi yaklaşan sertifikalar taranırken çalışır. Çekirdeğin bilmediği sertifikaları buradan listeye katarsınız.

Parametreler 1
$maxDaysintUyarı penceresi: kaç gün kala haber verileceği.
Dönüş 1
array|nullKendi katkınızı döndürürsünüz: süresi yaklaşan hizmetlerin listesi, her biri kalan gün bilgisiyle. Çekirdek bütün dönüşleri birleştirir; listenin tamamını değil yalnız kendi payınızı döndürün.
Dinleyici
Hook::add('filter:ssl.expiring_services', 10, function ($maxDays) {
    // Yalniz KENDI payinizi dondurun: cekirdek hepsini birlestirir.
    return Acme::expiringCerts($maxDays);
});

Devir doğrulama sayfasını zenginleştirme

filterlicense.transfer.verify_context
LicenseTransfer bağla geçer

Lisans devri doğrulama sayfası görünürken çalışır. Sayfaya kendi bilginizi buradan eklersiniz.

Parametreler 1
$ctxarraybağlaSayfanın bağlamı: devrin durumu, kaydı, hizmet, devreden ve devralan taraflar.
Dönüş 1
voidDönüş yoksayılır; bağlamın üzerine yazarsınız.
Dinleyici
Hook::add('filter:license.transfer.verify_context', 10, function (&$ctx) {
    $ctx['acme_note'] = Acme::transferNote((int) ($ctx['transfer']['id'] ?? 0));
});

Tuzaklar

İçe aktarma tip başına biter

Aktarım olayı her veri tipi için ayrı çalışır: müşteriler biter, sonra ürünler, sonra faturalar. Bir çağrıyı “aktarımın tamamı bitti” diye okumak, yarım veriyle işlem başlatmaya yol açar.

Sertifika kancası katkı ister, liste değil

Süre taramasında kendi payınızı döndürürsünüz. Çekirdek bütün dönüşleri birleştirir; listenin tamamını döndürmek kayıtları çoğaltır.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.