Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
Für Gäste keine Themen- und Beitragszahl
#21
Puh, so jetzt mit etwas Ruhe und euren Hinweisen ist es mir gelungen. Ich weiß nicht was da für eine seltsame forumdisplay auf dem Server lag, aber mit der Original-Datei hat es mit den vorgeschlagenen Löschungen funktioniert...
Zitieren
#22
Hallo,

habe alle Änderungen genauso übernommen - funktioniert auch prima für die Gäste. Allerdings kann ich nun im eingeloggten Zustand kein Forum mehr aufrufen. Klicke ich auf den Forentitel - (nicht auf einen Beitrag) dann werde ich zu forumdisplay.php/jeweiligeforumsfid weitergeleitet und die Seite bleibt weiß.

Nehme ich alle Änderungen wieder heraus - funktioniert wieder alles prima - bis auf eben die Sichtbarkeit von Titel und Datum für Gäste bei den Beiträgen.

Habe euch meine forumdisplay.php einmal angehängt - ich hoffe jemand findet den Fehler (:

LG und vielen Dank im Vorraus (:



PHP-Code:
<?php

/**

 * MyBB 1.6

 * Copyright 2010 MyBB Group, All Rights Reserved

 *

 * Website: http://mybb.com

 * License: http://mybb.com/about/license

 *

 * $Id$

 */



define("IN_MYBB"1);

define('THIS_SCRIPT''forumdisplay.php');



$templatelist "forumdisplay,forumdisplay_thread,forumbit_depth1_cat,forumbit_depth1_forum,forumbit_depth2_cat,forumbit_depth2_forum,forumdisplay_subforums,forumdisplay_threadlist,forumdisplay_moderatedby,forumdisplay_newthread,forumdisplay_searchforum,forumdisplay_orderarrow,forumdisplay_thread_rating,forumdisplay_threadlist_rating,forumdisplay_threadlist_sortrating,forumbit_moderators,forumbit_subforums,forumbit_depth2_forum_lastpost";

$templatelist .= ",forumbit_depth1_forum_lastpost,forumdisplay_thread_multipage_page,forumdisplay_thread_multipage,forumdisplay_thread_multipage_more";

$templatelist .= ",multipage_prevpage,multipage_nextpage,multipage_page_current,multipage_page,multipage_start,multipage_end,multipage";

$templatelist .= ",forumjump_advanced,forumjump_special,forumjump_bit,forumdisplay_password_wrongpass,forumdisplay_password";

$templatelist .= ",forumdisplay_usersbrowsing_user,forumdisplay_usersbrowsing,forumdisplay_inlinemoderation,forumdisplay_thread_modbit,forumdisplay_inlinemoderation_col,forumdisplay_inlinemoderation_selectall,forumdisplay_threadlist_clearpass";

$templatelist .= ",forumdisplay_announcements_announcement,forumdisplay_announcements,forumdisplay_threads_sep,forumbit_depth3_statusicon,forumbit_depth3,forumdisplay_sticky_sep,forumdisplay_thread_attachment_count,forumdisplay_threadlist_inlineedit_js,forumdisplay_rssdiscovery,forumdisplay_announcement_rating,forumdisplay_announcements_announcement_modbit,forumdisplay_rules,forumdisplay_rules_link,forumdisplay_thread_gotounread,forumdisplay_nothreads,forumdisplay_inlinemoderation_custom_tool,forumdisplay_inlinemoderation_custom";

require_once 
"./global.php";

require_once 
MYBB_ROOT."inc/functions_post.php";

require_once 
MYBB_ROOT."inc/functions_forumlist.php";

require_once 
MYBB_ROOT."inc/class_parser.php";

$parser = new postParser;



$orderarrow $sortsel = array('rating' => '''subject' => '''starter' => '''started' => '''replies' => '''views' => '');

$ordersel = array('asc' => '''desc' => '');

$datecutsel = array(=> ''=> ''10 => ''20 => ''50 => ''75 => ''100 => ''365 => ''9999 => '');

$rules '';



// Load global language phrases

$lang->load("forumdisplay");



$plugins->run_hooks("forumdisplay_start");



$fid intval($mybb->input['fid']);

if(
$fid 0)

{

    switch(
$fid)

    {

        case 
"-1":

            
$location "index.php";

            break;

        case 
"-2":

            
$location "search.php";

            break;

        case 
"-3":

            
$location "usercp.php";

            break;

        case 
"-4":

            
$location "private.php";

            break;

        case 
"-5":

            
$location "online.php";

            break;

    }

    if(
$location)

    {

        
header("Location: ".$location);

        exit;

    }

}



// Get forum info

$foruminfo get_forum($fid);

if(!
$foruminfo)

{

    
error($lang->error_invalidforum);

}



$archive_url build_archive_link("forum"$fid);



$currentitem $fid;

build_forum_breadcrumb($fid);

$parentlist $foruminfo['parentlist'];



// To validate, turn & to &amp; but support unicode

$foruminfo['name'] = preg_replace("#&(?!\#[0-9]+;)#si""&amp;"$foruminfo['name']);



$forumpermissions forum_permissions();
$fpermissions $forumpermissions[$fid];

if(
$fpermissions['canview'] != || $fpermissions['canviewthreads'] != 1


    
error_no_permission();

}



if(
$mybb->user['uid'] == 0)

{

    
// Cookie'd forum read time

    
$forumsread my_unserialize($mybb->cookies['mybb']['forumread']);



     if(
is_array($forumsread) && empty($forumsread))

     {

         if(
$mybb->cookies['mybb']['readallforums'])

        {

            
$forumsread[$fid] = $mybb->cookies['mybb']['lastvisit'];

        }

        else

        {

             
$forumsread = array();

        }

     }



    
$query $db->simple_select("forums""*""active != 0", array("order_by" => "pid, disporder"));

}

else

{

    
// Build a forum cache from the database

    
$query $db->query("

        SELECT f.*, fr.dateline AS lastread

        FROM "
.TABLE_PREFIX."forums f

        LEFT JOIN "
.TABLE_PREFIX."forumsread fr ON (fr.fid=f.fid AND fr.uid='{$mybb->user['uid']}')

        WHERE f.active != 0

        ORDER BY pid, disporder

    "
);

}



while(
$forum $db->fetch_array($query))

{

    if(
$mybb->user['uid'] == && $forumsread[$forum['fid']])

    {

        
$forum['lastread'] = $forumsread[$forum['fid']];

    }



    
$fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;

}



// Get the forum moderators if the setting is enabled.

if($mybb->settings['modlist'] != 0)

{

    
$moderatorcache $cache->read("moderators");

}



$bgcolor "trow1";

if(
$mybb->settings['subforumsindex'] != 0)

{

    
$showdepth 3;

}

else

{

    
$showdepth 2;

}



$subforums '';

$child_forums build_forumbits($fid2);

$forums $child_forums['forum_list'];



if(
$forums)

{

    
$lang->sub_forums_in $lang->sprintf($lang->sub_forums_in$foruminfo['name']);

    eval(
"\$subforums = \"".$templates->get("forumdisplay_subforums")."\";");

}



$excols "forumdisplay";



// Password protected forums

check_forum_password($foruminfo['fid']);



if(
$foruminfo['linkto'])

{

    
header("Location: {$foruminfo['linkto']}");

    exit;

}



// Make forum jump...

if($mybb->settings['enableforumjump'] != 0)

{

    
$forumjump build_forum_jump(""$fid1);

}



if(
$foruminfo['type'] == "f" && $foruminfo['open'] != 0)

{

    eval(
"\$newthread = \"".$templates->get("forumdisplay_newthread")."\";");

}



if(
$fpermissions['cansearch'] != && $foruminfo['type'] == "f")

{

    eval(
"\$searchforum = \"".$templates->get("forumdisplay_searchforum")."\";");

}



// Gather forum stats

$has_announcements $has_modtools false;

$forum_stats $cache->read("forumsdisplay");



if(
is_array($forum_stats))

{

    if(!empty(
$forum_stats[-1]['modtools']) || !empty($forum_stats[$fid]['modtools']))

    {

        
// Mod tools are specific to forums, not parents

        
$has_modtools true;

    }



    if(!empty(
$forum_stats[-1]['announcements']) || !empty($forum_stats[$fid]['announcements']))

    {

        
// Global or forum-specific announcements

        
$has_announcements true;

    }

}



$done_moderators = array(

    
"users" => array(),

    
"groups" => array()

);



$moderators '';

$parentlistexploded explode(","$parentlist);



foreach(
$parentlistexploded as $mfid)

{

    
// This forum has moderators

    
if(is_array($moderatorcache[$mfid]))

    {

        
// Fetch each moderator from the cache and format it, appending it to the list

        
foreach($moderatorcache[$mfid] as $modtype)

        {

            foreach(
$modtype as $moderator)

            {

                if(
$moderator['isgroup'])

                {

                    if(
in_array($moderator['id'], $done_moderators['groups']))

                    {

                        continue;

                    }

                    
$moderators .= $comma.htmlspecialchars_uni($moderator['title']);

                    
$done_moderators['groups'][] = $moderator['id'];

                }

                else

                {

                    if(
in_array($moderator['id'], $done_moderators['users']))

                    {

                        continue;

                    }

                    
$moderators .= "{$comma}<a href=\"".get_profile_link($moderator['id'])."\">".format_name(htmlspecialchars_uni($moderator['username']), $moderator['usergroup'], $moderator['displaygroup'])."</a>";

                    
$done_moderators['users'][] = $moderator['id'];

                }

                
$comma $lang->comma;

            }

        }

    



    if(!empty(
$forum_stats[$mfid]['announcements']))

    {

        
$has_announcements true;

    }

}

$comma '';



// If we have a moderators list, load the template

if($moderators)

{

    eval(
"\$moderatedby = \"".$templates->get("forumdisplay_moderatedby")."\";");

}

else

{

    
$moderatedby '';

}



// Get the users browsing this forum.

if($mybb->settings['browsingthisforum'] != 0)

{

    
$timecut TIME_NOW $mybb->settings['wolcutoff'];



    
$comma '';

    
$guestcount 0;

    
$membercount 0;

    
$inviscount 0;

    
$onlinemembers '';

    
$doneusers = array();



    
$query $db->query("

        SELECT s.ip, s.uid, u.username, s.time, u.invisible, u.usergroup, u.usergroup, u.displaygroup

        FROM "
.TABLE_PREFIX."sessions s

        LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid=u.uid)

        WHERE s.time > '
$timecut' AND location1='$fid' AND nopermission != 1

        ORDER BY u.username ASC, s.time DESC

    "
);



    while(
$user $db->fetch_array($query))

    {

        if(
$user['uid'] == 0)

        {

            ++
$guestcount;

        }

        else

        {

            if(empty(
$doneusers[$user['uid']]) || $doneusers[$user['uid']] < $user['time'])

            {

                
$doneusers[$user['uid']] = $user['time'];

                ++
$membercount;

                if(
$user['invisible'] == 1)

                {

                    
$invisiblemark "*";

                    ++
$inviscount;

                }

                else

                {

                    
$invisiblemark '';

                }

                

                if(
$user['invisible'] != || $mybb->usergroup['canviewwolinvis'] == || $user['uid'] == $mybb->user['uid'])

                {

                    
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);

                    
$user['profilelink'] = build_profile_link($user['username'], $user['uid']);

                    eval(
"\$onlinemembers .= \"".$templates->get("forumdisplay_usersbrowsing_user"10)."\";");

                    
$comma $lang->comma;

                }

            }

        }

    }



    
$guestsonline '';

    if(
$guestcount)

    {

        
$guestsonline $lang->sprintf($lang->users_browsing_forum_guests$guestcount);

    }



    
$onlinesep '';

    if(
$guestcount && $onlinemembers)

    {

        
$onlinesep $lang->comma;

    }

    

    
$invisonline '';

    if(
$inviscount && $mybb->usergroup['canviewwolinvis'] != && ($inviscount != && $mybb->user['invisible'] != 1))

    {

        
$invisonline $lang->sprintf($lang->users_browsing_forum_invis$inviscount);

    }



    
$onlinesep2 '';

    if(
$invisonline != '' && $guestcount)

    {

        
$onlinesep2 $lang->comma;

    }

    eval(
"\$usersbrowsing = \"".$templates->get("forumdisplay_usersbrowsing")."\";");

}



// Do we have any forum rules to show for this forum?

$forumrules '';

if(
$foruminfo['rulestype'] != && $foruminfo['rules'])

{

    if(!
$foruminfo['rulestitle'])

    {

        
$foruminfo['rulestitle'] = $lang->sprintf($lang->forum_rules$foruminfo['name']);

    }

    

    
$rules_parser = array(

        
"allow_html" => 1,

        
"allow_mycode" => 1,

        
"allow_smilies" => 1,

        
"allow_imgcode" => 1

    
);



    
$foruminfo['rules'] = $parser->parse_message($foruminfo['rules'], $rules_parser);

    if(
$foruminfo['rulestype'] == || $foruminfo['rulestype'] == 3)

    {

        eval(
"\$rules = \"".$templates->get("forumdisplay_rules")."\";");

    }

    else if(
$foruminfo['rulestype'] == 2)

    {

        eval(
"\$rules = \"".$templates->get("forumdisplay_rules_link")."\";");

    }

}



$bgcolor "trow1";



// Set here to fetch only approved topics (and then below for a moderator we change this).

$visibleonly "AND visible='1'";

$tvisibleonly "AND t.visible='1'";



// Check if the active user is a moderator and get the inline moderation tools.

if(is_moderator($fid))

{

    eval(
"\$inlinemodcol = \"".$templates->get("forumdisplay_inlinemoderation_col")."\";");

    
$ismod true;

    
$inlinecount "0";

    
$inlinecookie "inlinemod_forum".$fid;

    
$visibleonly " AND (visible='1' OR visible='0')";

    
$tvisibleonly " AND (t.visible='1' OR t.visible='0')";

}

else

{

    
$inlinemod '';

    
$ismod false;

}



if(
is_moderator($fid"caneditposts") || $fpermissions['caneditposts'] == 1)

{

    
$can_edit_titles 1;

}

else

{

    
$can_edit_titles 0;

}



unset(
$rating);



// Pick out some sorting options.

// First, the date cut for the threads.

$datecut 0;

if(empty(
$mybb->input['datecut']))

{

    
// If the user manually set a date cut, use it.

    
if($mybb->user['daysprune'])

    {

        
$datecut $mybb->user['daysprune'];

    }

    else

    {

        
// If the forum has a non-default date cut, use it.

        
if(!empty($foruminfo['defaultdatecut']))

        {

            
$datecut $foruminfo['defaultdatecut'];

        }

    }

}

// If there was a manual date cut override, use it.

else

{

    
$datecut intval($mybb->input['datecut']);

}



$datecut intval($datecut);

$datecutsel[$datecut] = "selected=\"selected\"";

if(
$datecut && $datecut != 9999)

{

    
$checkdate TIME_NOW - ($datecut 86400);

    
$datecutsql "AND (lastpost >= '$checkdate' OR sticky = '1')";

    
$datecutsql2 "AND (t.lastpost >= '$checkdate' OR t.sticky = '1')";

}

else

{

    
$datecutsql '';

    
$datecutsql2 '';

}



// Pick the sort order.

if(!isset($mybb->input['order']) && !empty($foruminfo['defaultsortorder']))

{

    
$mybb->input['order'] = $foruminfo['defaultsortorder'];

}



if(!empty(
$mybb->input['order']))

{

    
$mybb->input['order'] = htmlspecialchars_uni($mybb->input['order']);

}

else

{

    
$mybb->input['order'] = '';

}



switch(
my_strtolower($mybb->input['order']))

{

    case 
"asc":

        
$sortordernow "asc";

        
$ordersel['asc'] = "selected=\"selected\"";

        
$oppsort $lang->desc;

        
$oppsortnext "desc";

        break;

    default:

        
$sortordernow "desc";

        
$ordersel['desc'] = "selected=\"selected\"";

        
$oppsort $lang->asc;

        
$oppsortnext "asc";

        break;

}



// Sort by which field?

if(!isset($mybb->input['sortby']) && !empty($foruminfo['defaultsortby']))

{

    
$mybb->input['sortby'] = $foruminfo['defaultsortby'];

}



$t "t.";

$sortfield2 '';



if(!empty(
$mybb->input['sortby']))

{

    
$sortby htmlspecialchars_uni($mybb->input['sortby']);

}

else

{

    
$mybb->input['sortby'] = '';

}



switch(
$mybb->input['sortby'])

{

    case 
"subject":

        
$sortfield "subject";

        break;

    case 
"replies":

        
$sortfield "replies";

        break;

    case 
"views":

        
$sortfield "views";

        break;

    case 
"starter":

        
$sortfield "username";

        break;

    case 
"rating":

        
$t "";

        
$sortfield "averagerating";

        
$sortfield2 ", t.totalratings DESC";

        break;

    case 
"started":

        
$sortfield "dateline";

        break;

    default:

        
$sortby "lastpost";

        
$sortfield "lastpost";

        
$mybb->input['sortby'] = "lastpost";

        break;

}



$sortsel['rating'] = ''// Needs to be initialized in order to speed-up things. Fixes #2031

$sortsel[$mybb->input['sortby']] = "selected=\"selected\"";



// Pick the right string to join the sort URL

if($mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && isset($_SERVER['SEO_SUPPORT']) && $_SERVER['SEO_SUPPORT'] == 1))

{

    
$string "?";

}

else

{

    
$string "&amp;";

}



// Are we viewing a specific page?

if(isset($mybb->input['page']) && is_numeric($mybb->input['page']))

{

    
$sorturl get_forum_link($fid$mybb->input['page']).$string."datecut=$datecut";

}

else

{

    
$sorturl get_forum_link($fid).$string."datecut=$datecut";

}



// Needs to be initialized in order to speed-up things. Fixes #2031

$orderarrow = array('rating'=>'''subject'=>'''starter'=>'''replies'=>'''views'=>''); 

eval(
"\$orderarrow['$sortby'] = \"".$templates->get("forumdisplay_orderarrow")."\";");



$threadcount 0;

$useronly $tuseronly "";

if(isset(
$fpermissions['canonlyviewownthreads']) && $fpermissions['canonlyviewownthreads'] == 1)

{

    
$useronly "AND uid={$mybb->user['uid']}";

    
$tuseronly "AND t.uid={$mybb->user['uid']}";

}




    

    
// How many posts are there?

    
if($datecut || isset($fpermissions['canonlyviewownthreads']) && $fpermissions['canonlyviewownthreads'] == 1)

    {

        
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly $datecutsql");

        
$threadcount $db->fetch_field($query"threads");

    }

    else

    {

        
$query $db->simple_select("forums""threads, unapprovedthreads""fid = '{$fid}'", array('limit' => 1));

        
$forum_threads $db->fetch_array($query);

        
$threadcount $forum_threads['threads'];

        if(
$ismod == true)

        {

            
$threadcount += $forum_threads['unapprovedthreads'];

        }

        

        
// If we have 0 threads double check there aren't any "moved" threads

        
if($threadcount == 0)

        {

            
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly", array('limit' => 1));

            
$threadcount $db->fetch_field($query"threads");

        }

    }

}



// How many pages are there?

if(!$mybb->settings['threadsperpage'])

{

    
$mybb->settings['threadsperpage'] = 20;

}



$perpage $mybb->settings['threadsperpage'];



if(isset(
$mybb->input['page']) && intval($mybb->input['page']) > 0)

{

    
$page intval($mybb->input['page']);

    
$start = ($page-1) * $perpage;

    
$pages $threadcount $perpage;

    
$pages ceil($pages);

    if(
$page $pages || $page <= 0)

    {

        
$start 0;

        
$page 1;

    }

}

else

{

    
$start 0;

    
$page 1;

}



$end $start $perpage;

$lower $start 1;

$upper $end;



if(
$upper $threadcount)

{

    
$upper $threadcount;

}



// Assemble page URL

if($mybb->input['sortby'] || $mybb->input['order'] || $mybb->input['datecut']) // Ugly URL

{    

    
$page_url str_replace("{fid}"$fidFORUM_URL_PAGED);

    

    if(
$mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && isset($_SERVER['SEO_SUPPORT']) && $_SERVER['SEO_SUPPORT'] == 1))

    {

        
$q "?";

        
$and '';

    }

    else

    {

        
$q '';

        
$and "&";

    }

    

    if((!empty(
$foruminfo['defaultsortby']) && $sortby != $foruminfo['defaultsortby']) || (empty($foruminfo['defaultsortby']) && $sortby != "lastpost"))

    {

        
$page_url .= "{$q}{$and}sortby={$sortby}";

        
$q '';

        
$and "&";

    }

    

    if(
$sortordernow != "desc")

    {

        
$page_url .= "{$q}{$and}order={$sortordernow}";

        
$q '';

        
$and "&";

    }

    

    if(
$datecut 0)

    {

        
$page_url .= "{$q}{$and}datecut={$datecut}";

    }

}

else

{

    
$page_url str_replace("{fid}"$fidFORUM_URL_PAGED);

}

$multipage multipage($threadcount$perpage$page$page_url);



if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $fpermissions['canviewthreads'] != 0)

{

    
$lang->load("ratethread");



    switch(
$db->type)

    {

        case 
"pgsql":

            
$ratingadd "CASE WHEN t.numratings=0 THEN 0 ELSE t.totalratings/t.numratings::numeric END AS averagerating, ";

            break;

        default:

            
$ratingadd "(t.totalratings/t.numratings) AS averagerating, ";

    }



    
$lpbackground "trow2";

    eval(
"\$ratingcol = \"".$templates->get("forumdisplay_threadlist_rating")."\";");

    eval(
"\$ratingsort = \"".$templates->get("forumdisplay_threadlist_sortrating")."\";");

    
$colspan "7";

}

else

{

    if(
$sortfield == "averagerating")

    {

        
$t "t.";

        
$sortfield "lastpost";

    }

    
$ratingadd '';

    
$lpbackground "trow1";

    
$colspan "6";

}



if(
$ismod)

{

    ++
$colspan;

}



// Get Announcements

if($has_announcements == true)

{

    
$limit '';

    
$announcements '';

    if(
$mybb->settings['announcementlimit'])

    {

        
$limit "LIMIT 0, ".$mybb->settings['announcementlimit'];

    }



    
$sql build_parent_list($fid"fid""OR"$parentlist);

    
$time TIME_NOW;

    
$query $db->query("

        SELECT a.*, u.username

        FROM "
.TABLE_PREFIX."announcements a

        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=a.uid)

        WHERE a.startdate<='
$time' AND (a.enddate>='$time' OR a.enddate='0') AND ($sql OR fid='-1')

        ORDER BY a.startdate DESC 
$limit

    "
);



    
// See if this announcement has been read in our announcement array

    
$cookie = array();

    if(isset(
$mybb->cookies['mybb']['announcements']))

    {

        
$cookie my_unserialize(stripslashes($mybb->cookies['mybb']['announcements']));

    }



    
$announcementlist '';

    
$bgcolor alt_trow(true); // Reset the trow colors

    
while($announcement $db->fetch_array($query))

    {

        if(
$announcement['startdate'] > $mybb->user['lastvisit'] && !$cookie[$announcement['aid']])

        {

            
$new_class ' class="subject_new"';

            
$folder "newfolder";

        }

        else

        {

            
$new_class ' class="subject_old"';

            
$folder "folder";

        }



        
// Mmm, eat those announcement cookies if they're older than our last visit

        
if($cookie[$announcement['aid']] < $mybb->user['lastvisit'])

        {

            unset(
$cookie[$announcement['aid']]);

        }



        
$announcement['announcementlink'] = get_announcement_link($announcement['aid']);

        
$announcement['subject'] = $parser->parse_badwords($announcement['subject']);

        
$announcement['subject'] = htmlspecialchars_uni($announcement['subject']);

        
$postdate my_date($mybb->settings['dateformat'], $announcement['startdate']);

        
$posttime my_date($mybb->settings['timeformat'], $announcement['startdate']);

        
$announcement['profilelink'] = build_profile_link($announcement['username'], $announcement['uid']);



        if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $fpermissions['canviewthreads'] != 0)

        {

            eval(
"\$rating = \"".$templates->get("forumdisplay_announcement_rating")."\";");

            
$lpbackground "trow2";

        }

        else

        {

            
$rating '';

            
$lpbackground "trow1";

        }



        if(
$ismod)

        {

            eval(
"\$modann = \"".$templates->get("forumdisplay_announcements_announcement_modbit")."\";");

        }

        else

        {

            
$modann '';

        }



        
$plugins->run_hooks("forumdisplay_announcement");

        eval(
"\$announcements .= \"".$templates->get("forumdisplay_announcements_announcement")."\";");

        
$bgcolor alt_trow();

    }



    if(
$announcements)

    {

        eval(
"\$announcementlist = \"".$templates->get("forumdisplay_announcements")."\";");

        
$shownormalsep true;

    }



    if(empty(
$cookie))

    {

        
// Clean up cookie crumbs

        
my_setcookie('mybb[announcements]'0, (TIME_NOW - (60*60*24*365)));

    }

    else if(!empty(
$cookie))

    {

        
my_setcookie("mybb[announcements]"addslashes(serialize($cookie)), -1);

    }

}

