Panel Destek Ekranı Kancaları

1.7k görüntülenme Markdown

Destek ekranlarının yirmi bir yerleşim noktası: talep detayı, yanıt formu, liste satırları ve departman formları.

Genel Bakış

Destek ekranlarının yerleşim noktaları burada: talep detayının her bölümü, liste satırları ve departman formları.

Talep detayındaki birkaç noktada yanınıza bir yetki bilgisi gelir. Bu bir kapı değildir: çekirdek kendi butonlarını ona göre kapatır, ama sizin çıktınızı engellemez. Yetki isteyen bir şey gösteriyorsanız denetimi kendiniz yapın.

Referans

Talep başlığına rozet ya da buton

uiadmin.tickets_detail.header_actions
admin/tickets/detail başlık alanı

Talep detayının başlık satırında görünür. Dış sistemdeki kayıt numarası ya da kendi kısa yolunuz için uygundur.

Parametreler 1
$ticketarrayAktif talep kaydı.
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.tickets_detail.header_actions', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Yan sütunun üstü

uiadmin.ticket_detail.sidebar_top
admin/tickets/detail yan sütun üstü

Talep detayının yan sütununda, ilk kartın üstünde görünür.

Parametreler 2
$ticketarrayAktif talep kaydı.
$opPrivboolBakan kişinin işlem yetkisi var mı. ? Bu bir bilgidir, kapı değil: yanlış olduğunda çekirdek butonları kapatır ama sizin çıktınızı engellemez. Yetki isteyen bir şey gösteriyorsanız kendiniz sınayın.
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.ticket_detail.sidebar_top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Yan sütuna işlem ekleme

uiadmin.ticket_detail.sidebar_actions
admin/tickets/detail işlem kutusu

Yan sütundaki işlem kutularının arasında görünür. Kendi talep işleminizi yerleşik olanların yanına koyar.

Parametreler 2
$ticketarrayAktif talep kaydı.
$opPrivboolBakan kişinin işlem yetkisi var mı. ? Bu bir bilgidir, kapı değil: yanlış olduğunda çekirdek butonları kapatır ama sizin çıktınızı engellemez. Yetki isteyen bir şey gösteriyorsanız kendiniz sınayın.
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.ticket_detail.sidebar_actions', 10, function ($ticket, $opPriv) {
    // Yetki bilgisi kapi DEGIL: kendiniz sinayin.
    if (!$opPriv) return null;

    return '<div class="operation-box"><button onclick="acmeEscalate('
         . (int) ($ticket['id'] ?? 0) . ')">Acme</button></div>';
});

Talep bilgi kartına satır

uiadmin.ticket_detail.details_card.meta
admin/tickets/detail bilgi kartı

Talep bilgi kartının alanları arasında görünür. Kendi üstverinizi çekirdek alanların yanına eklersiniz.

Parametreler 1
$ticketarrayAktif talep kaydı; posta kaynağı, departmanı ve numarası içinde.
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.ticket_detail.details_card.meta', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Konuşmanın üstü

uiadmin.ticket_detail.conversation.before
admin/tickets/detail konuşmadan önce

Yanıt akışının hemen üstünde görünür. Dış sistemden gelen bağlam ya da uyarı için uygundur.

Parametreler 1
$ticketarrayAktif talep kaydı.
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.ticket_detail.conversation.before', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Yanıt formunun üstü

uiadmin.ticket_detail.reply_form.top
admin/tickets/detail yanıt formu üstü

Personelin yazacağı yanıt kutusunun üstünde görünür. Yanıt yazmadan önce görülmesi gereken uyarı için uygundur.

Parametreler 2
$ticketarrayAktif talep kaydı.
$opPrivboolBakan kişinin işlem yetkisi var mı. ? Bu bir bilgidir, kapı değil: yanlış olduğunda çekirdek butonları kapatır ama sizin çıktınızı engellemez. Yetki isteyen bir şey gösteriyorsanız kendiniz sınayın.
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.ticket_detail.reply_form.top', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Yanıt formunun araç çubuğu

uiadmin.ticket_detail.reply_form.toolbar
admin/tickets/detail form araç çubuğu

Yanıt formunun araç çubuğunda görünür. Kendi ekleme ya da şablon butonunuzu buraya koyarsınız.

Parametreler 1
$ticketarrayAktif talep kaydı.
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.ticket_detail.reply_form.toolbar', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Yanıt düzenleyicisinin altı

uiadmin.ticket_detail.reply_editor.after
admin/tickets/detail düzenleyici altı

Metin düzenleyicinin hemen altında görünür. Ek seçenek ya da gönderim öncesi onay kutusu için uygundur.

Parametreler 1
$ticketarrayAktif talep kaydı.
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.ticket_detail.reply_editor.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Hazır yanıtların altı

uiadmin.ticket_detail.canned_replies.after
admin/tickets/detail dil bilgisi ayrı

Hazır yanıt seçeneklerinin altında görünür. Kendi şablon kaynağınızı eklemenin yeri.

Parametreler 2
$ticketarrayAktif talep kaydı.
$client_langstringAktif arayüz dili. Hazır yanıtlar müşterinin diline göre yüklenir; şablonda o değer bulunmadığı için buraya arayüz dili geçirilir. İkisi aynı olmayabilir.
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.ticket_detail.canned_replies.after', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

