Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Portal: Abfragen ob Thread von User gelesen
#1
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:
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'] != && $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'], 020) . "...";
        }
        
$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?
Zitieren
#2
Ich sagte ja, dass das komplizierter ist. Ich glaube nicht, dass dir jemand den fertigen Code bastelt. Wink
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Ich könnte auch was per w2b (work2buy.com) zahlen wenns sein muss. Einfach per PN melden. (Wenn jemand mit Geld gleich interesse daran hat, könnte er gleich noch mehr machen)

Aber ich wäre schon über Unterstützung froh. Also so wie ich das sehe wird da was per Cookie gespeichert. und erst dann in der Schleife wieder abgefragt. Würdet ihr das so belassen oder wie ist das?
Abgesehen davon ist der Code ja sowieso zu nichts Nütz. Im Forum werden bei uns einfach alle als ungelesen markiert...
Zitieren
#4
Nein, nur für Gäste wird in Cookies gespeichert. Bei Benutzern steht das in der Datenbank.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Doppelt Buchstaben abfragen? Yasilein 6 2.719 07.06.2014, 13:18
Letzter Beitrag: Yasilein
  Anzahl der User in den Gruppen abfragen MrBrechreiz 10 4.127 29.04.2014, 11:54
Letzter Beitrag: MrBrechreiz
  Doppelt mit WHERE abfragen? Yasilein 4 1.944 17.12.2013, 19:41
Letzter Beitrag: Yasilein
  Zugriffsrechte pro Forum für anzugebenden User abfragen? icarus 3 1.924 27.09.2010, 12:42
Letzter Beitrag: querschlaeger
  MySQL abfragen zahl Marti95. 4 2.438 14.12.2009, 19:02
Letzter Beitrag: Marti95.