else

{

    
$announcementlist '';

}



$tids $threadcache = array();

$icon_cache $cache->read("posticons");





    
// Start Getting Threads

    
$query $db->query("

        SELECT t.*, 
{$ratingadd}t.username AS threadusername, u.username

        FROM "
.TABLE_PREFIX."threads t

        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)

        WHERE t.fid='
$fid$tuseronly $tvisibleonly $datecutsql2

        ORDER BY t.sticky DESC, 
{$t}{$sortfield} $sortordernow $sortfield2

        LIMIT 
$start$perpage

    "
);



    
$ratings false;

    
$moved_threads = array();

    while(
$thread $db->fetch_array($query))

    {        

        
$threadcache[$thread['tid']] = $thread;



        if(
$thread['numratings'] > && $ratings == false)

        {

            
$ratings true// Looks for ratings in the forum

        
}



        
// If this is a moved thread - set the tid for participation marking and thread read marking to that of the moved thread

        
if(substr($thread['closed'], 05) == "moved")

        {

            
$tid substr($thread['closed'], 6);

            if(!
$tids[$tid])

            {

                
$moved_threads[$tid] = $thread['tid'];

                
$tids[$thread['tid']] = $tid;

            }

        }

        
// Otherwise - set it to the plain thread ID

        
else

        {

            
$tids[$thread['tid']] = $thread['tid'];

            if(isset(
$moved_threads[$thread['tid']]))

            {

                unset(
$moved_threads[$thread['tid']]);

            }

        }

    }



    if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $mybb->user['uid'] && !empty($tids) && $ratings == true)

    {

        
// Check if we've rated threads on this page

        // Guests get the pleasure of not being ID'd, but will be checked when they try and rate

        
$imp implode(","$tids);

        
$query $db->simple_select("threadratings""tid, uid""tid IN ({$imp}) AND uid = '{$mybb->user['uid']}'");



        while(
$rating $db->fetch_array($query))

        {

            
$threadcache[$rating['tid']]['rated'] = 1;

        }

    }

}



