Panel Müşteri Ekranı Kancaları

1.7k görüntülenme Markdown

Müşteri ekranlarının on dokuz yerleşim noktası: özet kartları, sekmeler, liste araç çubuğu ve oluşturma formu.

Genel Bakış

Müşteri ekranlarının yerleşim noktaları burada. Hepsi aynı biçimde çalışır: döndürdüğünüz HTML o noktada görünür, bir şey eklemek istemediğinizde null dönersiniz.

İki nokta bu kalıbın dışındadır. Sekme ekleme HTML değil bir nesne alır; ekleme metot çağrısıyla olur. Evrak alanı formu ise sayfa açılırken bir kez toplanır ve sabitlenir, düzenlenen alana göre değişemez.

Referans

Özet sekmesinin en üstü

uiadmin.client_detail.summary.top
admin/users/detail kartlardan önce

Müşteri özetinin en üstünde, istatistik kartlarından önce görünür. Risk bandı, son temas notu ya da önemli müşteri uyarısı için doğru yer.

Parametreler 3
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
$user_statsarrayHesaplanmış sayaçlar: etkin ve pasif hizmet, fatura, talep.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.summary.top', 10,
    function ($user, $user_id, $user_stats) {
        $score = Acme::riskScore($user_id);
        if ($score < 70) return null;   // eklenecek bir sey yoksa null

        return '<div class="alert alert-warning">Risk skoru: ' . (int) $score . '</div>';
    });

Müşteri bilgi kartına satır ekleme

uiadmin.client_detail.summary.info_card
admin/users/detail kart içi satır

Bilgi kartının son satırından sonra görünür. Dış sistemdeki müşteri numarası, kaynak ya da hesap yöneticisi gibi bir alan eklemenin yeri.

Parametreler 3
$userarrayMüşterinin tam kaydı.
$client_infoarrayMüşterinin ek bilgi çiftleri.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.summary.info_card', 10,
    function ($user, $client_info, $user_id) {
        $crm = Acme::crmId($user_id);
        if ($crm === '') return null;

        // Cikti kacissiz basilir: dis degeri kendiniz temizleyin.
        return '<div class="row"><div class="col-5">CRM</div><div class="col-7">'
             . htmlspecialchars($crm) . '</div></div>';
    });

Aksiyon kartına işlem ekleme

uiadmin.client_detail.summary.action_cards
admin/users/detail işlem kutusu

Aksiyon kartındaki son işlemin ardından görünür. Kendi toplu işleminizi yerleşik olanların yanına koyar.

Parametreler 2
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.summary.action_cards', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Özet sekmesinin altı

uiadmin.client_detail.summary.bottom
admin/users/detail kartlardan sonra

Özet sekmesinin kartları bittikten sonra görünür. Kendi kartınızı ya da bilgi panelinizi eklemenin yeri.

Parametreler 2
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.summary.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Başlık alanına rozet ya da buton

uiadmin.client_detail.header_actions
admin/users/detail rozetlerin yanına

Sayfa başlığındaki durum rozetlerinin sonunda görünür. Kendi rozetinizi ya da kısa yol butonunuzu buraya koyarsınız.

Parametreler 3
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
$client_infoarrayÇözümlenmiş müşteri bilgisi: tipi, vergi durumu ve koruma işaretleri.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.header_actions', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Müşteri detayına yeni sekme

uiadmin.client_detail.tabs
admin/users/detail nesne, dizi değil

Çekirdek sekmelerin hepsi kurulduktan sonra çalışır. Diğer yerleşim noktalarının aksine burada HTML döndürmezsiniz: sekmeyi nesnenin metoduna eklersiniz.

Parametreler 3
$tabobjectSekme nesnesi; ekleme metoduyla yeni sekme koyarsınız.
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
voidDönüş kullanılmaz. Bu nokta HTML göstermez: değişiklik nesnenin metodunu çağırmakla olur. HTML döndüren bir dinleyici burada sessizce hiçbir şey yapmaz.
Dinleyici
Hook::add('ui:admin.client_detail.tabs', 10, function ($tab, $user, $user_id) {
    // HTML DONDURMEYIN: sekme nesneye eklenir.
    $tab->add('acme', 'Acme', Acme::renderTab($user_id));
});

Profil sekmesinin altı

uiadmin.client_detail.profile.bottom
admin/users/detail profil altı

Profil sekmesinin dikey sekmeleri işlendikten sonra görünür. Kimlik doğrulama özeti ya da ek tercih bölümü için uygundur.

Parametreler 3
$userarrayMüşterinin tam kaydı.
$client_infoarrayMüşterinin ek bilgileri.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.profile.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Kişiler sekmesinin üstü

uiadmin.client_detail.contacts.top
admin/users/detail sekme üstü

Adres ve kişi listesinin üstünde görünür. Adres doğrulama durumu ya da eksik fatura adresi uyarısı için uygundur.

Parametreler 3
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
$user_addressesarrayMüşterinin adres ve kişi kayıtları.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.contacts.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Alt kullanıcılar sekmesinin üstü

