Webboard

Pełna wersja: Jak wykluczyć konkretne wątki i działy ze statystyk forum?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Wersja skryptu MyBB:1.8.3
Adres forum:http://odjechani.com.pl
Chciałem wywalić bezwartościowe wątki ze statystyk.

Tak więc poszukuję albo pluginu jeśli takowy istnieje, chociaż na oficjalnej stronie z dodatkami do mybb 1.8 takowego nie znalazłem, do tego, aby poszczególne działy i wątki móc wykluczać ze statystyk forum. Czy istnieje na to jakiś trick, ewentualnie modyfikacja? Wiadomo, że wątki typu liczymy do 5000 nie powinny zaśmiecać forum, ale mamy taki dział "Gry i zabawy", który własnie polega na wymyślaniu różnego rodzaju pierdół w stylu "Oceń mnie po awatarze" itd, myślę, każdy rozumie o czym piszę. Nie chcę aby taki dział był wliczany w statystyki i nie wiem jak ugryźć to, aby się tych wątków stamtąd pozbyć.

Jakiś wskazówki, porady, talerz z rozwiązaniem? ;)
ACP -> Działy i posty -> Edytuj
Dodawaj posty napisane w tym dziale do liczników postów użytkowników
Dodawaj wątki napisane w tym dziale do liczników wątków użytkowników
Odznacz to.

Co do tego, żeby posty danej grupy nie były brane do statystyk forum to nie słyszałem o czymś takim.

, nie przeczytałem ze zrozumieniem, można usunąć ;x
Również ostatnio walczyłem z tym problemem. ;)
inc/class_datacache.php:
Kod PHP:
    /**
     * Update the statistics cache
     *
     */
    
function update_statistics()
    {
        global 
$db;

        
$query $db->simple_select('forums''fid, threads, posts'$fidnot.'type=\'f\'', array('order_by' => 'posts''order_dir' => 'DESC''limit' => 1));
        
$forum $db->fetch_array($query);

        
$query $db->simple_select('users''uid, username, referrals''referrals>0', array('order_by' => 'referrals''order_dir' => 'DESC''limit' => 1));
        
$topreferrer $db->fetch_array($query);

        
$timesearch TIME_NOW 86400;
        switch(
$db->type)
        {
            case 
'pgsql':
                
$group_by $db->build_fields_string('users''u.');
                break;
            default:
                
$group_by 'p.uid';
                break;
        }

        
$query $db->query('
            SELECT u.uid, u.username, COUNT(*) AS poststoday
            FROM '
.TABLE_PREFIX.'posts p
            LEFT JOIN '
.TABLE_PREFIX.'users u ON (p.uid=u.uid)
            WHERE p.dateline>'
.$timesearch.'
            GROUP BY '
.$group_by.' ORDER BY poststoday DESC
            LIMIT 1
        '
);
        
$topposter $db->fetch_array($query);

        
$query $db->simple_select('users''COUNT(*) AS posters''postnum>0');
        
$posters $db->fetch_field($query'posters');

        
$statistics = array(
            
'time' => TIME_NOW,
            
'top_forum' => (array)$forum,
            
'top_referrer' => (array)$topreferrer,
            
'top_poster' => (array)$topposter,
            
'posters' => (int)$posters,
        );

        
$this->update('statistics'$statistics);
    } 
Po prostu dodaj ignorowanie działu.
W ten fragment odnosi się do:
[Obrazek: 54df6d62cef4d.png]
Ja w swoim przypadku ignorowałem dział "Kosz".
No dobra, a czy to będzie się odnosić również do "Najpopularnijszych wątków", "Najwięcej wyświetleń", bo głównie o te statystyki mi chodzi?
Hmm, możliwe, że to będzie ten fragment:
Kod PHP:
    function update_most_replied_threads()
    {
        global 
$db$mybb;

        
$threads = array();

        
$query $db->simple_select("threads""tid, subject, replies, fid""visible='1'", array('order_by' => 'replies''order_dir' => 'DESC''limit_start' => 0'limit' => $mybb->settings['statslimit']));
        while(
$thread $db->fetch_array($query))
        {
            
$threads[] = $thread;
        }

        
$this->update("most_replied_threads"$threads);
    }

    function 
update_most_viewed_threads()
    {
        global 
$db$mybb;

        
$threads = array();

        
$query $db->simple_select("threads""tid, subject, views, fid""visible='1'", array('order_by' => 'views''order_dir' => 'DESC''limit_start' => 0'limit' => $mybb->settings['statslimit']));
        while(
$thread $db->fetch_array($query))
        {
            
$threads[] = $thread;
        }

        
$this->update("most_viewed_threads"$threads);
    } 
Lecz jak na razie nie jestem w stanie niczego więcej doradzić...