Panel Ekran Verisi Kancaları

1.6k görüntülenme Markdown

Müşteri, hizmet ve araç ekranlarının gösterdiklerinin on üç kancası.

Genel Bakış

Panel ekranlarının gösterdiği veriyi değiştiren kancalar burada: müşteri detayı ve listesi, hizmet yönetim kartları, eklenti butonları, kritik bildirimler ve tema sürüm sorgusu.

İkisi diğerlerinden farklıdır: profil sekmeleri ve güvenlik akordiyonu size dizi değil bileşen nesnesi verir; ekleme metot çağrısıyla yapılır.

Referans

Müşteri ek bilgisini değiştirme

filteradmin.client_detail.info
admin/users bağla geçer

Müşteri detay sayfasının ek bilgi alanları okunduktan sonra çalışır.

Parametreler 2
$client_infoarraybağlaEk bilgi çiftleri. Var olan anahtarları ezebilir ya da yenisini ekleyebilirsiniz.
$user_idintMüşterinin kimliği.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.client_detail.info', 10, function (&$client_info, $user_id) {
    $client_info['acme_tier'] = Acme::tierOf($user_id);
});

Müşteri profiline alt sekme ekleme

filteradmin.client_detail.profile_subtabs
admin/users bileşen nesnesi

Müşteri profilinin dikey sekmeleri kurulurken çalışır. Kendi sekmenizi buradan eklersiniz.

Parametreler 3
$profileTabobjectbağlaSekme bileşeni. Dizi değil nesnedir: sekmeyi diziye eleman ekleyerek değil, nesnenin ekleme metodunu çağırarak koyarsınız.
$userarrayAktif müşteri kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
voidDönüş yoksayılır; değişiklik nesnenin metodunu çağırmakla olur.
Dinleyici
Hook::add('filter:admin.client_detail.profile_subtabs', 10,
    function (&$profileTab, $user, $user_id) {
        // Dizi degil nesne: metodunu cagirin.
        $profileTab->add('acme', 'Acme', Acme::renderPanel($user_id));
    });

Güvenlik bölümüne kısım ekleme

filteradmin.client_detail.security_accordion
admin/users bileşen nesnesi

Müşterinin güvenlik ayarları akordiyonu kurulurken çalışır.

Parametreler 3
$secAccordionobjectbağlaAkordiyon bileşeni; ekleme metoduyla kısım koyarsınız.
$client_infoarrayMüşterinin ek bilgileri.
$user_idintMüşterinin kimliği.
Dönüş 1
voidDönüş yoksayılır; değişiklik nesne üzerinden yapılır.
Dinleyici
Hook::add('filter:admin.client_detail.security_accordion', 10,
    function (&$secAccordion, $client_info, $user_id) {
        $secAccordion->add('acme-sessions', 'Acme oturumlari', Acme::sessions($user_id));
    });

Müşteri istatistiklerini değiştirme

filteradmin.client_detail.statistics
admin/users bağla geçer

Müşteri sayfasındaki sayaçlar hesaplandıktan sonra çalışır.

Parametreler 2
$user_statsarraybağlaİstatistikler: etkin ve pasif hizmet, fatura ve talep sayıları.
$user_idintMüşterinin kimliği.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.client_detail.statistics', 10, function (&$user_stats, $user_id) {
    $user_stats['acme_open_cases'] = Acme::openCases($user_id);
});

Müşteri listesi filtrelerini değiştirme

filteradmin.client_list.filters
admin/users model desteği şart

Müşteri listesinin filtre ölçütleri kurulduktan sonra çalışır.

Parametreler 1
$dynamic_filterarraybağlaFiltre ölçütleri: grup, durum, dil, ülke, adres ve tarih. ? Eklediğiniz yeni anahtarın listeleme sorgusunda da karşılığı olmalıdır; yoksa filtre görünür ama hiçbir şeyi daraltmaz.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.client_list.filters', 10, function (&$dynamic_filter) {
    // Yeni anahtarin listeleme sorgusunda karsiligi olmali.
    $dynamic_filter['acme_tier'] = Acme::tierFilterValue();
});

Hizmet yönetim kartlarını değiştirme

filteradmin.service_detail.management_cards
admin/services iki liste birlikte

Hizmet detayındaki yönetim kartları hazırlandıktan sonra çalışır. Kendi kartınızı ekleyebilir, var olanı gizleyebilir ya da sırasını değiştirebilirsiniz.

Parametreler 1
$contextarraybağlaİki liste bir arada: cards kart içerikleri, layout hangi kartın hangi sütunda ve hangi sırada görüneceği. ? İkisini birlikte güncelleyin: yerleşimde adı geçmeyen kart görünmez, karşılığı olmayan yerleşim anahtarı sessizce atlanır.
Dönüş 1
voidDönüş yoksayılır; bağlamın üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.service_detail.management_cards', 10, function (&$context) {
    // IKISINI birlikte guncelleyin: kart ve yerlesim.
    $context['cards']['acme'] = Acme::renderCard($context['service'] ?? []);
    $context['layout']['right'][] = 'acme';
});

Eklenti ayar butonlarını değiştirme

filteradmin.addon_configure.buttons
admin/tools boşaltmak hepsini siler

Eklenti ayar sayfasının butonları hazırlandıktan sonra çalışır.

