31.10.2010, 08:55
Guten Tag,
Ich habe auf folgender Seite das Portal als Startseite eingerichtet:
http://clubfreeware.bplaced.net/
Nun möchte ich gerne den Threads, die vom User noch nicht gelesen sind einen andersfarbigen Rahmen geben. Jedoch blick ich im PHP Code noch nicht ganz durch. Wenn ich mich nicht irre ist in der forumdisplay.php dies verantwortlich dafür:
In der portal.php ist dieser Abschnitt für die Threads zuständig:
Wie stell ich das jetzt an, dass ich von gelesen und ungelesen unterscheiden kann?
Ich habe auf folgender Seite das Portal als Startseite eingerichtet:
http://clubfreeware.bplaced.net/
Nun möchte ich gerne den Threads, die vom User noch nicht gelesen sind einen andersfarbigen Rahmen geben. Jedoch blick ich im PHP Code noch nicht ganz durch. Wenn ich mich nicht irre ist in der forumdisplay.php dies verantwortlich dafür:
PHP-Code:
if($mybb->user['uid'] == 0)
{
// Build a forum cache.
$query = $db->query("
SELECT *
FROM ".TABLE_PREFIX."forums
WHERE active != 0
ORDER BY pid, disporder
");
$forumsread = unserialize($mybb->cookies['mybb']['forumread']);
}
else
{
// Build a forum cache.
$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'] == 0)
{
if($forumsread[$forum['fid']])
{
$forum['lastread'] = $forumsread[$forum['fid']];
}
}
$fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
}
In der portal.php ist dieser Abschnitt für die Threads zuständig:
PHP-Code:
// Latest forum discussions
if($mybb->settings['portal_showdiscussions'] != 0 && $mybb->settings['portal_showdiscussionsnum'])
{
$altbg = alt_trow();
$threadlist = '';
$query = $db->query("
SELECT t.*, u.username
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=t.uid)
WHERE 1=1 $unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
ORDER BY t.lastpost DESC
LIMIT 0, ".$mybb->settings['portal_showdiscussionsnum']
);
while($thread = $db->fetch_array($query))
{
$lastpostdate = my_date($mybb->settings['dateformat'], $thread['lastpost']);
$lastposttime = my_date($mybb->settings['timeformat'], $thread['lastpost']);
// Don't link to guest's profiles (they have no profile).
if($thread['lastposteruid'] == 0)
{
$lastposterlink = $thread['lastposter'];
}
else
{
$lastposterlink = build_profile_link($thread['lastposter'], $thread['lastposteruid']);
}
if(my_strlen($thread['subject']) > 20)
{
$thread['subject'] = my_substr($thread['subject'], 0, 20) . "...";
}
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
$thread['threadlink'] = get_thread_link($thread['tid']);
eval("\$threadlist .= \"".$templates->get("portal_latestthreads_thread")."\";");
$altbg = alt_trow();
}
if($threadlist)
{
// Show the table only if there are threads
eval("\$latestthreads = \"".$templates->get("portal_latestthreads")."\";");
}
}
Wie stell ich das jetzt an, dass ich von gelesen und ungelesen unterscheiden kann?