uiadmin.client_detail.subusers.top
admin/users/detail sekme üstü

Alt kullanıcı listesinin üstünde görünür. Kabul edilmemiş davet uyarısı ya da izin politikası bildirimi için uygundur.

Parametreler 2
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.subusers.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Faturalar sekmesinin üstü

uiadmin.client_detail.invoices.top
admin/users/detail sekme üstü

Fatura tablosunun üstünde görünür. Açık bakiye uyarısı ya da otomatik ödeme durumu için uygundur.

Parametreler 1
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.invoices.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Hizmetler sekmesinin üstü

uiadmin.client_detail.orders.top
admin/users/detail sekme üstü

Hizmet ve sipariş listesinin üstünde görünür. Yenileme uyarısı ya da kurulum hatası bandı için uygundur.

Parametreler 1
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.orders.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Destek sekmesinin üstü

uiadmin.client_detail.tickets.top
admin/users/detail sekme üstü

Talep tablosunun üstünde görünür. Açık talep sayısı ya da memnuniyet özeti için uygundur.

Parametreler 1
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.tickets.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Notlar sekmesinin üstü

uiadmin.client_detail.notes.top
admin/users/detail sekme üstü

Not listesinin üstünde görünür. Dış kaynaktan gelen sistem notlarını göstermenin yeri.

Parametreler 2
$user_idintMüşterinin kimliği.
$notesarrayMüşterinin notları.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.notes.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Müşteri sayfasının en altı

uiadmin.client_detail.bottom
admin/users/detail sayfa sonu

Sayfanın en sonunda, alt bilgiden hemen önce görünür. Sekmeye bağlı olmayan bir panel için uygundur.

Parametreler 2
$userarrayMüşterinin tam kaydı.
$user_idintMüşterinin kimliği.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_detail.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Müşteri listesi araç çubuğu

uiadmin.client_list.toolbar
admin/users parametresiz

Listenin üstündeki buton grubunda görünür. Dışa aktarma ya da kendi toplu işleminiz için buton eklersiniz.

Parametreler 0
—Parametre almaz.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_list.toolbar', 10, function () {
    return '<a href="/acme/export" class="btn btn-outline-secondary">'
         . '<i class="bi bi-download"></i> Acme</a>';
});

Müşteri listesinde tablodan önce

uiadmin.client_list.before_table
admin/users tablodan önce

İstatistik kartı ve filtre panelinden sonra, tablodan hemen önce görünür.

Parametreler 0
—Parametre almaz.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_list.before_table', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Müşteri oluşturma formundan önce

uiadmin.client_create.before_content
admin/users formdan önce

Yeni müşteri formunun üstünde görünür. Bilgilendirme şeridi ya da ek talimat için uygundur.

Parametreler 0
—Parametre almaz.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_create.before_content', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Müşteri oluşturma formundan sonra

uiadmin.client_create.bottom
admin/users formdan sonra

Yeni müşteri formu bittikten sonra, sayfa sonunda görünür.

Parametreler 0
—Parametre almaz.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. Birden çok dinleyici varsa çıktılar öncelik sırasıyla art arda eklenir. Boş metin, null ve false atlanır: bir şey eklemek istemediğinizde null dönün. Çıktı kaçışsız girer — dışarıdan gelen değeri kendiniz temizleyin.
Dinleyici
Hook::add('ui:admin.client_create.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Evrak alanı formuna ek bölüm

uiadmin.document_field.form
admin/users bir kez toplanır

Evrak doğrulama alanlarının ekleme ve düzenleme penceresine ek bölüm koyar. Kendi alan tipinizi tanıttıysanız ayarlarını buradan sorarsınız.

Parametreler 0
—Parametre almaz.
Dönüş 1
string|nullDöndürdüğünüz HTML görünür. ? Pencere tarayıcı tarafında kurulduğu için çıktı sayfa açılırken bir kez toplanır ve sabit olarak gömülür: hangi alanın düzenlendiğine göre değişemez. Alana özgü davranış gerekiyorsa hepsini gösterip seçimi kendi kodunuzla yapın.
Dinleyici
Hook::add('ui:admin.document_field.form', 10, function () {
    // Cikti bir kez toplanir: alana gore degisemez.
    return '<div class="mb-3"><label>Acme dogrulama</label>'
         . '<input class="form-control" name="acme_rule"></div>';
});

Tuzaklar

Çıktı kaçışsız girer

Bu noktalarda döndürdüğünüz metin olduğu gibi sayfaya girer. Dışarıdan gelen bir değeri (müşteri adı, dış sistem yanıtı, form girdisi) doğrudan gömerseniz panelde kod çalıştırma açığı yaratırsınız. Değeri kendiniz kaçırın.

Sekme noktası HTML kabul etmez

Sekme ekleme noktası diğerlerine benzer görünse de HTML göstermez: size bir nesne verir ve sekme onun metoduyla eklenir. HTML döndüren bir dinleyici burada sessizce hiçbir şey yapmaz — hata da almazsınız, bu yüzden fark edilmesi zordur.

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.