Parametreler 1
$buttonsarraybağlaButon haritası; her biri metnini, sınıfını, simgesini ve tıklama işlemini taşır. Diziyi tamamen boşaltırsanız hiç buton görünmez.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.addon_configure.buttons', 10, function (&$buttons) {
    // Tamamen bosaltmak hic buton birakmaz.
    $buttons['acme-sync'] = [
        'text'    => 'Acme esitle',
        'class'   => 'btn btn-outline-primary',
        'icon'    => 'bi bi-arrow-repeat',
        'onclick' => 'acmeSync()',
    ];
});

Yüklenen görselin adresini değiştirme

filteradmin.editor_upload_url
admin/tools bağla geçer

Metin düzenleyiciye yüklenen görselin adresi üretildikten sonra çalışır. Görselleri bir dağıtım ağına taşımanın yolu budur.

Parametreler 2
$urlstringbağlaÜretilen adres. Dokunmazsanız yerel adres kalır.
$file_pathstringDosyanın sunucudaki tam yolu.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.editor_upload_url', 10, function (&$url, $file_path) {
    $url = Acme::pushToCdn($file_path) ?: $url;
});

Görsel yüklemesini izleme

actionadmin.editor_image_uploaded
admin/tools adres filtreden sonra

Metin düzenleyiciye bir görsel yüklendikten sonra çalışır.

Parametreler 2
$file_pathstringDosyanın sunucudaki tam yolu.
$urlstringNihai adres; adres filtresi çalıştıktan sonraki hâlidir.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:admin.editor_image_uploaded', 10, function ($file_path, $url) {
    // Adres filtre SONRASI halidir.
    Acme::noteAsset($file_path, $url);
});

Kritik bildirim listesine ekleme

filteradmin.notifications.critical
admin/inc sabit öğe şekli

Panel başlığındaki kritik bildirim listesi hazırlandıktan sonra çalışır.

Parametreler 1
$critical_transaction_notificationsarraybağlaBildirim öğeleri. Her öğe şablonun beklediği alanları taşımalıdır: kimliği, simgesi, tipi, iletisi, tarihi, okunma durumu ve butonları. Eksik alanlı bir öğe ekranı bozar.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.notifications.critical', 10, function (&$critical_transaction_notifications) {
    // Sablonun bekledigi butun alanlari doldurun.
    foreach (Acme::criticalAlerts() as $a) $critical_transaction_notifications[] = $a;
});

Panel bildirimini izleme

actionadmin.notified
Notification sıfır = yazılmadı

Panele bir sistem bildirimi düştüğünde çalışır.

Parametreler 4
$namestringOlayın adı.
$dataarrayOlayın verisi: ileti yer tutucuları ve tekrar denetimi için kullanılan bilgi.
$levelstringSeviye: hata, uyarı, bilgi ya da başarı.
$event_idintOluşan kaydın kimliği. Sıfır ise kayıt yazılmamıştır: ya aynı bildirim zaten vardı ya da yazma başarısız oldu. Kimliği kullanmadan önce sınayın.
Dönüş 1
voidDönüş yoksayılır.
Dinleyici
Hook::add('action:admin.notified', 10, function ($name, $data, $level, $event_id) {
    // Sifir = kayit yazilmadi.
    if ($level === 'error' && $event_id) Acme::page($name, $data);
});

Tema sürüm sorgusunu devralma

filteradmin.theme_version_check
admin/settings ilk dolu kazanır

Bir temanın yeni sürümü sorulmadan önce çalışır. Yanıt döndürürseniz uzak çağrı hiç yapılmaz.

Parametreler 2
$keystringTema klasörünün anahtarı.
$manifestarrayTemanın tanıtım verisi: güncelleme adresi ve kurulu sürümü.
Dönüş 1
string|nullDolu bir metin uzak sunucunun ham yanıtı sayılır ve çağrı atlanır. Öncelik sırasına göre ilk dolu dönüş kazanır, kalanlar hiç çalışmaz. Boş dönüşte çekirdek normal isteğini atar.
Dinleyici
Hook::add('filter:admin.theme_version_check', 10, function ($key, $manifest) {
    // Dolu donerseniz uzak cagri HIC yapilmaz.
    if (!str_starts_with($key, 'Acme')) return null;

    return Acme::versionJson($key);
});

Tema sürüm yanıtını düzenleme

filteradmin.theme_version_response
admin/settings ham yanıt

Sürüm yanıtı alındıktan sonra, çözülmeden önce çalışır. Kardeşi kaynağı seçer, bu kanca gelen yanıtı düzenler.

Parametreler 2
$keystringbağlaTema anahtarı. Bağla geçer ama tüketilmiştir: değiştirmenin etkisi yoktur.
$manifestarraybağlaTema tanıtım verisi; bu da tüketilmiştir.
Dönüş 1
voidDönüş yoksayılır; ham yanıtın üzerine yazarsınız. Çekirdek sonra onu çözer; sürüm alanı yoksa sonuç boş sayılır.
Dinleyici
Hook::add('filter:admin.theme_version_response', 10, function (&$key, &$manifest) {
    // Iki parametre de tuketilmis: degistirmenin etkisi yok.
    Acme::noteVersionCheck($key);
});

Tuzaklar

Kart eklemek iki listeyi birden ister

Hizmet yönetim kartlarında içerik bir listede, yerleşim başka bir listede durur. Yalnız içeriği eklerseniz kart hiç görünmez; yalnız yerleşime ad yazarsanız o ad sessizce atlanır. İkisini birlikte güncelleyin.

Sekme ve akordiyon dizi değil nesnedir

Profil alt sekmeleri ve güvenlik akordiyonu size bileşen nesnesi verir. Diziye eleman ekler gibi davranan bir dinleyici hata üretir; ekleme, nesnenin kendi metoduyla yapılı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.