Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Plugin pokazujący tematy w informacjach w poście - Fatal error?

PHP/MYSQL  Założony przez  GiboneKPL.

Rozwiązania nie znalazłem, ale jestem bliżej tylko mam pewien problem.
function threads_postbit (&$post) {
    global 
$db;
    static 
$cache;
    
    if (empty(
$cache[$post['uid']]))
    {
        
$sql "SELECT COUNT(tid) as num_threads 
                FROM "
.TABLE_PREFIX."threads 
                WHERE uid = '
{$post['uid']}'"
        
$query $db->query($sql);
        
$cache[$post['uid']] = (int) $db->fetch_field($query'num_threads');
        }
        
    
$post['num_threads'] = $cache[$post['uid']];
echo (
$post['num_threads']);


Używając echo wyświetla się u góry ilość wątków, więc wszystko jest okej. Tylko dlaczego MyBB nie reaguje na:
{$post['num_threads']} 
Trzeba byłoby przekonać jakoś MyBB, aby raczyła w miejscu pod postami wyświetlić tą ilość tematów...
Jakieś wskazówki? :P
No to pewnie winny jest tutaj nieodpowiedni hook.
Hook na pewno jest dobry. Jakby był zły, to na stronie z postem u góry nie wyświetlało by mi się echo. :P
Można dodać w ten sposób (będzie na samym dole postbit_author_user w nowej linii, nic nie trzeba dodawać do szablonu):
$plugins->add_hook("postbit""threads_postbit"); 
function 
threads_postbit (&$post) {
    global 
$db;
    static 
$cache;
    
    if (empty(
$cache[$post['uid']]))
    {
        
$sql "SELECT COUNT(tid) as num_threads 
                FROM "
.TABLE_PREFIX."threads 
                WHERE uid = '
{$post['uid']}'"
        
$query $db->query($sql);
        
$cache[$post['uid']] = (int) $db->fetch_field($query'num_threads');
        }
        
    
$post['num_threads'] = $cache[$post['uid']];
    
$post['user_details'] .= "<br />Tematy:".$post['num_threads'];
    return 
$post;


Lub jeśli konieczne jest użycie szablonu (w postbit_author_user należy umieścić komentarz <!--tematy--> i zostanie on zamieniony):
$plugins->add_hook("postbit""threads_postbit"); 
function 
threads_postbit (&$post) {
    global 
$db;
    static 
$cache;
    
    if (empty(
$cache[$post['uid']]))
    {
        
$sql "SELECT COUNT(tid) as num_threads 
                FROM "
.TABLE_PREFIX."threads 
                WHERE uid = '
{$post['uid']}'"
        
$query $db->query($sql);
        
$cache[$post['uid']] = (int) $db->fetch_field($query'num_threads');
        }
        
    
$post['num_threads'] = $cache[$post['uid']];
    
$post['user_details'] = str_replace('<!--tematy-->'$post['num_threads'],  $post['user_details']); 
    return 
$post;


Można też użyć Waszego poprzedniego kodu i wstawić {$post['num_threads']} do postbit/postbit_classic.

Dlaczego tak? Hook postbit jest umiejscowiony w takim miejscu, że zmienne dodane do postbit_author_user nie są czytane i trzeba sobie radzić inaczej.
Czyli nie możliwe jest wykorzystanie tej zmiennej w postbit_author_user?? :<
Przecież dostałeś rozwiązanie jak zastąpić tą funkcje zmiennej w szablonie. W czym problem?



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

1 gości