Statystyki Top - wyciąganie prefix'ów z bazy.

Założony przez  Qwizi.

Witam, próbuje edytować plugin Statystyki top i chciałbym do tabelki z np. Last Thread dodać prefixy, oczywiście jeżeli są. 

Aktualnie mam tak, ucinek kodu pluginu
public function widget_LastThreads()
 
   {
 
       global $db$lang$mybb$templates$theme$topStats;

 require_once 
MYBB_ROOT."inc/class_parser.php";
 require_once 
MYBB_ROOT."inc/functions_search.php";

 
$parser = new postParser;

 
$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.prefix, 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))
 
       {
 
$forumpermissions[$row['fid']] = forum_permissions($row['fid']);

 if(isset(
$forumpermissions[$row['fid']]['canonlyviewownthreads']) && $forumpermissions[$row['fid']]['canonlyviewownthreads'] == && $row['uid'] != $mybb->user['uid'])
 {
 continue;
 }

 
$subject $parser->parse_badwords(htmlspecialchars_uni($row['subject']));
 
$tpl['subject'] = (my_strlen($subject) > 30) ? my_substr($subject030) . "..." $subject;
 
           $tpl['username'] = format_name($row['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']);
 
        $tpl['prefix'] = build_prefixes($row['prefix']);
 
$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") . "\";");
 
   
dodałem do zapytania t.prefix oraz zmienną [$tpl['prefix'] = build_prefixes($row['prefix']);

Myślałem, że to wystarczy, ale pokazuje tylko array 
   

Co bym musiał zrobić, żeby zadziałało?
Tutaj brakuje odniesienia do indeksu, skoro to jest tablica.

Abyś się tego dowiedział najlepiej skorzystać z print_r($tpl['prefix']); i wszystko staje się jasne.

Powinno być coś na zasadzie:

$prefix build_prefixes($row['prefix']);
$tpl['prefix'] = $prefix['displaystyle']; 
Prośby na PW dotyczące wsparcia z problemami będą ignorowane. Pomoc poza forum - odpłatna; kontakt: snakemybboard@gmail.com.
(03.09.2017, 08:10)Snake_ napisał(a): Tutaj brakuje odniesienia do indeksu, skoro to jest tablica.

Abyś się tego dowiedział najlepiej skorzystać z print_r($tpl['prefix']); i wszystko staje się jasne.

Powinno być coś na zasadzie:

$prefix build_prefixes($row['prefix']);
$tpl['prefix'] = $prefix['displaystyle']; 

Dziekuję :D.
gdzie edytujesz te prefixy ??
@Quee jeżeli chodzi Ci by było je widać w Statystykach Top to w pluginie (inc -> plugins -> topstats.php (chyba))
To rozumiem że zamiast:

       
Cytat:$tpl['prefix'] = build_prefixes($row['prefix']);

Trzeba wstawić to:

Cytat:$prefix = build_prefixes($row['prefix']);
$tpl['prefix'] = $prefix['displaystyle'];

??
(20.06.2018, 17:31)robiwielki napisał(a): To rozumiem że zamiast:

       
Cytat:$tpl['prefix'] = build_prefixes($row['prefix']);

Trzeba wstawić to:

Cytat:$prefix = build_prefixes($row['prefix']);
$tpl['prefix'] = $prefix['displaystyle'];

??

Tak i potem do szablonu dopisać zmienną {$tpl['prefix'}}
(20.06.2018, 17:52)Qwizi napisał(a): Tak i potem do szablonu dopisać zmienną {$tpl['prefix'}}

Czyli tu Style i szablony -> Szablony -> Szablony globalne -> topStats_LastThreads ??
To wstawiłam:
Cytat:$subject = $parser->parse_badwords(htmlspecialchars_uni($row['subject']));
$tpl['subject'] = (my_strlen($subject) > 30) ? my_substr($subject, 0, 30) . "..." : $subject;
            $tpl['username'] = format_name($row['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']);

$prefix = build_prefixes($row['prefix']);
$tpl['prefix'] = $prefix['displaystyle'];

$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") . "\";");

to też do pliku topStats_LastThreads

Cytat:            <table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
            <tr><td class="thead" colspan="1"><strong>{$lang->topStats_LastThreads}</strong></td></tr>
            {$tpl['prefix']}{$tpl['row']}
            </table><br />


i nic :(
Szablon prędzej topStats_LastThreadsRow. Ten twój to tabelka sama. Dopiero w niej jest zmienna do wyświetlania szablonu, w którym są zawarte wpisy z tematami.
Kodowanie, edycja i tworzenie styli, for, stron, poszczególnych elementów - polecane szczególnie dla osób, które nie potrafią sobie poradzić z problemami.
Dałem w topStats_LastThreadsRow

           
Cytat:<tr><td class="trow1">
           {$tpl['avatar']}
           <a href="{$tpl['subjectlink']}">{$tpl['subject']}{$tpl['prefix']}</a><br />
           {$tpl['profilelink']}<span style="float: right;widthmargin-right: 5px;">{$tpl['date']}</span>
           </td></tr>

i nic, bez zmian,
(20.06.2018, 20:43)robiwielki napisał(a): Dałem w topStats_LastThreadsRow

           
Cytat:<tr><td class="trow1">
           {$tpl['avatar']}
           <a href="{$tpl['subjectlink']}">{$tpl['subject']}{$tpl['prefix']}</a><br />
           {$tpl['profilelink']}<span style="float: right;widthmargin-right: 5px;">{$tpl['date']}</span>
           </td></tr>

i nic, bez zmian,

Dodałeś do zapytania t.prefix?
(20.06.2018, 21:07)Qwizi napisał(a): Dodałeś do zapytania t.prefix?

To znaczy ??

Aaaa wiem.

Oki, działa. Dzięki.



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

1 gości