// If user has moderation tools available, prepare the Select All feature

$num_results $db->num_rows($query);

if(
is_moderator($fid) && $num_results 0)

{

    
$lang->page_selected $lang->sprintf($lang->page_selectedintval($num_results));

    
$lang->select_all $lang->sprintf($lang->select_allintval($threadcount));

    
$lang->all_selected $lang->sprintf($lang->all_selectedintval($threadcount));

    eval(
"\$selectall = \"".$templates->get("forumdisplay_inlinemoderation_selectall")."\";");

}



if(!empty(
$tids))

{

    
$tids implode(","$tids);

}



// Check participation by the current user in any of these threads - for 'dot' folder icons

if($mybb->settings['dotfolders'] != && $mybb->user['uid'] && !empty($threadcache))

{

    
$query $db->simple_select("posts""tid,uid""uid='{$mybb->user['uid']}' AND tid IN ({$tids}{$visibleonly}");

    while(
$post $db->fetch_array($query))

    {

        if(!empty(
$moved_threads[$post['tid']]))

        {

            
$post['tid'] = $moved_threads[$post['tid']];

        }

        if(
$threadcache[$post['tid']])

        {

            
$threadcache[$post['tid']]['doticon'] = 1;

        }

    }

}



// Read threads

if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > && !empty($threadcache))

{

    
$query $db->simple_select("threadsread""*""uid='{$mybb->user['uid']}' AND tid IN ({$tids})"); 

    while(
$readthread $db->fetch_array($query))

    {

        if(!empty(
$moved_threads[$readthread['tid']])) 

        { 

             
$readthread['tid'] = $moved_threads[$readthread['tid']]; 

         }

        if(
$threadcache[$readthread['tid']])

        {

             
$threadcache[$readthread['tid']]['lastread'] = $readthread['dateline']; 

        }

    }

}



if(
$mybb->settings['threadreadcut'] > && $mybb->user['uid'])

{

    
$query $db->simple_select("forumsread""dateline""fid='{$fid}' AND uid='{$mybb->user['uid']}'");

    
$forum_read $db->fetch_field($query"dateline");



    
$read_cutoff TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;

    if(
$forum_read == || $forum_read $read_cutoff)

    {

        
$forum_read $read_cutoff;

    }

}

else

{

    
$forum_read my_get_array_cookie("forumread"$fid);



    if(
$mybb->cookies['mybb']['readallforums'] && !$forum_read)

    {

        
$forum_read $mybb->cookies['mybb']['lastvisit'];

    }

}



$unreadpost 0;

$threads '';

$load_inline_edit_js 0;

if(!empty(
$threadcache))

{

    if(!
$mybb->settings['maxmultipagelinks'])

    {

        
$mybb->settings['maxmultipagelinks'] = 5;        

    }



    if(!
$mybb->settings['postsperpage'])

    {

        
$mybb->settings['postperpage'] = 20;

    }



    foreach(
$threadcache as $thread)

    {

        
$plugins->run_hooks("forumdisplay_thread");



        
$moved explode("|"$thread['closed']);



        if(
$thread['visible'] == 0)

        {

            
$bgcolor "trow_shaded";

        }

        else

        {

            
$bgcolor alt_trow();

        }

        

        if(
$thread['sticky'] == 1)

        {

            
$thread_type_class " forumdisplay_sticky";

        }

        else

        {

            
$thread_type_class " forumdisplay_regular";

        }



        
$folder '';

        
$prefix '';



        
$thread['author'] = $thread['uid'];

        if(!
$thread['username'])

        {

            
$thread['username'] = $thread['threadusername'];

            
$thread['profilelink'] = $thread['threadusername'];

        }

        else

        {

            
$thread['profilelink'] = build_profile_link($thread['username'], $thread['uid']);

        }

        

        
// If this thread has a prefix, insert a space between prefix and subject

        
$thread['threadprefix'] = $threadprefix '';

        if(
$thread['prefix'] != 0)

        {

            
$threadprefix build_prefixes($thread['prefix']);

            
$thread['threadprefix'] = $threadprefix['displaystyle'].'&nbsp;';

        }



        
$thread['subject'] = $parser->parse_badwords($thread['subject']);

        
$thread['subject'] = htmlspecialchars_uni($thread['subject']);



        if(
$thread['icon'] > && $icon_cache[$thread['icon']])

        {

            
$icon $icon_cache[$thread['icon']];

            
$icon "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />";

        }

        else

        {

            
$icon "&nbsp;";

        }



        
$prefix '';

        if(
$thread['poll'])

        {

            
$prefix $lang->poll_prefix;

        }



        if(
$thread['sticky'] == "1" && !$donestickysep)

        {

            eval(
"\$threads .= \"".$templates->get("forumdisplay_sticky_sep")."\";");

            
$shownormalsep true;

            
$donestickysep true;

        }

        else if(
$thread['sticky'] == && !empty($shownormalsep))

        {

            eval(
"\$threads .= \"".$templates->get("forumdisplay_threads_sep")."\";");

            
$shownormalsep false;

        }



        
$rating '';

        if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != 0)

        {

            if(
$moved[0] == "moved")

            {

                
$rating "<td class=\"{$bgcolor}\" style=\"text-align: center;\">-</td>";

            }

            else

            {

                
$thread['averagerating'] = floatval(round($thread['averagerating'], 2));

                
$thread['width'] = intval(round($thread['averagerating']))*20;

                
$thread['numratings'] = intval($thread['numratings']);



                
$not_rated '';

                if(!isset(
$thread['rated']) || empty($thread['rated']))

                {

                    
$not_rated ' star_rating_notrated';

                }



                
$ratingvotesav $lang->sprintf($lang->rating_votes_average$thread['numratings'], $thread['averagerating']);

                eval(
"\$rating = \"".$templates->get("forumdisplay_thread_rating")."\";");

            }

        }



        
$thread['pages'] = 0;

        
$thread['multipage'] = '';

        
$threadpages '';

        
$morelink '';

        
$thread['posts'] = $thread['replies'] + 1;



        if(
$thread['unapprovedposts'] > && $ismod)

        {

            
$thread['posts'] += $thread['unapprovedposts'];

        }



        if(
$thread['posts'] > $mybb->settings['postsperpage'])

        {

            
$thread['pages'] = $thread['posts'] / $mybb->settings['postsperpage'];

            
$thread['pages'] = ceil($thread['pages']);



            if(
$thread['pages'] > $mybb->settings['maxmultipagelinks'])

            {

                
$pagesstop $mybb->settings['maxmultipagelinks'] - 1;

                
$page_link get_thread_link($thread['tid'], $thread['pages']);

                eval(
"\$morelink = \"".$templates->get("forumdisplay_thread_multipage_more")."\";");

            }

            else

            {

                
$pagesstop $thread['pages'];

            }



            for(
$i 1$i <= $pagesstop; ++$i)

            {

                
$page_link get_thread_link($thread['tid'], $i);

                eval(
"\$threadpages .= \"".$templates->get("forumdisplay_thread_multipage_page")."\";");

            }



            eval(
"\$thread['multipage'] = \"".$templates->get("forumdisplay_thread_multipage")."\";");

        }

        else

        {

            
$threadpages '';

            
$morelink '';

            
$thread['multipage'] = '';

        }



        if(
$ismod)

        {

            if(isset(
$mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$thread['tid']}|"))

            {

                
$inlinecheck "checked=\"checked\"";

                ++
$inlinecount;

            }

            else

            {

                
$inlinecheck '';

            }



            
$multitid $thread['tid'];

            eval(
"\$modbit = \"".$templates->get("forumdisplay_thread_modbit")."\";");

        }

        else

        {

            
$modbit '';

        }



        if(
$moved[0] == "moved")

        {

            
$prefix $lang->moved_prefix;

            
$thread['tid'] = $moved[1];

            
$thread['replies'] = "-";

            
$thread['views'] = "-";

        }



        
$thread['threadlink'] = get_thread_link($thread['tid']);

        
$thread['lastpostlink'] = get_thread_link($thread['tid'], 0"lastpost");



        
// Determine the folder

        
$folder '';

        
$folder_label '';



        if(
$thread['doticon'])

        {

            
$folder "dot_";

            
$folder_label .= $lang->icon_dot;

        }



        
$gotounread '';

        
$isnew 0;

        
$donenew 0;



        if(
$mybb->settings['threadreadcut'] > && $mybb->user['uid'] && $thread['lastpost'] > $forum_read)

        {

            if(
$thread['lastread'])

            {

                
$last_read $thread['lastread'];

            }

            else

            {

                
$last_read $read_cutoff;

            }

        }

        else

        {

            
$last_read my_get_array_cookie("threadread"$thread['tid']);

        }



        if(
$forum_read $last_read)

        {

            
$last_read $forum_read;

        }



        if(
$thread['lastpost'] > $last_read && $moved[0] != "moved")

        {

            
$folder .= "new";

            
$folder_label .= $lang->icon_new;

            
$new_class "subject_new";

            
$thread['newpostlink'] = get_thread_link($thread['tid'], 0"newpost");

            eval(
"\$gotounread = \"".$templates->get("forumdisplay_thread_gotounread")."\";");

            
$unreadpost 1;

        }

        else

        {

            
$folder_label .= $lang->icon_no_new;

            
$new_class "subject_old";

        }



        if(
$thread['replies'] >= $mybb->settings['hottopic'] || $thread['views'] >= $mybb->settings['hottopicviews'])

        {

            
$folder .= "hot";

            
$folder_label .= $lang->icon_hot;

        }



        if(
$thread['closed'] == 1)

        {

            
$folder .= "lock";

            
$folder_label .= $lang->icon_lock;

        }



        if(
$moved[0] == "moved")

        {

            
$folder "move";

            
$gotounread '';

        }



        
$folder .= "folder";



        
$inline_edit_tid $thread['tid'];



        
// If this user is the author of the thread and it is not closed or they are a moderator, they can edit

        
if(($thread['uid'] == $mybb->user['uid'] && $thread['closed'] != && $mybb->user['uid'] != && $can_edit_titles == 1) || $ismod == true)

        {

            
$inline_edit_class "subject_editable";

        }

        else

        {

            
$inline_edit_class "";

        }

        
$load_inline_edit_js 1;



        
$lastpostdate my_date($mybb->settings['dateformat'], $thread['lastpost']);

        
$lastposttime my_date($mybb->settings['timeformat'], $thread['lastpost']);

        
$lastposter $thread['lastposter'];

        
$lastposteruid $thread['lastposteruid'];



        
// Don't link to guest's profiles (they have no profile).

        
if($lastposteruid == 0)

        {

            
$lastposterlink $lastposter;

        }

        else

        {

            
$lastposterlink build_profile_link($lastposter$lastposteruid);

        }



        
$thread['replies'] = my_number_format($thread['replies']);

        
$thread['views'] = my_number_format($thread['views']);



        
// Threads and posts requiring moderation

        
if($thread['unapprovedposts'] > && $ismod)

        {

            if(
$thread['unapprovedposts'] > 1)

            {

                
$unapproved_posts_count $lang->sprintf($lang->thread_unapproved_posts_count$thread['unapprovedposts']);

            }

            else

            {

                
$unapproved_posts_count $lang->sprintf($lang->thread_unapproved_post_count1);

            }



            
$unapproved_posts " <span title=\"{$unapproved_posts_count}\">(".my_number_format($thread['unapprovedposts']).")</span>";

        }

        else

        {

            
$unapproved_posts '';

        }



        
// If this thread has 1 or more attachments show the papperclip

        
if($thread['attachmentcount'] > 0)

        {

            if(
$thread['attachmentcount'] > 1)

            {

                
$attachment_count $lang->sprintf($lang->attachment_count_multiple$thread['attachmentcount']);

            }

            else

            {

                
$attachment_count $lang->attachment_count;

            }



            eval(
"\$attachment_count = \"".$templates->get("forumdisplay_thread_attachment_count")."\";");

        }

        else

        {

            
$attachment_count '';

        }



        eval(
"\$threads .= \"".$templates->get("forumdisplay_thread")."\";");

    }



    
$customthreadtools '';

    if(
$ismod)

    {

        if(
is_moderator($fid"canusecustomtools") && $has_modtools == true)

        {

            switch(
$db->type)

            {

                case 
"pgsql":

                case 
"sqlite":

                    
$query $db->simple_select("modtools"'tid, name'"(','||forums||',' LIKE '%,$fid,%' OR ','||forums||',' LIKE '%,-1,%' OR forums='') AND type = 't'");

                    break;

                default:

                    
$query $db->simple_select("modtools"'tid, name'"(CONCAT(',',forums,',') LIKE '%,$fid,%' OR CONCAT(',',forums,',') LIKE '%,-1,%' OR forums='') AND type = 't'");

            }



            while(
$tool $db->fetch_array($query))

            {

                eval(
"\$customthreadtools .= \"".$templates->get("forumdisplay_inlinemoderation_custom_tool")."\";");

            }

            

            if(
$customthreadtools)

            {

                eval(
"\$customthreadtools = \"".$templates->get("forumdisplay_inlinemoderation_custom")."\";");

            }

        }



        eval(
"\$inlinemod = \"".$templates->get("forumdisplay_inlinemoderation")."\";");

    }

}



