Webboard

Pełna wersja: DVZ Shoutbox | Statystyki wpisów (największy spamer, ilość wpisów)
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

1 Edycja pliku Dvz Shoutbox


Edytujemy plugin, który znajdziemy na ftp `/inc/plugins/dvz_shoutbox.php

Otwieramy plik i następnie odszukujemy
Kod PHP:
$plugins->add_hook('index_end', ['dvz_shoutbox''load_window']); // load Shoutbox window to {$dvz_shoutbox} variable 

Pod tym dodajemy
Kod PHP:
$plugins->add_hook('index_start''dvz_shoutbox_stats'); //Stas index 

Następnie odszukujemy w pliku
Kod PHP:
 static function load_window()
 
   {
 
       
 
global $templates$dvz_shoutbox$lang$mybb$db$theme;

 
       $lang->load('dvz_shoutbox'); 

I podmieniamy na
Kod PHP:
   static function load_window()
 
   {
 
       
 
global $templates$dvz_shoutbox$lang$mybb$db$theme,$our_shouts,$wpisy,$top_spamer_noformatted,$shouts;

 
       $lang->load('dvz_shoutbox'); 

Na samym dole pliku dodajemy
Kod PHP:
// Statystyki
function dvz_shoutbox_stats()
{
 
  global $db$mybb$templates$theme$wpisy$users$top_spamer$users_online_o$top_spamer_noformatted$shshshs$our_shouts$timesearch$shouts$username$user$users_online$anon_online$invisiblemark$onlinemembers$guests_online$spiders$cache$bots_online;
 
   

 $query 
$db->query("SELECT count(id) as id FROM ".TABLE_PREFIX."dvz_shoutbox");

 
// Wpisy
 
   $row $db->fetch_array($query);
 
   $wpisy $row['id'];

 
   $query3 $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters
                          FROM "
.TABLE_PREFIX."dvz_shoutbox d
                          LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=d.uid)
                          GROUP BY d.uid
                          ORDER BY shouters
                          DESC LIMIT 1"
);
 
   $row3 $db->fetch_array($query3);

 
// Najwiekszy spamer
 
$shouts $row3['shouters'];
 
   $top_spamer_noformatted $row3['username'];
 
   $top_spamer build_profile_link(format_name($row3['username'], $row3['usergroup'], $row3['displaygroup']), $row3['uid']);

 
// Wpisy uzytkownika
 
   $query4 $db->query("SELECT count(id) as id, uid FROM ".TABLE_PREFIX."dvz_shoutbox WHERE uid='".$mybb->user['uid']."'");
 
   $our_shouts $db->fetch_field($query4"id");
 


Zapisujemy plik i wysyłamy ponownie na ftp.

2 Edycja szablonów


Edytujemy szablon dvz_shoutbox (Szablony globalne), następnie na samym dole dodajemy
Kod PHP:
<div class="shoutbox-stats">
 
   <span class="stat">Twoich shoutów: <span class="block">{$our_shouts}</span></span>
 
   <span class="stat">Wszystkich shoutów: <span class="block">{$wpisy}</span></span>
 
   <span class="stat">Największy spamer: <span class="block">{$top_spamer_noformatted} ({$shouts})</span></span>
</
div

Oraz css
.shoutbox-stats {
   margin: 20px;
   text-align: center;
}

.shoutbox-stats .stat {
   margin: 10px;
}

.shoutbox-stats .block {
   background: #212121;
   padding: 6px;
   border-radius: 2px;
   font-weight: bold;
   color: #FFF;
}

Efekt końcowy może się różnić od przedstawionego na ss

Wykluczanie ze statystyk największego spamera osoby o konkretnym ID oraz należących do danej grupy.

W tej części kodu:
Kod:
// Wpisy
   $row = $db->fetch_array($query);
   $wpisy = $row['id'];

   $query3 = $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters
                         FROM ".TABLE_PREFIX."dvz_shoutbox d
                         LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=d.uid)
                         GROUP BY d.uid
                         ORDER BY shouters
                         DESC LIMIT 1");
   $row3 = $db->fetch_array($query3);
Po LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=d.uid) dodajemy WHERE u.usergroup NOT IN(7) AND u.uid NOT IN(9486)
7 <- ID grupy, którą wykluczamy (zbanowani użytkownicy)
9486 <- ID użytkownika, którego wykluczamy (jakiś użytkownik)

Cały kod na końcu pliku powinien wyglądać np. tak:
Kod:
// Statystyki
function dvz_shoutbox_stats()
{
  global $db, $mybb, $templates, $theme, $wpisy, $users, $top_spamer, $users_online_o, $top_spamer_noformatted, $shshshs, $our_shouts, $timesearch, $shouts, $username, $user, $users_online, $anon_online, $invisiblemark, $onlinemembers, $guests_online, $spiders, $cache, $bots_online;


$query = $db->query("SELECT count(id) as id FROM ".TABLE_PREFIX."dvz_shoutbox");

// Wpisy
   $row = $db->fetch_array($query);
   $wpisy = $row['id'];

   $query3 = $db->query("SELECT d.uid, u.username, u.usergroup, u.displaygroup, u.uid, u.avatar, count(*) as shouters
                         FROM ".TABLE_PREFIX."dvz_shoutbox d
                         LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=d.uid)
                         //Wykluczenie ze statystyk naj. spamera uzytkownikow w grupie o ID 7 (domyslnie zbanowani)
                         WHERE u.usergroup NOT IN(7)
                         //Wykluczenie ze statystyk naj. spamera uzytkownika o ID 9486
                         AND u.uid NOT IN(9486)
                         GROUP BY d.uid
                         ORDER BY shouters
                         DESC LIMIT 1");
   $row3 = $db->fetch_array($query3);

// Najwiekszy spamer
$shouts = $row3['shouters'];
   $top_spamer_noformatted = $row3['username'];
   $top_spamer = build_profile_link(format_name($row3['username'], $row3['usergroup'], $row3['displaygroup']), $row3['uid']);

// Wpisy uzytkownika
   $query4 = $db->query("SELECT count(id) as id, uid FROM ".TABLE_PREFIX."dvz_shoutbox WHERE uid='".$mybb->user['uid']."'");
   $our_shouts = $db->fetch_field($query4, "id");

}
 

na podstawie: https://webboard.pl/thread-70746.html