# Yönetim Paneli Verisi ve Kapıları

https://dev.wisecp.com/tr/yonetim-paneli-verisi-ve-kapilari

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

```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.

## İlgili Makaleler

- [Yönetim Paneli Kancaları](https://dev.wisecp.com/tr/yonetim-paneli-kancalari)
- [Müşteri Sitesi Verisi ve Kapıları](https://dev.wisecp.com/tr/musteri-sitesi-verisi-ve-kapilari)
- [Müşteri Hesabı Kancaları](https://dev.wisecp.com/tr/musteri-hesabi-kancalari)