// If there are no unread threads in this forum and no unread child forums - mark it as read

require_once MYBB_ROOT."inc/functions_indicators.php";



$unread_threads fetch_unread_count($fid);

if(
$unread_threads !== false && $unread_threads == && empty($unread_forums))

{

    
mark_forum_read($fid);

}



// Subscription status

$add_remove_subscription 'add';

$add_remove_subscription_text $lang->subscribe_forum;



if(
$mybb->user['uid'])

{

    
$query $db->simple_select("forumsubscriptions""fid""fid='".$fid."' AND uid='{$mybb->user['uid']}'", array('limit' => 1));



    if(
$db->fetch_field($query'fid'))

    {

        
$add_remove_subscription 'remove';

        
$add_remove_subscription_text $lang->unsubscribe_forum;

    }

}



// Is this a real forum with threads?

if($foruminfo['type'] != "c")

{

    if(!
$threadcount)

    {

        eval(
"\$threads = \"".$templates->get("forumdisplay_nothreads")."\";");

    }



    
$clearstoredpass '';

    if(
$foruminfo['password'] != '')

    {

        eval(
"\$clearstoredpass = \"".$templates->get("forumdisplay_threadlist_clearpass")."\";");

    }



    if(
$load_inline_edit_js == 1)

    {

        eval(
"\$inline_edit_js = \"".$templates->get("forumdisplay_threadlist_inlineedit_js")."\";");

    }



    
$post_code_string '';

    if(
$mybb->user['uid'])

    {

        
$post_code_string "&amp;my_post_key=".$mybb->post_code;

    }



    
$lang->rss_discovery_forum $lang->sprintf($lang->rss_discovery_forumhtmlspecialchars_uni(strip_tags($foruminfo['name'])));

    eval(
"\$rssdiscovery = \"".$templates->get("forumdisplay_rssdiscovery")."\";");

    eval(
"\$threadslist = \"".$templates->get("forumdisplay_threadlist")."\";");

}

else

{

    
$rssdiscovery '';

    
$threadslist '';



    if(empty(
$forums))

    {

        
error($lang->error_containsnoforums);

    }

}



$plugins->run_hooks("forumdisplay_end");



$foruminfo['name'] = strip_tags($foruminfo['name']);



eval(
"\$forums = \"".$templates->get("forumdisplay")."\";");

output_page($forums);

?>
Zitieren
#23
Du hast die schliessenden Klammern } nicht entfernt.
Zitieren
#24
Welche Zeile? Bzw wo ungefähr?
Zitieren
#25
577 und 837.
Zitieren
#26
Okay an den Stellen hab ich keine Klammern...

EDIT:

Habs gefunden <3 Danke (: War bei mir etwas viel weiter untern (:
Zitieren
#27
Der Code den du gepostet hast enthält auch jede Menge Leerzeilen die da eigentlich nicht hingehören. Wink Hauptsache es läuft jetzt!
Zitieren
#28
Hallöchen,
irgendwie mag die Technik mich heute nicht. Ich hab mehrmals alles so geändert, wie es in Melometlar Beitrag stand, aber bei mir hat sich rein gar nichts geändert. Die Gäste sehen immer noch keine Themen.

Meine functions_forumlist.php sieht so aus
PHP-Code:
<?php
/**
 * MyBB 1.6
 * Copyright 2010 MyBB Group, All Rights Reserved
 *
 * Website: http://mybb.com
 * License: http://mybb.com/about/license
 *
 * $Id$
 */

/**
* Build a list of forum bits.
*
* @param int The parent forum to fetch the child forums for (0 assumes all)
* @param int The depth to return forums with.
* @return array Array of information regarding the child forums of this parent forum
*/
function build_forumbits($pid=0$depth=1)
{
    global 
$db$fcache$moderatorcache$forumpermissions$theme$mybb$templates$bgcolor$collapsed$lang$showdepth$plugins$parser$forum_viewers;
    static 
$private_forums;
    
    
$forum_listing '';

    
// If no forums exist with this parent, do nothing
    
if(empty($fcache[$pid]) || !is_array($fcache[$pid]))
    {
        return;
    }

    
$parent_counters['threads'] = 0;
    
$parent_counters['posts'] = 0;
    
$parent_counters['unapprovedposts'] = 0;
    
$parent_counters['unapprovedthreads'] = 0;
    
$parent_counters['viewers'] = 0;
    
$forum_list '';

    
// Foreach of the forums in this parent
    
foreach($fcache[$pid] as $parent)
    {
        foreach(
$parent as $forum)
        {
            
$subforums $sub_forums '';
            
$lastpost_data = array(
                
'lastpost' => 0
            
);
            
$forum_viewers_text '';
            
$forum_viewers_text_plain '';

            
// Get the permissions for this forum
            
$permissions $forumpermissions[$forum['fid']];

            
// If this user doesnt have permission to view this forum and we're hiding private forums, skip this forum
            
if($permissions['canview'] != && $mybb->settings['hideprivateforums'] == 1)
            {
                continue;
            }
            
            
$forum $plugins->run_hooks("build_forumbits_forum"$forum);

            
// Build the link to this forum
            
$forum_url get_forum_link($forum['fid']);

            
// This forum has a password, and the user isn't authenticated with it - hide post information
            
$hideinfo $hidecounters false;
            
$hidelastpostinfo false;
            
$showlockicon 0;
            if(isset(
$permissions['canviewthreads']) && $permissions['canviewthreads'] != 1)
            {
                
$hideinfo false;
            }
            
            if(isset(
$permissions['canonlyviewownthreads']) && $permissions['canonlyviewownthreads'] == 1)
            {
                
$hidecounters true;

                
// If we only see our own threads, find out if there's a new post in one of them so the lightbulb shows
                
if(!is_array($private_forums))
                {
                    
$private_forums $fids = array();
                    foreach(
$fcache as $fcache_p)
                    {
                        foreach(
$fcache_p as $parent_p)
                        {
                            foreach(
$parent_p as $forum_p)
                            {
                                if(
$forumpermissions[$forum_p['fid']]['canonlyviewownthreads'])
                                {
                                    
$fids[] = $forum_p['fid'];
                                }
                            }
                        }
                    }

                    if(!empty(
$fids))
                    {
                        
$fids implode(','$fids);
                        
$query $db->simple_select("threads""tid, fid, subject, lastpost, lastposter, lastposteruid""uid = '{$mybb->user['uid']}' AND fid IN ({$fids})", array("order_by" => "lastpost""order_dir" => "desc"));

                        while(
$thread $db->fetch_array($query))
                        {
                            if(!
$private_forums[$thread['fid']])
                            {
                                
$private_forums[$thread['fid']] = $thread;
                            }
                        }
                    }
                }

                if(
$private_forums[$forum['fid']]['lastpost'])
                {
                    
$forum['lastpost'] = $private_forums[$forum['fid']]['lastpost'];
                    
                    
$lastpost_data = array(
                        
"lastpost" => $private_forums[$forum['fid']]['lastpost'],
                        
"lastpostsubject" => $private_forums[$forum['fid']]['subject'],
                        
"lastposter" => $private_forums[$forum['fid']]['lastposter'],
                        
"lastposttid" => $private_forums[$forum['fid']]['tid'],
                        
"lastposteruid" => $private_forums[$forum['fid']]['lastposteruid']
                    );
                }
            }
            else
            {
                
$lastpost_data = array(
                    
"lastpost" => $forum['lastpost'],
                    
"lastpostsubject" => $forum['lastpostsubject'],
                    
"lastposter" => $forum['lastposter'],
                    
"lastposttid" => $forum['lastposttid'],
                    
"lastposteruid" => $forum['lastposteruid']
                );
            }

            if(
$forum['password'] != '' && $mybb->cookies['forumpass'][$forum['fid']] != md5($mybb->user['uid'].$forum['password']))
            {
                
$hideinfo true;
                
$showlockicon 1;
            }

            
// Fetch subforums of this forum
            
if(isset($fcache[$forum['fid']]))
            {
                
$forum_info build_forumbits($forum['fid'], $depth+1);

                
// Increment forum counters with counters from child forums
                
$forum['threads'] += $forum_info['counters']['threads'];
                
$forum['posts'] += $forum_info['counters']['posts'];
                
$forum['unapprovedthreads'] += $forum_info['counters']['unapprovedthreads'];
                
$forum['unapprovedposts'] += $forum_info['counters']['unapprovedposts'];

                if(!empty(
$forum_info['counters']['viewing']))
                {
                    
$forum['viewers'] += $forum_info['counters']['viewing'];
                }

                
// If the child forums' lastpost is greater than the one for this forum, set it as the child forums greatest.
                
if($forum_info['lastpost']['lastpost'] > $lastpost_data['lastpost'])
                {
                    
$lastpost_data $forum_info['lastpost'];
                    
                    
/*
                    // If our subforum is unread, then so must be our parents. Force our parents to unread as well
                    if(strstr($forum_info['lightbulb']['folder'], "on") !== false)
                    {
                        $forum['lastread'] = 0;
                    }
                    // Otherwise, if we  have an explicit record in the db, we must make sure that it is explicitly set
                    else
                    {
                        $lastpost_data['lastpost'] = $forum['lastpost'];
                    }*/
                
}

                
$sub_forums $forum_info['forum_list'];
            }

            
// If we are hiding information (lastpost) because we aren't authenticated against the password for this forum, remove them
            
if($hidelastpostinfo == true)
            {
                
$lastpost_data = array(
                    
'lastpost' => 0
                
);
            }
            
            
// If the current forums lastpost is greater than other child forums of the current parent, overwrite it
            
if(!isset($parent_lastpost) || $lastpost_data['lastpost'] > $parent_lastpost['lastpost'])
            {
                
$parent_lastpost $lastpost_data;
            }

            if(
is_array($forum_viewers) && isset($forum_viewers[$forum['fid']]) && $forum_viewers[$forum['fid']] > 0)
            {
                
$forum['viewers'] = $forum_viewers[$forum['fid']];
            }

            
// Increment the counters for the parent forum (returned later)
            
if($hideinfo != true && $hidecounters != true)
            {
                
$parent_counters['threads'] += $forum['threads'];
                
$parent_counters['posts'] += $forum['posts'];
                
$parent_counters['unapprovedposts'] += $forum['unapprovedposts'];
                
$parent_counters['unapprovedthreads'] += $forum['unapprovedthreads'];

                if(!empty(
$forum['viewers']))
                {
                    
$parent_counters['viewers'] += $forum['viewers'];
                }
            }

            
// Done with our math, lets talk about displaying - only display forums which are under a certain depth
            
if($depth $showdepth)
            {
                continue;
            }
            
            
// Get the lightbulb status indicator for this forum based on the lastpost
            
$lightbulb get_forum_lightbulb($forum$lastpost_data$showlockicon);

            
// Fetch the number of unapproved threads and posts for this forum
            
$unapproved get_forum_unapproved($forum);
            
            if(
$hideinfo == true)
            {
                unset(
$unapproved);
            }

            
// Sanitize name and description of forum.
            
$forum['name'] = preg_replace("#&(?!\#[0-9]+;)#si""&amp;"$forum['name']); // Fix & but allow unicode
            
$forum['description'] = preg_replace("#&(?!\#[0-9]+;)#si""&amp;"$forum['description']); // Fix & but allow unicode
            
$forum['name'] = preg_replace("#&([^\#])(?![a-z1-4]{1,10};)#i""&$1"$forum['name']);
            
$forum['description'] = preg_replace("#&([^\#])(?![a-z1-4]{1,10};)#i""&$1"$forum['description']);

            
// If this is a forum and we've got subforums of it, load the subforums list template
            
if($depth == && $sub_forums)
            {
                eval(
"\$subforums = \"".$templates->get("forumbit_subforums")."\";");
            }
            
// A depth of three indicates a comma separated list of forums within a forum
            
else if($depth == 3)
            {
                if(
$donecount $mybb->settings['subforumsindex'])
                {
                    
$statusicon '';

                    
// Showing mini status icons for this forum
                    
if($mybb->settings['subforumsstatusicons'] == 1)
                    {
                        
$lightbulb['folder'] = "mini".$lightbulb['folder'];
                        eval(
"\$statusicon = \"".$templates->get("forumbit_depth3_statusicon"10)."\";");
                    }

                    
// Fetch the template and append it to the list
                    
eval("\$forum_list .= \"".$templates->get("forumbit_depth3"10)."\";");
                    
$comma $lang->comma;
                }

                
// Have we reached our max visible subforums? put a nice message and break out of the loop
                
++$donecount;
                if(
$donecount == $mybb->settings['subforumsindex'])
                {
                    if(
subforums_count($fcache[$pid]) > $donecount)
                    {
                        
$forum_list .= $comma.$lang->sprintf($lang->more_subforums, (subforums_count($fcache[$pid]) - $donecount));
                    }
                }
                continue;
            }


            
// Forum is a category, set template type
            
if($forum['type'] == 'c')
            {
                
$forumcat '_cat';
            }
            
// Forum is a standard forum, set template type
            
else
            {
                
$forumcat '_forum';
            }

            if(
$forum['linkto'] == '')
            {
                
// No posts have been made in this forum - show never text
                
if(($lastpost_data['lastpost'] == || $lastpost_data['lastposter'] == '') && $hideinfo != true)
                {
                    
$lastpost "<div style=\"text-align: center;\">{$lang->lastpost_never}</div>";
                }
                elseif(
$hideinfo != true)
                {
                    
// Format lastpost date and time
                    
$lastpost_date my_date($mybb->settings['dateformat'], $lastpost_data['lastpost']);
                    
$lastpost_time my_date($mybb->settings['timeformat'], $lastpost_data['lastpost']);

                    
// Set up the last poster, last post thread id, last post subject and format appropriately
                    
$lastpost_profilelink build_profile_link($lastpost_data['lastposter'], $lastpost_data['lastposteruid']);
                    
$lastpost_link get_thread_link($lastpost_data['lastposttid'], 0"lastpost");
                    
$lastpost_subject $full_lastpost_subject $parser->parse_badwords($lastpost_data['lastpostsubject']);
                    if(
my_strlen($lastpost_subject) > 25)
                    {
                        
$lastpost_subject my_substr($lastpost_subject025)."...";
                    }
                    
$lastpost_subject htmlspecialchars_uni($lastpost_subject);
                    
$full_lastpost_subject htmlspecialchars_uni($full_lastpost_subject);
                    
                    
// Call lastpost template
                    
if($depth != 1)
                    {                        
                        eval(
"\$lastpost = \"".$templates->get("forumbit_depth{$depth}_forum_lastpost")."\";");
                    }
                }

                if(
$mybb->settings['showforumviewing'] != && $forum['viewers'] > 0)
                {
                    if(
$forum['viewers'] == 1)
                    {
                        
$forum_viewers_text $lang->viewing_one;
                    }
                    else
                    {
                        
$forum_viewers_text $lang->sprintf($lang->viewing_multiple$forum['viewers']);
                    }
                    
$forum_viewers_text_plain $forum_viewers_text;
                    
$forum_viewers_text "<span class=\"smalltext\">{$forum_viewers_text}</span>";
                }
            }
            
// If this forum is a link or is password protected and the user isn't authenticated, set counters to "-"
            
if($forum['linkto'] != '' || $hideinfo == true || $hidecounters == true)
            {
                
$posts "-";
                
$threads "-";
            }
            
// Otherwise, format thread and post counts
            
else
            {
                
$posts my_number_format($forum['posts']);
                
$threads my_number_format($forum['threads']);
            }
            
            
// If this forum is a link or is password protected and the user isn't authenticated, set lastpost to "-"
            
if($forum['linkto'] != '' || $hideinfo == true || $hidelastpostinfo == true)
            {
                
$lastpost "<div style=\"text-align: center;\">-</div>";
            }

            
// Moderator column is not off
            
if($mybb->settings['modlist'] != 0)
            {
                
$done_moderators = array(
                    
"users" => array(),
                    
"groups" => array()
                );
                
$moderators '';
                
// Fetch list of moderators from this forum and its parents
                
$parentlistexploded explode(','$forum['parentlist']);
                foreach(
$parentlistexploded as $mfid)
                {
                    
// This forum has moderators
                    
if(is_array($moderatorcache[$mfid]))
                    {
                        
// Fetch each moderator from the cache and format it, appending it to the list
                        
foreach($moderatorcache[$mfid] as $modtype)
                        {
                            foreach(
$modtype as $moderator)
                            {
                                if(
$moderator['isgroup'])
                                {
                                    if(
in_array($moderator['id'], $done_moderators['groups']))
                                    {
                                        continue;
                                    }
                                    
$moderators .= $comma.htmlspecialchars_uni($moderator['title']);
                                    
$done_moderators['groups'][] = $moderator['id'];
                                }
                                else
                                {
                                    if(
in_array($moderator['id'], $done_moderators['users']))
                                    {
                                        continue;
                                    }
                                    
$moderators .= "{$comma}<a href=\"".get_profile_link($moderator['id'])."\">".htmlspecialchars_uni($moderator['username'])."</a>";
                                    
$done_moderators['users'][] = $moderator['id'];
                                }
                                
$comma $lang->comma;
                            }
                        }
                    }
                }
                
$comma '';

                
// If we have a moderators list, load the template
                
if($moderators)
                {
                    eval(
"\$modlist = \"".$templates->get("forumbit_moderators")."\";");
                }
                else
                {
                    
$modlist '';
                }
            }

            
// Descriptions aren't being shown - blank them
            
if($mybb->settings['showdescriptions'] == 0)
            {
                
$forum['description'] = '';
            }

            
// Check if this category is either expanded or collapsed and hide it as necessary.
            
$expdisplay '';
            
$collapsed_name "cat_{$forum['fid']}_c";
            if(isset(
$collapsed[$collapsed_name]) && $collapsed[$collapsed_name] == "display: show;")
            {
                
$expcolimage "collapse_collapsed.gif";
                
$expdisplay "display: none;";
                
$expaltext "[+]";
            }
            else
            {
                
$expcolimage "collapse.gif";
                
$expaltext "[-]";
            }

            
// Swap over the alternate backgrounds
            
$bgcolor alt_trow();

            
// Add the forum to the list
            
eval("\$forum_list .= \"".$templates->get("forumbit_depth$depth$forumcat")."\";");
        }
    }

    
// Return an array of information to the parent forum including child forums list, counters and lastpost information
    
return array(
        
"forum_list" => $forum_list,
        
"counters" => $parent_counters,
        
"lastpost" => $parent_lastpost,
        
"lightbulb" => $lightbulb,
    );
}

/**
 * Fetch the status indicator for a forum based on its last post and the read date
 *
 * @param array Array of information about the forum
 * @param array Array of information about the lastpost date
 * @return array Array of the folder image to be shown and the alt text
 */
function get_forum_lightbulb($forum$lastpost$locked=0)
{
    global 
$mybb$lang$db$unread_forums;

    
// This forum is closed, so override the folder icon with the "offlock" icon.
    
if($forum['open'] == || $locked)
    {
        
$folder "offlock";
        
$altonoff $lang->forum_locked;
    }
    else
    {
        
// Fetch the last read date for this forum
        
if(!empty($forum['lastread']))
        {
            
$forum_read $forum['lastread'];
        }
        elseif(!empty(
$mybb->cookies['mybb']['readallforums']))
        {
            
// We've hit the read all forums as a guest, so use the lastvisit of the user
            
$forum_read $mybb->cookies['mybb']['lastvisit'];
        }
        else
        {
            
$forum_read 0;
            
$threadcut TIME_NOW 60*60*24*$mybb->settings['threadreadcut'];

            
// If the user is a guest, do they have a forumsread cookie?
            
if(!$mybb->user['uid'] && $mybb->cookies['mybb']['forumread'])
            {
                
// If they've visited us before, then they'll have this cookie - otherwise everything is unread...
                
$forum_read my_get_array_cookie("forumread"$forum['fid']);
            }
            else if(
$mybb->user['uid'] && $mybb->settings['threadreadcut'] > && $threadcut $lastpost['lastpost'])
            {
                
// We have a user, the forum's unread and we're over our threadreadcut limit for the lastpost - we mark these as read
                
$forum_read $lastpost['lastpost'] + 1;
            }
        }

        
//if(!$forum_read)
        //{
            //$forum_read = $mybb->user['lastvisit'];
        //}
        
         // If the lastpost is greater than the last visit and is greater than the forum read date, we have a new post 
        
if($lastpost['lastpost'] > $forum_read && $lastpost['lastpost'] != 0
        {
            
$unread_forums++;
            
$folder "on";
            
$altonoff $lang->new_posts;
        }
        
// Otherwise, no new posts
        
else
        {
            
$folder "off";
            
$altonoff $lang->no_new_posts;
        }
    }

    return array(
        
"folder" => $folder,
        
"altonoff" => $altonoff
    
);
}

/**
 * Fetch the number of unapproved posts, formatted, from a forum
 *
 * @param array Array of information about the forum
 * @return array Array containing formatted string for posts and string for threads
 */
function get_forum_unapproved($forum)
{
    global 
$lang;

    
$unapproved_threads $unapproved_posts '';

    
// If the user is a moderator we need to fetch the count
    
if(is_moderator($forum['fid']))
    {
        
// Forum has one or more unaproved posts, format language string accordingly
        
if($forum['unapprovedposts'])
        {
            if(
$forum['unapprovedposts'] > 1)
            {
                
$unapproved_posts_count $lang->sprintf($lang->forum_unapproved_posts_count$forum['unapprovedposts']);
            }
            else
            {
                
$unapproved_posts_count $lang->sprintf($lang->forum_unapproved_post_count1);
            }
            
$unapproved_posts " <span title=\"{$unapproved_posts_count}\">(".my_number_format($forum['unapprovedposts']).")</span>";
        }
        
// Forum has one or more unapproved threads, format language string accordingly
        
if($forum['unapprovedthreads'])
        {
            if(
$forum['unapprovedthreads'] > 1)
            {
                
$unapproved_threads_count $lang->sprintf($lang->forum_unapproved_threads_count$forum['unapprovedthreads']);
            }
            else
            {
                
$unapproved_threads_count $lang->sprintf($lang->forum_unapproved_thread_count1);
            }
            
$unapproved_threads " <span title=\"{$unapproved_threads_count}\">(".my_number_format($forum['unapprovedthreads']).")</span>";
        }
    }
    return array(
        
"unapproved_posts" => $unapproved_posts,
        
"unapproved_threads" => $unapproved_threads
    
);
}
?>

Und meine forumdisplay.php so
PHP-Code:
<?php
/**
 * MyBB 1.6
 * Copyright 2010 MyBB Group, All Rights Reserved
 *
 * Website: http://mybb.com
 * License: http://mybb.com/about/license
 *
 * $Id$
 */

define("IN_MYBB"1);
define('THIS_SCRIPT''forumdisplay.php');

$templatelist "forumdisplay,forumdisplay_thread,forumbit_depth1_cat,forumbit_depth1_forum,forumbit_depth2_cat,forumbit_depth2_forum,forumdisplay_subforums,forumdisplay_threadlist,forumdisplay_moderatedby,forumdisplay_newthread,forumdisplay_searchforum,forumdisplay_orderarrow,forumdisplay_thread_rating,forumdisplay_threadlist_rating,forumdisplay_threadlist_sortrating,forumbit_moderators,forumbit_subforums,forumbit_depth2_forum_lastpost";
$templatelist .= ",forumbit_depth1_forum_lastpost,forumdisplay_thread_multipage_page,forumdisplay_thread_multipage,forumdisplay_thread_multipage_more";
$templatelist .= ",multipage_prevpage,multipage_nextpage,multipage_page_current,multipage_page,multipage_start,multipage_end,multipage";
$templatelist .= ",forumjump_advanced,forumjump_special,forumjump_bit,forumdisplay_password_wrongpass,forumdisplay_password";
$templatelist .= ",forumdisplay_usersbrowsing_user,forumdisplay_usersbrowsing,forumdisplay_inlinemoderation,forumdisplay_thread_modbit,forumdisplay_inlinemoderation_col,forumdisplay_inlinemoderation_selectall,forumdisplay_threadlist_clearpass";
$templatelist .= ",forumdisplay_announcements_announcement,forumdisplay_announcements,forumdisplay_threads_sep,forumbit_depth3_statusicon,forumbit_depth3,forumdisplay_sticky_sep,forumdisplay_thread_attachment_count,forumdisplay_threadlist_inlineedit_js,forumdisplay_rssdiscovery,forumdisplay_announcement_rating,forumdisplay_announcements_announcement_modbit,forumdisplay_rules,forumdisplay_rules_link,forumdisplay_thread_gotounread,forumdisplay_nothreads,forumdisplay_inlinemoderation_custom_tool,forumdisplay_inlinemoderation_custom";
require_once 
"./global.php";
require_once 
MYBB_ROOT."inc/functions_post.php";
require_once 
MYBB_ROOT."inc/functions_forumlist.php";
require_once 
MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;

$orderarrow $sortsel = array('rating' => '''subject' => '''starter' => '''started' => '''replies' => '''views' => '');
$ordersel = array('asc' => '''desc' => '');
$datecutsel = array(=> ''=> ''10 => ''20 => ''50 => ''75 => ''100 => ''365 => ''9999 => '');
$rules '';

// Load global language phrases
$lang->load("forumdisplay");

$plugins->run_hooks("forumdisplay_start");

$fid intval($mybb->input['fid']);
if(
$fid 0)
{
    switch(
$fid)
    {
        case 
"-1":
            
$location "index.php";
            break;
        case 
"-2":
            
$location "search.php";
            break;
        case 
"-3":
            
$location "usercp.php";
            break;
        case 
"-4":
            
$location "private.php";
            break;
        case 
"-5":
            
$location "online.php";
            break;
    }
    if(
$location)
    {
        
header("Location: ".$location);
        exit;
    }
}

// Get forum info
$foruminfo get_forum($fid);
if(!
$foruminfo)
{
    
error($lang->error_invalidforum);
}

$archive_url build_archive_link("forum"$fid);

$currentitem $fid;
build_forum_breadcrumb($fid);
$parentlist $foruminfo['parentlist'];

// To validate, turn & to &amp; but support unicode
$foruminfo['name'] = preg_replace("#&(?!\#[0-9]+;)#si""&amp;"$foruminfo['name']);

$forumpermissions forum_permissions();
$fpermissions $forumpermissions[$fid];

if(
$fpermissions['canview'] != || $fpermissions['canviewthreads'] != 1

    
error_no_permission();
}

if(
$mybb->user['uid'] == 0)
{
    
// Cookie'd forum read time
    
$forumsread my_unserialize($mybb->cookies['mybb']['forumread']);

     if(
is_array($forumsread) && empty($forumsread))
     {
         if(
$mybb->cookies['mybb']['readallforums'])
        {
            
$forumsread[$fid] = $mybb->cookies['mybb']['lastvisit'];
        }
        else
        {
             
$forumsread = array();
        }
     }

    
$query $db->simple_select("forums""*""active != 0", array("order_by" => "pid, disporder"));
}
else
{
    
// Build a forum cache from the database
    
$query $db->query("
        SELECT f.*, fr.dateline AS lastread
        FROM "
.TABLE_PREFIX."forums f
        LEFT JOIN "
.TABLE_PREFIX."forumsread fr ON (fr.fid=f.fid AND fr.uid='{$mybb->user['uid']}')
        WHERE f.active != 0
        ORDER BY pid, disporder
    "
);
}

while(
$forum $db->fetch_array($query))
{
    if(
$mybb->user['uid'] == && $forumsread[$forum['fid']])
    {
        
$forum['lastread'] = $forumsread[$forum['fid']];
    }

    
$fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
}

// Get the forum moderators if the setting is enabled.
if($mybb->settings['modlist'] != 0)
{
    
$moderatorcache $cache->read("moderators");
}

$bgcolor "trow1";
if(
$mybb->settings['subforumsindex'] != 0)
{
    
$showdepth 3;
}
else
{
    
$showdepth 2;
}

$subforums '';
$child_forums build_forumbits($fid2);
$forums $child_forums['forum_list'];

if(
$forums)
{
    
$lang->sub_forums_in $lang->sprintf($lang->sub_forums_in$foruminfo['name']);
    eval(
"\$subforums = \"".$templates->get("forumdisplay_subforums")."\";");
}

$excols "forumdisplay";

// Password protected forums
check_forum_password($foruminfo['fid']);

if(
$foruminfo['linkto'])
{
    
header("Location: {$foruminfo['linkto']}");
    exit;
}

// Make forum jump...
if($mybb->settings['enableforumjump'] != 0)
{
    
$forumjump build_forum_jump(""$fid1);
}

if(
$foruminfo['type'] == "f" && $foruminfo['open'] != 0)
{
    eval(
"\$newthread = \"".$templates->get("forumdisplay_newthread")."\";");
}

if(
$fpermissions['cansearch'] != && $foruminfo['type'] == "f")
{
    eval(
"\$searchforum = \"".$templates->get("forumdisplay_searchforum")."\";");
}

// Gather forum stats
$has_announcements $has_modtools false;
$forum_stats $cache->read("forumsdisplay");

if(
is_array($forum_stats))
{
    if(!empty(
$forum_stats[-1]['modtools']) || !empty($forum_stats[$fid]['modtools']))
    {
        
// Mod tools are specific to forums, not parents
        
$has_modtools true;
    }

    if(!empty(
$forum_stats[-1]['announcements']) || !empty($forum_stats[$fid]['announcements']))
    {
        
// Global or forum-specific announcements
        
$has_announcements true;
    }
}

$done_moderators = array(
    
"users" => array(),
    
"groups" => array()
);

$moderators '';
$parentlistexploded explode(","$parentlist);

foreach(
$parentlistexploded as $mfid)
{
    
// This forum has moderators
    
if(is_array($moderatorcache[$mfid]))
    {
        
// Fetch each moderator from the cache and format it, appending it to the list
        
foreach($moderatorcache[$mfid] as $modtype)
        {
            foreach(
$modtype as $moderator)
            {
                if(
$moderator['isgroup'])
                {
                    if(
in_array($moderator['id'], $done_moderators['groups']))
                    {
                        continue;
                    }
                    
$moderators .= $comma.htmlspecialchars_uni($moderator['title']);
                    
$done_moderators['groups'][] = $moderator['id'];
                }
                else
                {
                    if(
in_array($moderator['id'], $done_moderators['users']))
                    {
                        continue;
                    }
                    
$moderators .= "{$comma}<a href=\"".get_profile_link($moderator['id'])."\">".format_name(htmlspecialchars_uni($moderator['username']), $moderator['usergroup'], $moderator['displaygroup'])."</a>";
                    
$done_moderators['users'][] = $moderator['id'];
                }
                
$comma $lang->comma;
            }
        }
    }

    if(!empty(
$forum_stats[$mfid]['announcements']))
    {
        
$has_announcements true;
    }
}
$comma '';

// If we have a moderators list, load the template
if($moderators)
{
    eval(
"\$moderatedby = \"".$templates->get("forumdisplay_moderatedby")."\";");
}
else
{
    
$moderatedby '';
}

// Get the users browsing this forum.
if($mybb->settings['browsingthisforum'] != 0)
{
    
$timecut TIME_NOW $mybb->settings['wolcutoff'];

    
$comma '';
    
$guestcount 0;
    
$membercount 0;
    
$inviscount 0;
    
$onlinemembers '';
    
$doneusers = array();

    
$query $db->query("
        SELECT s.ip, s.uid, u.username, s.time, u.invisible, u.usergroup, u.usergroup, u.displaygroup
        FROM "
.TABLE_PREFIX."sessions s
        LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid=u.uid)
        WHERE s.time > '
$timecut' AND location1='$fid' AND nopermission != 1
        ORDER BY u.username ASC, s.time DESC
    "
);

    while(
$user $db->fetch_array($query))
    {
        if(
$user['uid'] == 0)
        {
            ++
$guestcount;
        }
        else
        {
            if(empty(
$doneusers[$user['uid']]) || $doneusers[$user['uid']] < $user['time'])
            {
                
$doneusers[$user['uid']] = $user['time'];
                ++
$membercount;
                if(
$user['invisible'] == 1)
                {
                    
$invisiblemark "*";
                    ++
$inviscount;
                }
                else
                {
                    
$invisiblemark '';
                }
                
                if(
$user['invisible'] != || $mybb->usergroup['canviewwolinvis'] == || $user['uid'] == $mybb->user['uid'])
                {
                    
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']);
                    
$user['profilelink'] = build_profile_link($user['username'], $user['uid']);
                    eval(
"\$onlinemembers .= \"".$templates->get("forumdisplay_usersbrowsing_user"10)."\";");
                    
$comma $lang->comma;
                }
            }
        }
    }

    
$guestsonline '';
    if(
$guestcount)
    {
        
$guestsonline $lang->sprintf($lang->users_browsing_forum_guests$guestcount);
    }

    
$onlinesep '';
    if(
$guestcount && $onlinemembers)
    {
        
$onlinesep $lang->comma;
    }
    
    
$invisonline '';
    if(
$inviscount && $mybb->usergroup['canviewwolinvis'] != && ($inviscount != && $mybb->user['invisible'] != 1))
    {
        
$invisonline $lang->sprintf($lang->users_browsing_forum_invis$inviscount);
    }

    
$onlinesep2 '';
    if(
$invisonline != '' && $guestcount)
    {
        
$onlinesep2 $lang->comma;
    }
    eval(
"\$usersbrowsing = \"".$templates->get("forumdisplay_usersbrowsing")."\";");
}

// Do we have any forum rules to show for this forum?
$forumrules '';
if(
$foruminfo['rulestype'] != && $foruminfo['rules'])
{
    if(!
$foruminfo['rulestitle'])
    {
        
$foruminfo['rulestitle'] = $lang->sprintf($lang->forum_rules$foruminfo['name']);
    }
    
    
$rules_parser = array(
        
"allow_html" => 1,
        
"allow_mycode" => 1,
        
"allow_smilies" => 1,
        
"allow_imgcode" => 1
    
);

    
$foruminfo['rules'] = $parser->parse_message($foruminfo['rules'], $rules_parser);
    if(
$foruminfo['rulestype'] == || $foruminfo['rulestype'] == 3)
    {
        eval(
"\$rules = \"".$templates->get("forumdisplay_rules")."\";");
    }
    else if(
$foruminfo['rulestype'] == 2)
    {
        eval(
"\$rules = \"".$templates->get("forumdisplay_rules_link")."\";");
    }
}

$bgcolor "trow1";

// Set here to fetch only approved topics (and then below for a moderator we change this).
$visibleonly "AND visible='1'";
$tvisibleonly "AND t.visible='1'";

// Check if the active user is a moderator and get the inline moderation tools.
if(is_moderator($fid))
{
    eval(
"\$inlinemodcol = \"".$templates->get("forumdisplay_inlinemoderation_col")."\";");
    
$ismod true;
    
$inlinecount "0";
    
$inlinecookie "inlinemod_forum".$fid;
    
$visibleonly " AND (visible='1' OR visible='0')";
    
$tvisibleonly " AND (t.visible='1' OR t.visible='0')";
}
else
{
    
$inlinemod '';
    
$ismod false;
}

if(
is_moderator($fid"caneditposts") || $fpermissions['caneditposts'] == 1)
{
    
$can_edit_titles 1;
}
else
{
    
$can_edit_titles 0;
}

unset(
$rating);

// Pick out some sorting options.
// First, the date cut for the threads.
$datecut 0;
if(empty(
$mybb->input['datecut']))
{
    
// If the user manually set a date cut, use it.
    
if($mybb->user['daysprune'])
    {
        
$datecut $mybb->user['daysprune'];
    }
    else
    {
        
// If the forum has a non-default date cut, use it.
        
if(!empty($foruminfo['defaultdatecut']))
        {
            
$datecut $foruminfo['defaultdatecut'];
        }
    }
}
// If there was a manual date cut override, use it.
else
{
    
$datecut intval($mybb->input['datecut']);
}

$datecut intval($datecut);
$datecutsel[$datecut] = "selected=\"selected\"";
if(
$datecut && $datecut != 9999)
{
    
$checkdate TIME_NOW - ($datecut 86400);
    
$datecutsql "AND (lastpost >= '$checkdate' OR sticky = '1')";
    
$datecutsql2 "AND (t.lastpost >= '$checkdate' OR t.sticky = '1')";
}
else
{
    
$datecutsql '';
    
$datecutsql2 '';
}

// Pick the sort order.
if(!isset($mybb->input['order']) && !empty($foruminfo['defaultsortorder']))
{
    
$mybb->input['order'] = $foruminfo['defaultsortorder'];
}

if(!empty(
$mybb->input['order']))
{
    
$mybb->input['order'] = htmlspecialchars_uni($mybb->input['order']);
}
else
{
    
$mybb->input['order'] = '';
}

switch(
my_strtolower($mybb->input['order']))
{
    case 
"asc":
        
$sortordernow "asc";
        
$ordersel['asc'] = "selected=\"selected\"";
        
$oppsort $lang->desc;
        
$oppsortnext "desc";
        break;
    default:
        
$sortordernow "desc";
        
$ordersel['desc'] = "selected=\"selected\"";
        
$oppsort $lang->asc;
        
$oppsortnext "asc";
        break;
}

// Sort by which field?
if(!isset($mybb->input['sortby']) && !empty($foruminfo['defaultsortby']))
{
    
$mybb->input['sortby'] = $foruminfo['defaultsortby'];
}

$t "t.";
$sortfield2 '';

if(!empty(
$mybb->input['sortby']))
{
    
$sortby htmlspecialchars_uni($mybb->input['sortby']);
}
else
{
    
$mybb->input['sortby'] = '';
}

switch(
$mybb->input['sortby'])
{
    case 
"subject":
        
$sortfield "subject";
        break;
    case 
"replies":
        
$sortfield "replies";
        break;
    case 
"views":
        
$sortfield "views";
        break;
    case 
"starter":
        
$sortfield "username";
        break;
    case 
"rating":
        
$t "";
        
$sortfield "averagerating";
        
$sortfield2 ", t.totalratings DESC";
        break;
    case 
"started":
        
$sortfield "dateline";
        break;
    default:
        
$sortby "lastpost";
        
$sortfield "lastpost";
        
$mybb->input['sortby'] = "lastpost";
        break;
}

$sortsel['rating'] = ''// Needs to be initialized in order to speed-up things. Fixes #2031
$sortsel[$mybb->input['sortby']] = "selected=\"selected\"";

// Pick the right string to join the sort URL
if($mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && isset($_SERVER['SEO_SUPPORT']) && $_SERVER['SEO_SUPPORT'] == 1))
{
    
$string "?";
}
else
{
    
$string "&amp;";
}

// Are we viewing a specific page?
if(isset($mybb->input['page']) && is_numeric($mybb->input['page']))
{
    
$sorturl get_forum_link($fid$mybb->input['page']).$string."datecut=$datecut";
}
else
{
    
$sorturl get_forum_link($fid).$string."datecut=$datecut";
}

// Needs to be initialized in order to speed-up things. Fixes #2031
$orderarrow = array('rating'=>'''subject'=>'''starter'=>'''replies'=>'''views'=>''); 
eval(
"\$orderarrow['$sortby'] = \"".$templates->get("forumdisplay_orderarrow")."\";");

$threadcount 0;
$useronly $tuseronly "";
if(isset(
$fpermissions['canonlyviewownthreads']) && $fpermissions['canonlyviewownthreads'] == 1)
{
    
$useronly "AND uid={$mybb->user['uid']}";
    
$tuseronly "AND t.uid={$mybb->user['uid']}";
}


    
    
// How many posts are there?
    
if($datecut || isset($fpermissions['canonlyviewownthreads']) && $fpermissions['canonlyviewownthreads'] == 1)
    {
        
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly $datecutsql");
        
$threadcount $db->fetch_field($query"threads");
    }
    else
    {
        
$query $db->simple_select("forums""threads, unapprovedthreads""fid = '{$fid}'", array('limit' => 1));
        
$forum_threads $db->fetch_array($query);
        
$threadcount $forum_threads['threads'];
        if(
$ismod == true)
        {
            
$threadcount += $forum_threads['unapprovedthreads'];
        }
        
        
// If we have 0 threads double check there aren't any "moved" threads
        
if($threadcount == 0)
        {
            
$query $db->simple_select("threads""COUNT(tid) AS threads""fid = '$fid$useronly $visibleonly", array('limit' => 1));
            
$threadcount $db->fetch_field($query"threads");
        }
    }


// How many pages are there?
if(!$mybb->settings['threadsperpage'])
{
    
$mybb->settings['threadsperpage'] = 20;
}

$perpage $mybb->settings['threadsperpage'];

if(isset(
$mybb->input['page']) && intval($mybb->input['page']) > 0)
{
    
$page intval($mybb->input['page']);
    
$start = ($page-1) * $perpage;
    
$pages $threadcount $perpage;
    
$pages ceil($pages);
    if(
$page $pages || $page <= 0)
    {
        
$start 0;
        
$page 1;
    }
}
else
{
    
$start 0;
    
$page 1;
}

$end $start $perpage;
$lower $start 1;
$upper $end;

if(
$upper $threadcount)
{
    
$upper $threadcount;
}

// Assemble page URL
if($mybb->input['sortby'] || $mybb->input['order'] || $mybb->input['datecut']) // Ugly URL
{    
    
$page_url str_replace("{fid}"$fidFORUM_URL_PAGED);
    
    if(
$mybb->settings['seourls'] == "yes" || ($mybb->settings['seourls'] == "auto" && isset($_SERVER['SEO_SUPPORT']) && $_SERVER['SEO_SUPPORT'] == 1))
    {
        
$q "?";
        
$and '';
    }
    else
    {
        
$q '';
        
$and "&";
    }
    
    if((!empty(
$foruminfo['defaultsortby']) && $sortby != $foruminfo['defaultsortby']) || (empty($foruminfo['defaultsortby']) && $sortby != "lastpost"))
    {
        
$page_url .= "{$q}{$and}sortby={$sortby}";
        
$q '';
        
$and "&";
    }
    
    if(
$sortordernow != "desc")
    {
        
$page_url .= "{$q}{$and}order={$sortordernow}";
        
$q '';
        
$and "&";
    }
    
    if(
$datecut 0)
    {
        
$page_url .= "{$q}{$and}datecut={$datecut}";
    }
}
else
{
    
$page_url str_replace("{fid}"$fidFORUM_URL_PAGED);
}
$multipage multipage($threadcount$perpage$page$page_url);

if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $fpermissions['canviewthreads'] != 0)
{
    
$lang->load("ratethread");

    switch(
$db->type)
    {
        case 
"pgsql":
            
$ratingadd "CASE WHEN t.numratings=0 THEN 0 ELSE t.totalratings/t.numratings::numeric END AS averagerating, ";
            break;
        default:
            
$ratingadd "(t.totalratings/t.numratings) AS averagerating, ";
    }

    
$lpbackground "trow2";
    eval(
"\$ratingcol = \"".$templates->get("forumdisplay_threadlist_rating")."\";");
    eval(
"\$ratingsort = \"".$templates->get("forumdisplay_threadlist_sortrating")."\";");
    
$colspan "7";
}
else
{
    if(
$sortfield == "averagerating")
    {
        
$t "t.";
        
$sortfield "lastpost";
    }
    
$ratingadd '';
    
$lpbackground "trow1";
    
$colspan "6";
}

if(
$ismod)
{
    ++
$colspan;
}

// Get Announcements
if($has_announcements == true)
{
    
$limit '';
    
$announcements '';
    if(
$mybb->settings['announcementlimit'])
    {
        
$limit "LIMIT 0, ".$mybb->settings['announcementlimit'];
    }

    
$sql build_parent_list($fid"fid""OR"$parentlist);
    
$time TIME_NOW;
    
$query $db->query("
        SELECT a.*, u.username
        FROM "
.TABLE_PREFIX."announcements a
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=a.uid)
        WHERE a.startdate<='
$time' AND (a.enddate>='$time' OR a.enddate='0') AND ($sql OR fid='-1')
        ORDER BY a.startdate DESC 
$limit
    "
);

    
// See if this announcement has been read in our announcement array
    
$cookie = array();
    if(isset(
$mybb->cookies['mybb']['announcements']))
    {
        
$cookie my_unserialize(stripslashes($mybb->cookies['mybb']['announcements']));
    }

    
$announcementlist '';
    
$bgcolor alt_trow(true); // Reset the trow colors
    
while($announcement $db->fetch_array($query))
    {
        if(
$announcement['startdate'] > $mybb->user['lastvisit'] && !$cookie[$announcement['aid']])
        {
            
$new_class ' class="subject_new"';
            
$folder "newfolder";
        }
        else
        {
            
$new_class ' class="subject_old"';
            
$folder "folder";
        }

        
// Mmm, eat those announcement cookies if they're older than our last visit
        
if($cookie[$announcement['aid']] < $mybb->user['lastvisit'])
        {
            unset(
$cookie[$announcement['aid']]);
        }

        
$announcement['announcementlink'] = get_announcement_link($announcement['aid']);
        
$announcement['subject'] = $parser->parse_badwords($announcement['subject']);
        
$announcement['subject'] = htmlspecialchars_uni($announcement['subject']);
        
$postdate my_date($mybb->settings['dateformat'], $announcement['startdate']);
        
$posttime my_date($mybb->settings['timeformat'], $announcement['startdate']);
        
$announcement['profilelink'] = build_profile_link($announcement['username'], $announcement['uid']);

        if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $fpermissions['canviewthreads'] != 0)
        {
            eval(
"\$rating = \"".$templates->get("forumdisplay_announcement_rating")."\";");
            
$lpbackground "trow2";
        }
        else
        {
            
$rating '';
            
$lpbackground "trow1";
        }

        if(
$ismod)
        {
            eval(
"\$modann = \"".$templates->get("forumdisplay_announcements_announcement_modbit")."\";");
        }
        else
        {
            
$modann '';
        }

        
$plugins->run_hooks("forumdisplay_announcement");
        eval(
"\$announcements .= \"".$templates->get("forumdisplay_announcements_announcement")."\";");
        
$bgcolor alt_trow();
    }

    if(
$announcements)
    {
        eval(
"\$announcementlist = \"".$templates->get("forumdisplay_announcements")."\";");
        
$shownormalsep true;
    }

    if(empty(
$cookie))
    {
        
// Clean up cookie crumbs
        
my_setcookie('mybb[announcements]'0, (TIME_NOW - (60*60*24*365)));
    }
    else if(!empty(
$cookie))
    {
        
my_setcookie("mybb[announcements]"addslashes(serialize($cookie)), -1);
    }
}
else
{
    
$announcementlist '';
}

$tids $threadcache = array();
$icon_cache $cache->read("posticons");


{
    
// Start Getting Threads
    
$query $db->query("
        SELECT t.*, 
{$ratingadd}t.username AS threadusername, u.username
        FROM "
.TABLE_PREFIX."threads t
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
        WHERE t.fid='
$fid$tuseronly $tvisibleonly $datecutsql2
        ORDER BY t.sticky DESC, 
{$t}{$sortfield} $sortordernow $sortfield2
        LIMIT 
$start$perpage
    "
);

    
$ratings false;
    
$moved_threads = array();
    while(
$thread $db->fetch_array($query))
    {        
        
$threadcache[$thread['tid']] = $thread;

        if(
$thread['numratings'] > && $ratings == false)
        {
            
$ratings true// Looks for ratings in the forum
        
}

        
// If this is a moved thread - set the tid for participation marking and thread read marking to that of the moved thread
        
if(substr($thread['closed'], 05) == "moved")
        {
            
$tid substr($thread['closed'], 6);
            if(!
$tids[$tid])
            {
                
$moved_threads[$tid] = $thread['tid'];
                
$tids[$thread['tid']] = $tid;
            }
        }
        
// Otherwise - set it to the plain thread ID
        
else
        {
            
$tids[$thread['tid']] = $thread['tid'];
            if(isset(
$moved_threads[$thread['tid']]))
            {
                unset(
$moved_threads[$thread['tid']]);
            }
        }
    }

    if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != && $mybb->user['uid'] && !empty($tids) && $ratings == true)
    {
        
// Check if we've rated threads on this page
        // Guests get the pleasure of not being ID'd, but will be checked when they try and rate
        
$imp implode(","$tids);
        
$query $db->simple_select("threadratings""tid, uid""tid IN ({$imp}) AND uid = '{$mybb->user['uid']}'");

        while(
$rating $db->fetch_array($query))
        {
            
$threadcache[$rating['tid']]['rated'] = 1;
        }
    }
}

// If user has moderation tools available, prepare the Select All feature
$num_results $db->num_rows($query);
if(
is_moderator($fid) && $num_results 0)
{
    
$lang->page_selected $lang->sprintf($lang->page_selectedintval($num_results));
    
$lang->select_all $lang->sprintf($lang->select_allintval($threadcount));
    
$lang->all_selected $lang->sprintf($lang->all_selectedintval($threadcount));
    eval(
"\$selectall = \"".$templates->get("forumdisplay_inlinemoderation_selectall")."\";");
}

if(!empty(
$tids))
{
    
$tids implode(","$tids);
}

// Check participation by the current user in any of these threads - for 'dot' folder icons
if($mybb->settings['dotfolders'] != && $mybb->user['uid'] && !empty($threadcache))
{
    
$query $db->simple_select("posts""tid,uid""uid='{$mybb->user['uid']}' AND tid IN ({$tids}{$visibleonly}");
    while(
$post $db->fetch_array($query))
    {
        if(!empty(
$moved_threads[$post['tid']]))
        {
            
$post['tid'] = $moved_threads[$post['tid']];
        }
        if(
$threadcache[$post['tid']])
        {
            
$threadcache[$post['tid']]['doticon'] = 1;
        }
    }
}

// Read threads
if($mybb->user['uid'] && $mybb->settings['threadreadcut'] > && !empty($threadcache))
{
    
$query $db->simple_select("threadsread""*""uid='{$mybb->user['uid']}' AND tid IN ({$tids})"); 
    while(
$readthread $db->fetch_array($query))
    {
        if(!empty(
$moved_threads[$readthread['tid']])) 
        { 
             
$readthread['tid'] = $moved_threads[$readthread['tid']]; 
         }
        if(
$threadcache[$readthread['tid']])
        {
             
$threadcache[$readthread['tid']]['lastread'] = $readthread['dateline']; 
        }
    }
}

if(
$mybb->settings['threadreadcut'] > && $mybb->user['uid'])
{
    
$query $db->simple_select("forumsread""dateline""fid='{$fid}' AND uid='{$mybb->user['uid']}'");
    
$forum_read $db->fetch_field($query"dateline");

    
$read_cutoff TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;
    if(
$forum_read == || $forum_read $read_cutoff)
    {
        
$forum_read $read_cutoff;
    }
}
else
{
    
$forum_read my_get_array_cookie("forumread"$fid);

    if(
$mybb->cookies['mybb']['readallforums'] && !$forum_read)
    {
        
$forum_read $mybb->cookies['mybb']['lastvisit'];
    }
}

$unreadpost 0;
$threads '';
$load_inline_edit_js 0;
if(!empty(
$threadcache))
{
    if(!
$mybb->settings['maxmultipagelinks'])
    {
        
$mybb->settings['maxmultipagelinks'] = 5;        
    }

    if(!
$mybb->settings['postsperpage'])
    {
        
$mybb->settings['postperpage'] = 20;
    }

    foreach(
$threadcache as $thread)
    {
        
$plugins->run_hooks("forumdisplay_thread");

        
$moved explode("|"$thread['closed']);

        if(
$thread['visible'] == 0)
        {
            
$bgcolor "trow_shaded";
        }
        else
        {
            
$bgcolor alt_trow();
        }
        
        if(
$thread['sticky'] == 1)
        {
            
$thread_type_class " forumdisplay_sticky";
        }
        else
        {
            
$thread_type_class " forumdisplay_regular";
        }

        
$folder '';
        
$prefix '';

        
$thread['author'] = $thread['uid'];
        if(!
$thread['username'])
        {
            
$thread['username'] = $thread['threadusername'];
            
$thread['profilelink'] = $thread['threadusername'];
        }
        else
        {
            
$thread['profilelink'] = build_profile_link($thread['username'], $thread['uid']);
        }
        
        
// If this thread has a prefix, insert a space between prefix and subject
        
$thread['threadprefix'] = $threadprefix '';
        if(
$thread['prefix'] != 0)
        {
            
$threadprefix build_prefixes($thread['prefix']);
            
$thread['threadprefix'] = $threadprefix['displaystyle'].'&nbsp;';
        }

        
$thread['subject'] = $parser->parse_badwords($thread['subject']);
        
$thread['subject'] = htmlspecialchars_uni($thread['subject']);

        if(
$thread['icon'] > && $icon_cache[$thread['icon']])
        {
            
$icon $icon_cache[$thread['icon']];
            
$icon "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />";
        }
        else
        {
            
$icon "&nbsp;";
        }

        
$prefix '';
        if(
$thread['poll'])
        {
            
$prefix $lang->poll_prefix;
        }

        if(
$thread['sticky'] == "1" && !$donestickysep)
        {
            eval(
"\$threads .= \"".$templates->get("forumdisplay_sticky_sep")."\";");
            
$shownormalsep true;
            
$donestickysep true;
        }
        else if(
$thread['sticky'] == && !empty($shownormalsep))
        {
            eval(
"\$threads .= \"".$templates->get("forumdisplay_threads_sep")."\";");
            
$shownormalsep false;
        }

        
$rating '';
        if(
$mybb->settings['allowthreadratings'] != && $foruminfo['allowtratings'] != 0)
        {
            if(
$moved[0] == "moved")
            {
                
$rating "<td class=\"{$bgcolor}\" style=\"text-align: center;\">-</td>";
            }
            else
            {
                
$thread['averagerating'] = floatval(round($thread['averagerating'], 2));
                
$thread['width'] = intval(round($thread['averagerating']))*20;
                
$thread['numratings'] = intval($thread['numratings']);

                
$not_rated '';
                if(!isset(
$thread['rated']) || empty($thread['rated']))
                {
                    
$not_rated ' star_rating_notrated';
                }

                
$ratingvotesav $lang->sprintf($lang->rating_votes_average$thread['numratings'], $thread['averagerating']);
                eval(
"\$rating = \"".$templates->get("forumdisplay_thread_rating")."\";");
            }
        }

        
$thread['pages'] = 0;
        
$thread['multipage'] = '';
        
$threadpages '';
        
$morelink '';
        
$thread['posts'] = $thread['replies'] + 1;

        if(
$thread['unapprovedposts'] > && $ismod)
        {
            
$thread['posts'] += $thread['unapprovedposts'];
        }

        if(
$thread['posts'] > $mybb->settings['postsperpage'])
        {
            
$thread['pages'] = $thread['posts'] / $mybb->settings['postsperpage'];
            
$thread['pages'] = ceil($thread['pages']);

            if(
$thread['pages'] > $mybb->settings['maxmultipagelinks'])
            {
                
$pagesstop $mybb->settings['maxmultipagelinks'] - 1;
                
$page_link get_thread_link($thread['tid'], $thread['pages']);
                eval(
"\$morelink = \"".$templates->get("forumdisplay_thread_multipage_more")."\";");
            }
            else
            {
                
$pagesstop $thread['pages'];
            }

            for(
$i 1$i <= $pagesstop; ++$i)
            {
                
$page_link get_thread_link($thread['tid'], $i);
                eval(
"\$threadpages .= \"".$templates->get("forumdisplay_thread_multipage_page")."\";");
            }

            eval(
"\$thread['multipage'] = \"".$templates->get("forumdisplay_thread_multipage")."\";");
        }
        else
        {
            
$threadpages '';
            
$morelink '';
            
$thread['multipage'] = '';
        }

        if(
$ismod)
        {
            if(isset(
$mybb->cookies[$inlinecookie]) && my_strpos($mybb->cookies[$inlinecookie], "|{$thread['tid']}|"))
            {
                
$inlinecheck "checked=\"checked\"";
                ++
$inlinecount;
            }
            else
            {
                
$inlinecheck '';
            }

            
$multitid $thread['tid'];
            eval(
"\$modbit = \"".$templates->get("forumdisplay_thread_modbit")."\";");
        }
        else
        {
            
$modbit '';
        }

        if(
$moved[0] == "moved")
        {
            
$prefix $lang->moved_prefix;
            
$thread['tid'] = $moved[1];
            
$thread['replies'] = "-";
            
$thread['views'] = "-";
        }

        
$thread['threadlink'] = get_thread_link($thread['tid']);
        
$thread['lastpostlink'] = get_thread_link($thread['tid'], 0"lastpost");

        
// Determine the folder
        
$folder '';
        
$folder_label '';

        if(
$thread['doticon'])
        {
            
$folder "dot_";
            
$folder_label .= $lang->icon_dot;
        }

        
$gotounread '';
        
$isnew 0;
        
$donenew 0;

        if(
$mybb->settings['threadreadcut'] > && $mybb->user['uid'] && $thread['lastpost'] > $forum_read)
        {
            if(
$thread['lastread'])
            {
                
$last_read $thread['lastread'];
            }
            else
            {
                
$last_read $read_cutoff;
            }
        }
        else
        {
            
$last_read my_get_array_cookie("threadread"$thread['tid']);
        }

        if(
$forum_read $last_read)
        {
            
$last_read $forum_read;
        }

        if(
$thread['lastpost'] > $last_read && $moved[0] != "moved")
        {
            
$folder .= "new";
            
$folder_label .= $lang->icon_new;
            
$new_class "subject_new";
            
$thread['newpostlink'] = get_thread_link($thread['tid'], 0"newpost");
            eval(
"\$gotounread = \"".$templates->get("forumdisplay_thread_gotounread")."\";");
            
$unreadpost 1;
        }
        else
        {
            
$folder_label .= $lang->icon_no_new;
            
$new_class "subject_old";
        }

        if(
$thread['replies'] >= $mybb->settings['hottopic'] || $thread['views'] >= $mybb->settings['hottopicviews'])
        {
            
$folder .= "hot";
            
$folder_label .= $lang->icon_hot;
        }

        if(
$thread['closed'] == 1)
        {
            
$folder .= "lock";
            
$folder_label .= $lang->icon_lock;
        }

        if(
$moved[0] == "moved")
        {
            
$folder "move";
            
$gotounread '';
        }

        
$folder .= "folder";

        
$inline_edit_tid $thread['tid'];

        
// If this user is the author of the thread and it is not closed or they are a moderator, they can edit
        
if(($thread['uid'] == $mybb->user['uid'] && $thread['closed'] != && $mybb->user['uid'] != && $can_edit_titles == 1) || $ismod == true)
        {
            
$inline_edit_class "subject_editable";
        }
        else
        {
            
$inline_edit_class "";
        }
        
$load_inline_edit_js 1;

        
$lastpostdate my_date($mybb->settings['dateformat'], $thread['lastpost']);
        
$lastposttime my_date($mybb->settings['timeformat'], $thread['lastpost']);
        
$lastposter $thread['lastposter'];
        
$lastposteruid $thread['lastposteruid'];

        
// Don't link to guest's profiles (they have no profile).
        
if($lastposteruid == 0)
        {
            
$lastposterlink $lastposter;
        }
        else
        {
            
$lastposterlink build_profile_link($lastposter$lastposteruid);
        }

        
$thread['replies'] = my_number_format($thread['replies']);
        
$thread['views'] = my_number_format($thread['views']);

        
// Threads and posts requiring moderation
        
if($thread['unapprovedposts'] > && $ismod)
        {
            if(
$thread['unapprovedposts'] > 1)
            {
                
$unapproved_posts_count $lang->sprintf($lang->thread_unapproved_posts_count$thread['unapprovedposts']);
            }
            else
            {
                
$unapproved_posts_count $lang->sprintf($lang->thread_unapproved_post_count1);
            }

            
$unapproved_posts " <span title=\"{$unapproved_posts_count}\">(".my_number_format($thread['unapprovedposts']).")</span>";
        }
        else
        {
            
$unapproved_posts '';
        }

        
// If this thread has 1 or more attachments show the papperclip
        
if($thread['attachmentcount'] > 0)
        {
            if(
$thread['attachmentcount'] > 1)
            {
                
$attachment_count $lang->sprintf($lang->attachment_count_multiple$thread['attachmentcount']);
            }
            else
            {
                
$attachment_count $lang->attachment_count;
            }

            eval(
"\$attachment_count = \"".$templates->get("forumdisplay_thread_attachment_count")."\";");
        }
        else
        {
            
$attachment_count '';
        }

        eval(
"\$threads .= \"".$templates->get("forumdisplay_thread")."\";");
    }

    
$customthreadtools '';
    if(
$ismod)
    {
        if(
is_moderator($fid"canusecustomtools") && $has_modtools == true)
        {
            switch(
$db->type)
            {
                case 
"pgsql":
                case 
"sqlite":
                    
$query $db->simple_select("modtools"'tid, name'"(','||forums||',' LIKE '%,$fid,%' OR ','||forums||',' LIKE '%,-1,%' OR forums='') AND type = 't'");
                    break;
                default:
                    
$query $db->simple_select("modtools"'tid, name'"(CONCAT(',',forums,',') LIKE '%,$fid,%' OR CONCAT(',',forums,',') LIKE '%,-1,%' OR forums='') AND type = 't'");
            }

            while(
$tool $db->fetch_array($query))
            {
                eval(
"\$customthreadtools .= \"".$templates->get("forumdisplay_inlinemoderation_custom_tool")."\";");
            }
            
            if(
$customthreadtools)
            {
                eval(
"\$customthreadtools = \"".$templates->get("forumdisplay_inlinemoderation_custom")."\";");
            }
        }

        eval(
"\$inlinemod = \"".$templates->get("forumdisplay_inlinemoderation")."\";");
    }
}

// If there are no unread threads in this forum and no unread child forums - mark it as read
require_once MYBB_ROOT."inc/functions_indicators.php";

$unread_threads fetch_unread_count($fid);
if(
$unread_threads !== false && $unread_threads == && empty($unread_forums))
{
    
mark_forum_read($fid);
}

// Subscription status
$add_remove_subscription 'add';
$add_remove_subscription_text $lang->subscribe_forum;

if(
$mybb->user['uid'])
{
    
$query $db->simple_select("forumsubscriptions""fid""fid='".$fid."' AND uid='{$mybb->user['uid']}'", array('limit' => 1));

    if(
$db->fetch_field($query'fid'))
    {
        
$add_remove_subscription 'remove';
        
$add_remove_subscription_text $lang->unsubscribe_forum;
    }
}

// Is this a real forum with threads?
if($foruminfo['type'] != "c")
{
    if(!
$threadcount)
    {
        eval(
"\$threads = \"".$templates->get("forumdisplay_nothreads")."\";");
    }

    
$clearstoredpass '';
    if(
$foruminfo['password'] != '')
    {
        eval(
"\$clearstoredpass = \"".$templates->get("forumdisplay_threadlist_clearpass")."\";");
    }

    if(
$load_inline_edit_js == 1)
    {
        eval(
"\$inline_edit_js = \"".$templates->get("forumdisplay_threadlist_inlineedit_js")."\";");
    }

    
$post_code_string '';
    if(
$mybb->user['uid'])
    {
        
$post_code_string "&amp;my_post_key=".$mybb->post_code;
    }

    
$lang->rss_discovery_forum $lang->sprintf($lang->rss_discovery_forumhtmlspecialchars_uni(strip_tags($foruminfo['name'])));
    eval(
"\$rssdiscovery = \"".$templates->get("forumdisplay_rssdiscovery")."\";");
    eval(
"\$threadslist = \"".$templates->get("forumdisplay_threadlist")."\";");
}
else
{
    
$rssdiscovery '';
    
$threadslist '';

    if(empty(
$forums))
    {
        
error($lang->error_containsnoforums);
    }
}

$plugins->run_hooks("forumdisplay_end");

$foruminfo['name'] = strip_tags($foruminfo['name']);

eval(
"\$forums = \"".$templates->get("forumdisplay")."\";");
output_page($forums);
?>

Wäre jemand zu lieb mir zu verraten, was ich falsch mache? Bitte?
Liebe Grüße
Zitieren
#29
(08.12.2013, 17:40)Kiss.ME schrieb: Ich hab mehrmals alles so geändert, wie es in Melometlar Beitrag stand, aber bei mir hat sich rein gar nichts geändert. Die Gäste sehen immer noch keine Themen.
Hast Du nur die Änderungen aus Melometlars Beitrag durchgeführt oder auch die in diesem Beitrag verlinkten?


Edit: Link korrigiert
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#30
Jockl, dein Link geht nicht Big Grin
Mit freundlichen Grüßen

MrBrechreiz
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Avatar für Gäste setzen + Avatare für Gäste verstecken windkind 34 10.054 29.12.2021, 00:54
Letzter Beitrag: SvePu
  Beitragszahl+Themenzahl+Benutzerzahl auf Grafik marius 1 1.734 19.12.2008, 14:25
Letzter Beitrag: Lennart Sauter
  Beitragszahl nicht abziehen Susanne 12 4.851 14.02.2007, 17:30
Letzter Beitrag: Michael
  Keine Links für Gäste Hasa 1 1.531 08.01.2007, 19:01
Letzter Beitrag: Michael