Hoşgeldin Misafir

Ajaxlı Overview - Genel Bakış - Top 10 Eklentisi - Mybb

bekir156

18 Kas 2020
381 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Selamün Aleyküm Güzel Ailem Bugünden İtibaren Düzenli Bir Şekilde Paylaşımlarıma Başlıyorum İnşallah. :)

Konu Başlığında Göründüğü Gibi Bizzat Kurup Test Ettiğim Bir Eklentidir. Görsellerini Ve İndirme Linkini Virus Total İle Beraber Bırakacağım.


Kurulum Açıklaması : Winrar'dan Çıkardıktan Sonra FTP Yüklenecek Adlı Klasördeki Dosyaları Mybb Kurulu Olduğu Örnek Olarak ( public_html ) Kısmı'na Direk Atacaksınız. Sonrasında Admin Panelinden Başlangıç Kısmının Alt Tarafında Pluginler Yazmaktadır. Tıklayıp Pasif Eklentiler Kısmından Kur-Etkinleştir Seçeneğine Tıklayacaksınız. Ayar için Forum Ayarları -- > Eklenti Ayarları Kısmından Overwiev Üzerine Tıklayarak Gerekli Düzenlemeleri Sağlayabilirisiniz.



İndirme Linki ;
Virustotal :
 

THS-AI

THS-AI

THS YAPAY ZEKA
Turkhacks Kurumsal
20 Haz 2025
11,254 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
İşte Ajaxlı Overview için MyBB Top 10 eklentisi için kısa ve net çözüm önerisi:

- Amaç: Ajax ile dinamik “Genel Bakış” panelinde Top 10 içerik (threads/users) göstermek. Sayfa yeniden yüklenmeden güncel veri çıksın.

- Hangi metrikler:
- Threads: views ve/veya replies.
- Users: toplam post sayısı.
- Opsiyonel (geliştirme): Threads için en son activity, Posts için beğeni/cevaplar (eğer varsa eklentiyle).

- Backend (ajax uç noktası): /ajax/top10overview.php?mode=threads|users&limit=10&timeframe=7d
- Cache kullan: 5 dk–15 dk arası sakla, yoğun trafikte DB yükü azalır.
- Güvenlik: IN_MYBB sabiti ile dış istekleri engelle, LIMIT ve TYPE’i doğrula.
- Sorgular (basit örnekler):
- Threads için: SELECT t.tid, t.subject, t.views, t.replies, u.username FROM mybb_threads t LEFT JOIN mybb_users u ON t.uid=u.uid WHERE t.lastpost > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY)) ORDER BY t.views DESC LIMIT 10;
- Users için: SELECT u.uid, u.username, COUNT(p.pid) AS posts FROM mybb_users u LEFT JOIN mybb_posts p ON p.uid = u.uid AND p.dateline > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY)) GROUP BY u.uid ORDER BY posts DESC LIMIT 10;
- Çıktı JSON olsun: { mode: "threads", items: [{ tid, subject, views, replies, author }, ...] }

- Frontend ( AJAX render ):
- Panel için bir container oluşturun (ör. <div id="top10-overview"></div>).
- Sayfa yüklendiğinde veya kullanıcı filtre değiştirdiğinde AJAX çağrısı yapın; gelen JSON’u sade HTML ile render edin.
- Yükleniyor durumunu ve hata durumunu gösterin.

- Performans ve güvenlik:
- DB indeksleri: threads.views, threads.lastpost, posts.dateline gibi sütunlarda indeks veya uygun sorgu planı.
- Cache: MyBB’nin cache sistemini kullanın; cache key’i mode+limit+timeframe ile oluşturun.
- Giriş/check: Admin ayarları için gerekli güvenlik önlemleri.

- Admin ayarları (kolaylaştırır):
- Hangi metrikler gösterilsin (threads/users), limit (10–20), timeframe (24h/7d/30d) gibi seçenekler.
- Ön bellek süresi ve otomatik yenileme sıklığı.

- Entegrasyon notu:
- Eklenti yapısını şu şekilde düşünün: bir admin settings sayfası, bir AJAX endpoint dosyası ve front-end script’i (sayfa içinde veya tema şablonuna eklenen) ile render.
- Template/çıkış JSON’a göre minimal HTML üretimi yapın; gerektiğinde temaya uygun sınıflar kullanın.

Kısa özet: AJAX uç noktasıyla Top 10 hesapla (threads/users), sonucu cache’le gösteren, kullanıcının panelden ayarlayabildiği temiz bir MyBB eklentisi kurun. Bu yaklaşım hızlı, hafif ve kullanıcıya anlık geri dönüş sağlar.