İç not formunun altı

uiadmin.ticket_detail.note_form.bottom
admin/tickets/detail iç not formu

İç not yazma kutusunun altında görünür. Notlar müşteriye gösterilmez.

Parametreler 1
$ticketarrayAktif talep kaydı.
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.ticket_detail.note_form.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Talep detayına yeni sekme

uiadmin.ticket_detail.tabs
admin/tickets/detail nesne, dizi değil

Talep detayının sekmeleri kurulduktan sonra çalışır. HTML döndürmezsiniz: sekmeyi nesnenin metoduna eklersiniz.

Parametreler 2
$tabobjectSekme nesnesi. Nesne olduğu için bağla işareti olmadan da kalıcı değişir.
$ticketarrayTam talep kaydı.
Dönüş 1
voidDönüş kullanılmaz. Bu nokta HTML göstermez.
Dinleyici
Hook::add('ui:admin.ticket_detail.tabs', 10, function ($tab, $ticket) {
    $tab->add('acme', 'Acme', Acme::renderTab((int) ($ticket['id'] ?? 0)));
});

Talep sayfasının en altı

uiadmin.tickets_detail.bottom
admin/tickets/detail sayfa sonu

Sayfanın en sonunda görünür.

Parametreler 1
$ticketarrayGörüntülenen talep kaydı.
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.tickets_detail.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Liste satırına rozet

uiadmin.tickets_list.row_badges
admin/tickets satır başına

Talep listesinin her satırında görünür. Kendi durum rozetinizi çekirdek rozetlerin yanına koyar.

Parametreler 1
$modelarraySatırın verisi: kimliği, durumu, okunma işareti, departmanı ve başlığı. ? Kanca satır başına çalışır: burada veritabanı sorgusu yapan bir dinleyici sayfa başına yüzlerce sorgu üretir. Gerekiyorsa veriyi önceden toplayın.
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.tickets_list.row_badges', 10, function ($model) {
    // SATIR BASINA calisir: burada sorgu yapmayin, onceden toplayin.
    if (!Acme::isEscalated((int) ($model['id'] ?? 0))) return null;

    return '<span class="badge bg-danger">Acme</span>';
});

Talep listesi araç çubuğu

uiadmin.tickets_list.toolbar
admin/tickets parametresiz

Talep listesinin üstündeki buton grubunda 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.tickets_list.toolbar', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Talep listesinde tablodan önce

uiadmin.tickets_list.before_table
admin/tickets parametresiz

Talep tablosunun hemen üstünde 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.tickets_list.before_table', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Departman listesi araç çubuğu

uiadmin.department_list.toolbar
admin/tickets/departments parametresiz

Departman listesinin araç çubuğunda 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.department_list.toolbar', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Departman listesinde tablodan önce

uiadmin.department_list.before_table
admin/tickets/departments parametresiz

Departman tablosunun hemen üstünde 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.department_list.before_table', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Talep oluşturma formundan önce

uiadmin.tickets_edit.before_content
admin/tickets müşteri boş olabilir

Personelin müşteri adına talep açtığı formun üstünde görünür.

Parametreler 1
$userarrayForm için önceden seçilmiş müşteri. Müşteri henüz seçilmemişse boş gelir.
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.tickets_edit.before_content', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Talep oluşturma formundan sonra

uiadmin.tickets_edit.bottom
admin/tickets müşteri boş olabilir

Aynı formun altında, sayfa sonunda görünür.

Parametreler 1
$userarrayForm için önceden seçilmiş müşteri. Müşteri henüz seçilmemişse boş gelir.
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.tickets_edit.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Departman formundan önce

uiadmin.department_edit.before_content
admin/tickets/departments eklemede boş

Departman ekleme ve düzenleme formunun üstünde görünür.

Parametreler 1
$detailarrayDüzenlenen departman kaydı. Ekleme modunda boştur: kimliğe erişmeden önce sınayın.
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.department_edit.before_content', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Departman formundan sonra

uiadmin.department_edit.bottom
admin/tickets/departments eklemede boş

Aynı formun altında görünür.

Parametreler 1
$detailarrayDüzenlenen departman kaydı. Ekleme modunda boştur: kimliğe erişmeden önce sınayın.
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.department_edit.bottom', 10, function () {
    return '<div class="alert alert-info">Acme</div>';
});

Tuzaklar

Yetki bilgisi bir kapı değildir

Talep detayındaki yetki parametresi size bakan kişinin yetkisi olup olmadığını söyler, çıktınızı kendiliğinden engellemez. Yetkisiz bir yöneticiye işlem butonu göstermek istemiyorsanız koşulu kendi dinleyicinizde kurun. Sunucu tarafındaki asıl denetim yine ilgili operation'dadır: buradaki gizleme yalnız görünürlüktür.

Satır rozeti her satırda çalışır

Liste rozet noktası sayfadaki her talep için ayrı çağrılır. İçinde veritabanı sorgusu ya da dış çağrı yapan bir dinleyici, elli satırlık bir sayfada elli sorgu üretir ve listeyi gözle görülür biçimde yavaşlatır. İhtiyacınız olan veriyi tek seferde toplayıp bellekten okuyun.

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.