Ön yüzde her istekte görünmez sayaç çalışır. Yönetimde tek sayfa: admin.php?mod=vstats — özet kartlar, günlük grafik, tablo, aralık, eski kayıt temizleme. Sürüm 1.0, DLE 21.

Veri JSON’da değil, kendi tablosunda. Bu paket SQL kancalarını doldurmak için yazılmış: kurulum / güncelleme / aktif / silme. Pasifte kanca boş; tablo durur.

Kurulum

ZIP içindeki vstats.xml → yükle, aktif et. Menü: Ziyaretçi İstatistiği. Görünmezse bir kapatıp aç. Sayaç engine/init.php içine, motor çağrılmadan hemen önce DLEPlugins::Check ile vstats_track.php eklenir.

Oluşanlar: izleyici, engine/inc/vstats.php, ikon, TR/EN adminpanel.lng içinde vstats_ anahtarlar, menü kaydı, prefix’li _vstats tablosu.

Grup 1 (yönetici) gezinmesi sayılmaz. Test için gizli pencere veya başka tarayıcı. İlk açılışta “Henüz kayıt yok”; birkaç sayfa gezip paneli yenile.

Tablo ve kancalar

Günde bir satır, tarih benzersiz: görüntüleme, tekil, bot, dış yönlendirme. Motor InnoDB, karakter seti sitedeki gibi.

Kurulumda tablo yoksa açılır. Güncellemede aynı tanım tekrar çalışır (varsa dokunmaz). Aktif edilince tablo silinmişse geri gelir. Pasifte menü kalkar, tablo kalır. Eklentiyi panelden silersen tablo da gider — istatistik sıfır. Saklamak istiyorsan silmeden önce XML’deki silme kancasını boşalt.

Sütun eklemek (ör. eski kurulumda dış yönlendirme yoksa) MySQL 8’de “yoksa ekle” yok. O yüzden şema ilerlemesi phpupgrade içinde: bilgi şemasına bakılır, sütun yoksa eklenir, varsa geçilir. Güncelleme kancasına şema değiştiren komut koyma; her seferinde çalışır, ikinci tur patlar.

Kancada birden fazla ifade noktalı virgülle yazılır. Hata eklenti loguna type=mysql düşer, Eklenti yönetimi listesinde görünür. Yer tutucular: prefix, kullanıcı prefix’i, karakter seti, motor. Ham SQL’e PHP sabiti yazma; XML’de süslü parantezli yer tutucu, DLE dbconfig değerini koyar.

Sayaç

Tarih bugünün günü. User-agent boşsa veya bot/crawl/spider/slurp, Bing, Yandex, Baidu, DuckDuck, Facebook önizleme, Semrush, Ahrefs, MJ12, uptime, curl, wget, python, go-http, headless, monitor geçiyorsa bot: görüntüleme + bot; tekil ve yönlendirme yok.

Tekil: vstats_uid çerezi yoksa 1, 24 saat / yola yazılıyor. Dış yönlendirme: Referer host’u sitenin host’undan farklıysa (büyük/küçük harf yok sayılır). Kendi iç linklerin sayılmaz.

Aynı güne satır yoksa açılır, varsa sayaçlar artar. Günde bir satır, istek başına bir sorgu.

RSS / yazdırma da sayılır; istemezsen izleyicinin başına şablon kontrolü koy. Sadece bazı sayfalar: yamayı init.php yerine o modüle taşı.

Panel

Grup 1 + CSRF. Dört kart: bugün, dün, son 7 gün, tüm zaman — büyük rakam görüntüleme, altta tekil / bot.

Aralık GET days: 7 / 30 / 90 / 365, başkası 30. Grafik en fazla son 90 gün (dizi kesilir); tablo seçilen aralığın hepsi. Çubuk yüksekliği o aralıktaki en yüksek görüntülemeye göre, en az %4. Genişlik en fazla 34px. 10 güne kadar ortalanır. 31 günden fazla etiket her N. günde (toplam/20). Etiket gg.aa, hover’da tam tarih + hits. Taban çizgisi grafiğin alt kenarı. Boşsa “Henüz kayıt yok”.

Tablo sütunları: tarih, tekil, görüntüleme, bot, dış yönlendirme, oran çubuğu. Temizle: 30 / 90 / 180 / 365 gün sakla, daha eskiler gider, geri yok, onay + user_hash. İşlem admin log’a 2001 koduyla düşer.

Kart/grafik stilleri sayfa içinde; Limitless’te olmayan sınıflara yaslanmıyor. Dil yaması 'direction' => "ltr" satırının altına — DLE o satırı değiştirirse metinler boş kalır.

Yaşam döngüsü

Kur / aktif: menü + tablo (yoksa). Pasif: menü kalkar, veri durur, ?mod=vstats açılmaz. Güncelle: menü tazelenir, tablo tanımı tekrar, eksik sütun PHP’den. Sil: menü, ikon, tablo.

Yeni sayaç: kancadaki tablo tanımına kolon, phpupgrade’e korumalı ekleme, izleyicide artış, panelde gösterim. Bot kalıbı ve çerez adı/süresi vstats_track.php içinde.

Dosya İndirme Kilitli