Yönetim Paneli Verisi ve Kapıları

1.6k görüntülenme Markdown

Yönetim panelinin ekran dışı kancaları: listeleri ve formları değiştiren 23 filtre, personel işlemlerini durduran 6 kapı, 19 olay kancası.

Genel Bakış

Paneldeki en güçlü kancalar burada. Liste ve form filtreleri panelin neredeyse her ekranını etkiler, çünkü listeler ve formlar tek bir yapıdan üretilir: bir filtre yazarsınız, onlarca ekranda çalışır.

Bu güç ters de çalışır. Hedef ayırt etmeyen bir filtre bütün panele dokunur; her filtre kendisine tablo ya da form adını verir, o adı kontrol etmek sizin işinizdir.

Referans

Veriyi değiştirenler

Yirmi üç filtrenin başlıcaları. Çoğu değeri referansla verir ve dönüşe bakmaz; işlem filtreleri ise dönüşe göre davranan karma bir sözleşme taşır.

filter:admin.table.rows Her liste satırı — hücreler, satır sınıfları, ham kayıt. Satır referansla değişir; dönüş kullanılmaz.
filter:admin.table.columns Liste sütunları; ekler, çıkarır, sırasını değiştirirsiniz. Dizi referansla değişir; dönüş kullanılmaz.
filter:admin.form_builder Form üreticisinin ürettiği alanlar.
filter:admin.dashboard.statistics Panodaki sayı kartları.
filter:admin.dashboard.widgets Panodaki kutuların listesi.
filter:admin.menu_management Menü ağacı.
filter:admin.notifications Personele düşen bildirimler.
filter:admin.bubble_counts Menüdeki sayaç baloncukları.
filter:admin.health_status Sistem sağlığı göstergesi.
filter:admin.settings_save Kaydedilmek üzere olan ayarlar.
filter:admin.operation.before Bir işlem çalışmadan önce — engelleyebilir ya da çıktısını verebilirsiniz.
filter:admin.operation.after İşlem çalıştıktan sonra, yanıt gitmeden önce.
filter:api.response API yanıtı — panel dışındaki tüketicilere giden gövde.

Durduranlar

Altı kapının hepsi personel ve yetki işlerindedir. Boş olmayan bir string döndürmek işlemi durdurur ve o metin operatöre hata olarak gösterilir.

gate:admin.staff_create Yeni personel açma. Boş olmayan bir string döndürmek açmayı veto eder; o metin hata olarak görünür.
gate:admin.staff_delete Personel silme. Boş olmayan bir string döndürmek silmeyi engeller; o metin hata olarak görünür.
gate:admin.privilege_save Yetki grubu kaydı.
gate:admin.department_delete Departman silme.
gate:admin.editor_upload Editörden dosya yükleme.
gate:admin.password_change Parola değişikliği.

Bildirenler

action:admin.staff_created Personel açıldı.
action:admin.settings_saved Ayarlar kaydedildi.
action:admin.activity_logged Panelde bir etkinlik kaydedildi.
action:security.settings_updated Güvenlik ayarları değişti.
action:admin.two_factor_changed İki adımlı doğrulama açıldı ya da kapandı.

Hedefli filtre

coremio/hooks/acme-admin.php
// Ikinci parametre TABLO ADIDIR. Kontrol etmezseniz filtre her listede calisir.
Hook::add('filter:admin.table.rows', 10, function (&$row, $table_name) {
    if ($table_name !== 'serviceList') return null;

    $id = (int) ($row['model']['id'] ?? 0);
    if (Acme::flagged($id)) $row['attributes']['class'] = 'table-warning';
});

Tuzaklar

Tablo adını kontrol etmeyen filtre her listeye vurur

Satır ve sütun filtreleri panelin bütün listelerinde çalışır. İkinci parametredeki adı kontrol etmezseniz hizmet listesi için yazdığınız kural fatura, müşteri ve talep listelerinde de uygulanır. İlk satırınız ad kontrolü olsun.

Sütun eklemek hücreyi doldurmaz

Sütun filtresi yalnız başlığı açar. O sütunun hücre değeri satır filtresinden gelir. İkisinden birini yazmak, boş bir sütun ya da hiçbir yerde görünmeyen bir hücre demektir.

İşlem filtresi dönüşe göre farklı davranır

İşlem öncesi filtre karma bir sözleşme taşır: bir hata dizisi döndürmek işlemi durdurur, değişken dizisi döndürmek girdileri değiştirir, çıktı döndürmek işlemi hiç çalıştırmadan yanıtı verir. Yanlış anahtar adı yazmak sessizce "normal devam et" anlamına gelir.

Satır filtresi satır başına çalışır

Yüz satırlık bir listede satır filtresi yüz kez çalışır. İçine bir sorgu koymak listeyi yüz sorguya çıkarır. Gereken veriyi bir kez toplayıp durağan bir değişkende tutun; dinleyicide yalnız o hazır veriye bakın.

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.