Panel Analitik Kancaları
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
Panodaki anlık sayaçlar tazelendiğinde çalışır. Sayfa açıkken düzenli aralıklarla tekrarlanır.
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
Kullanıcının seçtiği tarih aralığı çözüldükten sonra çalışır. Bütün rapor sorguları bu aralığı kullanır.
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
Rapor sayfasının üstündeki özet göstergeler hesaplandıktan sonra çalışır.
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
Grafiğin verisi hesaplandıktan sonra çalışır.
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
Dağılım grafiğinin verisi hesaplandıktan sonra çalışır.
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
Finans raporunun özet toplamları hesaplandıktan sonra çalışır.
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
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.
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.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.