Panel Analitik Kancaları

1.7k görüntülenme Markdown

Rapor göstergeleri, tarih aralıkları, grafikler ve anlık sayaçların altı kancası.

Genel Bakış

Rapor sayfalarının bütün sayıları bu kancalardan geçer: özet göstergeler, zaman serileri, dağılımlar ve finans toplamları. Yanlarında anlık sayaçların salt-okunur olayı bulunur.

Hepsinde ortak bir kural var: şeklini bozmayın. Grafik kütüphanesi ve sonraki sorgular belirli anahtarları bekler; eksik ya da uyumsuz bir yapı sessizce boş rapor üretir.

Referans

Anlık metrik okumasını izleme

actionadmin.analytics.realtime_polled
admin/analytics salt okuma

Panodaki anlık sayaçlar tazelendiğinde çalışır. Sayfa açıkken düzenli aralıklarla tekrarlanır.

Parametreler 1
$statsarrayAnlık metrikler: çevrimiçi sayısı, son beş dakikadaki ziyaretçi ve harita işaretçileri. Bir kopya geçer: değiştirmenin etkisi yoktur. Bu bilerek bir olaydır, filtre değil.
Dönüş 1
voidDönüş yoksayılır; veri değiştirilemez.
Dinleyici
Hook::add('action:admin.analytics.realtime_polled', 10, function ($stats) {
    // Kopya gecer: degistirmenin etkisi yok.
    Acme::pushMetric('online', (int) ($stats['online_count'] ?? 0));
});

Rapor tarih aralığını değiştirme

filteradmin.analytics.date_range
admin/analytics anahtarlar korunmalı

Kullanıcının seçtiği tarih aralığı çözüldükten sonra çalışır. Bütün rapor sorguları bu aralığı kullanır.

Parametreler 2
$resultarraybağlaÇözülen aralık: başlangıç, bitiş, önceki dönemin başlangıç ve bitişi, gün sayısı. ? Bütün anahtarlar korunmalıdır: eksik bir anahtar sonraki sorguları bozar ve rapor boş çıkar.
$rangestringKullanıcıdan gelen ham aralık metni.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.analytics.date_range', 10, function (&$result, $range) {
    // Anahtarlarin hepsi kalmali: eksik anahtar raporu bosaltir.
    $result['start'] = Acme::fiscalStart($result['start']);
});

Özet göstergeleri değiştirme

filteradmin.analytics.kpis
admin/analytics şekil bölüme göre

Rapor sayfasının üstündeki özet göstergeler hesaplandıktan sonra çalışır.

Parametreler 3
$kpisarraybağlaHesaplanan değerler. ? Yapısı bölüme göre değişir: müşteri raporundaki anahtarlarla hizmet raporundakiler aynı değildir. Bir anahtara erişmeden önce bölüme bakın.
$sectionstringRapor bölümü: müşteriler, hizmetler ya da destek.
$rangearrayAktif tarih aralığı.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.analytics.kpis', 10, function (&$kpis, $section, $range) {
    // Yapi bolume gore degisir: once bolume bakin.
    if ($section !== 'clients') return;

    $kpis['acme_churn'] = Acme::churnRate($range);
});

Zaman serisini değiştirme

filteradmin.analytics.trend_series
admin/analytics eşit uzunluk şart

Grafiğin verisi hesaplandıktan sonra çalışır.

Parametreler 3
$trendarraybağlaEtiketler ve bir ya da daha çok değer serisi. ? Etiketlerle seriler aynı uzunlukta olmalıdır; grafik eksenlerini buna göre kurar. Var olan seri anahtarlarını koruyun, yeni seriyi ek anahtar olarak koyun.
$reportstringRapor anahtarı: gelir, gider, kâr-zarar, müşteriler, hizmetler ya da destek.
$rangearrayAktif tarih aralığı.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.analytics.trend_series', 10, function (&$trend, $report, $range) {
    // Etiketlerle seri ayni uzunlukta olmali.
    if ($report !== 'income') return;

    $trend['acme_forecast'] = Acme::forecast(count($trend['labels'] ?? []));
});

Dağılım verisini değiştirme

filteradmin.analytics.distribution
admin/analytics sabit öğe şekli

Dağılım grafiğinin verisi hesaplandıktan sonra çalışır.

Parametreler 4
$dataarraybağlaDağılım öğeleri. Her öğe etiket ve değer taşımak zorundadır; grafik kütüphanesi bu yapıyı bekler, başka bir şekil sessizce boş grafik verir.
$entitystringNeyin dağılımı: müşteri, hizmet ya da talep.
$typestringDağılım tipi: durum, ülke, dil, ürün, dönem, öncelik, departman, personel ya da yanıt süresi.
$rangearrayAktif tarih aralığı.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.analytics.distribution', 10,
    function (&$data, $entity, $type, $range) {
        // Her oge etiket ve deger tasimali.
        if ($entity === 'client' && $type === 'country')
            $data = Acme::mergeSmallCountries($data);
    });

Finans özetini değiştirme

filteradmin.analytics.invoice_report_totals
admin/analytics para birimi filtreli

Finans raporunun özet toplamları hesaplandıktan sonra çalışır.

Parametreler 4
$totalsarraybağlaÖzet toplamlar: adet, tutar, gün sayısı, günlük ortalama ve para birimi.
$reportstringHangi rapor: gelir, gider, kâr-zarar, vergi, iptal, iade ya da ödeme yöntemi.
$rangearrayAktif tarih aralığı.
$currency_idintFiltrelenen para birimi; sıfır ise yerel para birimidir.
Dönüş 1
voidDönüş yoksayılır; verinin üzerine yazarsınız.
Dinleyici
Hook::add('filter:admin.analytics.invoice_report_totals', 10,
    function (&$totals, $report, $range, $currency_id) {
        // Sifir para birimi = yerel para birimi.
        if ($report === 'income') $totals['acme_target'] = Acme::monthlyTarget($currency_id);
    });

Tuzaklar

Tarih aralığında anahtar eksiltmek raporu boşaltır

Aralık dizisindeki anahtarların hepsi sonraki sorgular tarafından okunur. Birini kaldırmak ya da adını değiştirmek gösterge ve grafik sorgularını bozar; ekranda hata değil boş rapor görünür, bu yüzden fark edilmesi zordur.

Etiketlerle seriler aynı uzunlukta olmalı

Zaman serisinde etiket sayısı ile değer sayısı ayrışırsa grafik eksenleri kayar. Yeni bir seri eklerken uzunluğu mevcut etiketlere göre kurun; var olan seri anahtarlarını da koruyun.

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.