mała przeróbka statystyk panelu bocznego

Szukam  Założony przez  sauber94.

wersja skryptu MyBB: 1.8.3
adres forum: advertgame.pl
na czym polega problem (screen, opis, komunikaty, nazwa i wersja wtyczki):

Cześć. Chciałem lekko przerobić statystyki panelu bocznego. Mianowicie chciałem dodać do statystyk "NAJNOWSZE TEMATY" odnośnik w jakim dziale został napisany temat.

Używam tych statystyk: http://community.mybb.com/mods.php?action=view&pid=269

Przykład jak mam obecnie a jak chcę zrobić podaję zamieszczam poniżej w formie obrazka.


Załączone pliki Miniatury
   
ADVERTGAME.PL
Adres forum podaj
Adres www podany lecz jest chyba zbędny. Przerobić plugin trzeba tylko jak.

Ok, poprawione.
Daniel Praźmo napisał 07.07.2015, 09:27:
Nie, nie jest zbędny. WSZYSTKIE pola szablonu są obowiązkowe.

https://webboard.pl/thread-62410.html
https://webboard.pl/thread-62570.html
ADVERTGAME.PL
inc/plugins/topStats.php, to:
/**
     * Widget with last threads list
     *   
     */ 
    
public function widget_LastThreads()
    {   
        global 
$db$lang$mybb$templates$theme$topStats;
        require_once 
MYBB_ROOT."inc/functions_search.php";
        
$permsql "";
        
$onlyusfids = array();
        
$group_permissions forum_permissions();
        foreach(
$group_permissions as $fid => $forum_permissions)
        {
            if(isset(
$forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
            {
                
$onlyusfids[] = $fid;
            }
        }
        if(!empty(
$onlyusfids))
        {
            
$permsql .= "AND ((t.fid IN(".implode(','$onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(','$onlyusfids)."))";
        }

        
$unsearchforums get_unsearchable_forums();
        if(
$unsearchforums)
        {
            
$permsql .= " AND t.fid NOT IN ($unsearchforums)";
        }
        
$inactiveforums get_inactive_forums();
        if(
$inactiveforums)
        {
            
$permsql .= " AND t.fid NOT IN ($inactiveforums)";
        }
        
        
$tpl['ignore_forums'] = '';
        if(!empty(
$mybb->settings['topStats_IgnoreForums_LastThreads']))
        {
            
$tpl['ignore_forums'] = "AND t.fid NOT IN ({$mybb->settings['topStats_IgnoreForums_LastThreads']})";
        }    

        
$tpl['row'] = '';
    
        
$sql "SELECT t.uid, t.tid, t.subject, t.dateline, t.fid, u.usergroup, u.displaygroup, u.avatar, u.avatardimensions, u.username, u.uid
                FROM "
.TABLE_PREFIX."threads AS t
                INNER JOIN "
.TABLE_PREFIX."users AS u USING (uid) 
                WHERE 1=1 
{$tpl['ignore_forums']} {$unapproved_where} {$permsql} AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
                ORDER BY t.tid DESC LIMIT "
. (int)$this->getConfig('Limit_LastThreads') ."";
        
$result $db->query($sql);
        while (
$row $db->fetch_array($result))
        {
            
$tpl['subject'] = (my_strlen($row['subject']) > 30) ? my_substr($row['subject'], 030) . "..." $row['subject'];
            
$username = (my_strlen($row['username']) > 3) ? my_substr($row['username'], 03) . "..." $row['username'];
            
$tpl['username'] = format_name($username$row['usergroup'], $row['displaygroup']);            
             
            
            
$tpl['profilelink'] = build_profile_link($tpl['username'], $row['uid']);
            
$tpl['date'] = my_date('relative'$row['dateline']);
            
$tpl['subjectlink'] = get_thread_link($row['tid']);
            
$useravatar format_avatar(htmlspecialchars_uni($row['avatar']), $row['avatardimensions'], my_strtolower($this->getConfig('AvatarWidth')));
            (!
$this->getConfig('Status_Avatar')) ? '' : eval("\$tpl['avatar'] = \"".$templates->get("topStats_LastThreadsAvatar")."\";");
            eval(
"\$tpl['row'] .= \"" $templates->get("topStats_LastThreadsRow") . "\";");
        }
        eval(
"\$topStats['LastThreads'] = \"" $templates->get("topStats_LastThreads") . "\";");
    } 
zamień na:
/**
     * Widget with last threads list
     *   
     */ 
public function widget_LastThreads()
    {   
        global 
$db$lang$mybb$templates$theme$topStats;
        require_once 
MYBB_ROOT."inc/functions_search.php";
        
$permsql "";
        
$onlyusfids = array();
        
$group_permissions forum_permissions();
        foreach(
$group_permissions as $fid => $forum_permissions)
        {
            if(isset(
$forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
            {
                
$onlyusfids[] = $fid;
            }
        }
        if(!empty(
$onlyusfids))
        {
            
$permsql .= "AND ((t.fid IN(".implode(','$onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(','$onlyusfids)."))";
        }

        
$unsearchforums get_unsearchable_forums();
        if(
$unsearchforums)
        {
            
$permsql .= " AND t.fid NOT IN ($unsearchforums)";
        }
        
$inactiveforums get_inactive_forums();
        if(
$inactiveforums)
        {
            
$permsql .= " AND t.fid NOT IN ($inactiveforums)";
        }
        
        
$tpl['ignore_forums'] = '';
        if(!empty(
$mybb->settings['topStats_IgnoreForums_LastThreads']))
        {
            
$tpl['ignore_forums'] = "AND t.fid NOT IN ({$mybb->settings['topStats_IgnoreForums_LastThreads']})";
        }    

        
$tpl['row'] = '';
    
        
$sql "SELECT t.uid, t.tid, t.subject, t.dateline, t.fid, u.usergroup, u.displaygroup, u.avatar, u.avatardimensions, u.username, u.uid, f.fid, f.name
                FROM "
.TABLE_PREFIX."threads AS t
                INNER JOIN "
.TABLE_PREFIX."users AS u USING (uid) 
                INNER JOIN "
.TABLE_PREFIX."forums AS f USING (fid) 
                WHERE 1=1 
{$tpl['ignore_forums']} {$unapproved_where} {$permsql} AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
                ORDER BY t.tid DESC LIMIT "
. (int)$this->getConfig('Limit_LastThreads') ."";
        
$result $db->query($sql);
        while (
$row $db->fetch_array($result))
        {
            
$tpl['subject'] = (my_strlen($row['subject']) > 30) ? my_substr($row['subject'], 030) . "..." $row['subject'];
            
$username = (my_strlen($row['username']) > 3) ? my_substr($row['username'], 03) . "..." $row['username'];
            
$tpl['username'] = format_name($username$row['usergroup'], $row['displaygroup']);            
             
            
            
$tpl['profilelink'] = build_profile_link($tpl['username'], $row['uid']);
            
$tpl['date'] = my_date('relative'$row['dateline']);
            
$tpl['subjectlink'] = get_thread_link($row['tid']);
$forum_link get_forum_link($row['fid']); //dodałem
            
$forum get_forum($row['fid']);
            
$tpl['name'] = $forum['name'];
            
$useravatar format_avatar(htmlspecialchars_uni($row['avatar']), $row['avatardimensions'], my_strtolower($this->getConfig('AvatarWidth')));
            (!
$this->getConfig('Status_Avatar')) ? '' : eval("\$tpl['avatar'] = \"".$templates->get("topStats_LastThreadsAvatar")."\";");
            eval(
"\$tpl['row'] .= \"" $templates->get("topStats_LastThreadsRow") . "\";");
        }
        eval(
"\$topStats['LastThreads'] = \"" $templates->get("topStats_LastThreads") . "\";");
    } 

inc/plugins/topStats.tpl.php:
self::$tpl[] = array(
            
"tid" => NULL,
            
"title" => 'topStats_LastThreadsRow',
            
"template" => $db->escape_string('
            <tr><td class="trow1">
            {$tpl[\'avatar\']}
            <a href="{$tpl[\'subjectlink\']}">{$tpl[\'subject\']}</a><br />
            {$tpl[\'profilelink\']}<span style="float: right;widthmargin-right: 5px;">{$tpl[\'date\']}</span>
            </td></tr>
            '
),
            
"sid" => "-1",
            
"version" => "1.0",
            
"dateline" => TIME_NOW,
        ); 
zamień na:
self::$tpl[] = array(
            
"tid" => NULL,
            
"title" => 'topStats_LastThreadsRow',
            
"template" => $db->escape_string('
            <tr><td class="trow1">
            {$tpl[\'avatar\']}
            <a href="{$tpl[\'subjectlink\']}">{$tpl[\'subject\']}</a><br />
            W <a href="{$forum_link}">{$tpl[\'name\']}</a><br />
            {$tpl[\'profilelink\']}<span style="float: right;widthmargin-right: 5px;">{$tpl[\'date\']}</span>
            </td></tr>
            '
),
            
"sid" => "-1",
            
"version" => "1.0",
            
"dateline" => TIME_NOW,
        ); 
Pamiętaj, aby po tych zmianach przeinstalować wtyczkę (albo zrobić zmiany w pierwszym pliku, a potem tylko w szablonie (na podstawie drugiego pliku edycyjnego).
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
Działa wedle mojego oczekiwania :P


Załączone pliki Miniatury
   
ADVERTGAME.PL
Oops. Moje przeoczenie. W kodzie HTML uwzględniłem zmienną w linku ($forum_link), ale w pliku pierwszym do edycji zapomniałem... Teraz edytowałem kod - zobacz sobie poprawkę; szukaj pod komentarzem "//dodałem".
Wtedy powinno działać jak należy.
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
Ja tam nie widzę różnicy po dodaniu tej linii  :)
ADVERTGAME.PL
Powinien być prawidłowy link, no cóż, ważne że działa. :)
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.



Użytkownicy przeglądający ten wątek:

1 gości