Statistik |
Beiträge: 144.534 (Täglich: 19,19 )
Themen: 16.701
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 328%
Ausl. d. letzten 5 Minuten: 351%
Ausl. d. letzten 15 Minuten: 331%
Aktulle Uhrzeit: 15:22
Freier Webspace: 4.03 TB
PHP-Version: 7.4.33
|
|
|
|
|
Unterforen/Subforum als gelesen markieren |
|
Unterforen/Subforum als gelesen markieren |
|
Moin, moin.
Bereits bin ich länger auf der Suche nach folgendem Hack. Ich weiß, dass es ihn damals bei mybb gab und folgendes Thema hier im Forum (https://www.v-gn.de/wbb/thread.php?threadid=5954) hat es mir auch bestätigt. Hier wird leider auch nur auf mybb verwiesen.
Ich hab bereits vor Monaten selbst versucht es irgendwie umzusetzen, bin aber gescheitert. Hat jemand zufällig eine Idee, ob es den Hack irgendwo anders gibt?
beste Grüße
|
|
11.11.2018 12:29 |
|
|
|
Hello (:
ich habe mich jetzt mal versucht daran zu machen, und komme nicht weiter.
meine markread.php sieht jetzt so aus:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
|
<?php
$filename="markread.php";
require ("./global.php");
if (isset($boardid)) {
if ($wbbuserdata['userid'] && $board['lastposttime'] > $wbbuserdata['lastvisit']) {
$db->unbuffered_query("REPLACE INTO bb".$n."_boardvisit (boardid,userid,lastvisit) VALUES ('".$boardid."','".$wbbuserdata['userid']."','".time()."')");
}
header("Location: board.php?boardid=$boardid&sid=$session[hash]");
}
else {
if ($wbbuserdata['userid']) {
$db->query("UPDATE bb".$n."_users SET lastvisit='".time()."' WHERE userid = '$wbbuserdata[userid]'");
}
else bbcookie("lastvisit", time(), 0);
header("Location: index.php?sid=$session[hash]");
}
?> |
|
klicke ich in einem Unterforum jetzt auf "Unterforum als gelesen markieren" fügt er in die _boardvisit in der Datenbank auch alles wunderbar ein.
Nun werden die Themen in dem Unterforum aber immer noch ungelesen angezeigt.
Ich habe (vorerst) in der board.php folgendes erweitert
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
$result = $db->query("
SELECT
b.*".ifelse($showlastposttitle==1,", t.topic, i.*")."
FROM bb".$n."_boards b
".ifelse($showlastposttitle==1,"LEFT JOIN bb".$n."_threads t ON (t.threadid=b.lastthreadid)
LEFT JOIN bb".$n."_icons i USING (iconid)")."
ORDER by b.parentid ASC, $boardorder");
while ($row = $db->fetch_array($result)) {
$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
$boardnavcache[$row['boardid']]=$row;
} |
|
zu
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
$boardvisit = array();
$result = $db->query("
SELECT
b.*".ifelse($showlastposttitle==1,", t.topic, i.*, t.prefix AS threadprefix")."
FROM bb".$n."_boards b
LEFT JOIN bb".$n."_boardvisit bv ON (bv.boardid=b.boardid AND bv.userid='".$wbbuserdata['userid']."')
".ifelse($showlastposttitle==1,"LEFT JOIN bb".$n."_threads t ON (t.threadid=b.lastthreadid)
LEFT JOIN bb".$n."_icons i USING (iconid)")."
ORDER by b.parentid ASC, $boardorder");
while ($row = $db->fetch_array($result)) {
$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
$boardnavcache[$row['boardid']]=$row;
$boardvisit[$row['boardid']] = $row['lastvisit'];
} |
|
Ich habe mich hier am wbb 2.3.6 orieniert, dass ich noch auf der Festplatte gefunden habe. Aber dann verließen sie mich. Trotz Abgleich des Codes kriege ich es nicht hin, dass er die Buttons korrekt anzeigt. Es wird weiterhin alles als neu markiert.
Im Lite ist dieser Part ja vorhanden:
code: |
1:
|
if(isset($boardvisit[$boardid]) && $boardvisit[$boardid]>$wbbuserdata['lastvisit']) $wbbuserdata['lastvisit']=$boardvisit[$boardid]; |
|
sodass ich davon ausgehe, dass ich hier eigentlich nichts mehr machen muss:
code: |
1:
2:
3:
4:
5:
6:
|
if($threads['important']==2) $foldericon="announce";
else $foldericon=ifelse($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime'],"new").ifelse($threads['replycount']>=$board['hotthread_reply'] || $threads['views']>=$board['hotthread_view'],"hot").ifelse($threads['closed']!=0,"lock")."folder";
if($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime']) eval ("\$firstnew = \"".$tpl->get("board_threadbit_firstnew")."\";");
if($threads['pollid']!=0) $threadicon=makeimgtag("{imagefolder}/poll.gif","");
elseif($threads['iconid']) $threadicon=makeimgtag($threads['iconpath'],$threads['icontitle']);
else $threadicon=" "; |
|
Irgendwo muss aber was fehlen. Hat jemand eine Idee?
beste Grüße
|
|
05.03.2019 18:34 |
|
|
|
Hallo Viktor und danke für deine Rückmeldung,
das mit dem Cookie ist mir aufgefallen. Den Code für den cookie habe ich entfernt und dafür diesen Teil erweitert:
code: |
1:
2:
3:
|
$boardvisit = array();
... fortlaufend
|
|
Ahh, der Part in der functions.php ist aber jedoch für die boardbits, oder? Soweit war ich noch nicht, beziehungsweise wollte ich Schritt für Schritt machen und erstmal, dass er die Themen als gelesen anzeigt. Weil die laufen ja parallel nebenbeinander, wenn ich das richtig sehe.
Diese Zeile finde ich im 2.3.6 gar nicht, weswegen ich sie erstmal stehen gelassen habe.
code: |
1:
|
if(isset($boardvisit[$boardid]) && $boardvisit[$boardid]>$wbbuserdata['lastvisit']) $wbbuserdata['lastvisit']=$boardvisit[$boardid]; |
|
Im 2.3.6 sieht der Code für die Icons in der board_threadbit ja so aus:
code: |
1:
2:
3:
4:
5:
|
if ($threads['important'] == 2) $foldericon = 'announce';
else $foldericon = ((isset($threads['userid']) && $threads['userid']) ? ('dot') : ('')).(($threads['lastposttime'] > $board['lastvisit'] && $threads['lastposttime'] > $threads['lastvisit']) ? ('new') : ('')).(($threads['replycount'] >= $board['hotthread_reply'] || $threads['views'] >= $board['hotthread_view']) ? ('hot') : ('')).(($threads['closed'] != 0) ? ('lock') : ('')).'folder';
if ($threads['pollid'] != 0) $threadicon = makeimgtag($style['imagefolder'].'/poll.gif');
elseif ($threads['iconid']) $threadicon = makeimgtag($threads['iconpath'], getlangvar($threads['icontitle'], $lang), 0);
else $threadicon = ' '; |
|
und da verwirrt mich der Aufbau leider extrem.
|
|
05.03.2019 22:19 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.781.398
Nächster Level: 266.777.854
|
|
|
Zitat: Original von sadagares
Hallo Viktor und danke für deine Rückmeldung,
Ahh, der Part in der functions.php ist aber jedoch für die boardbits, oder? Soweit war ich noch nicht, beziehungsweise wollte ich Schritt für Schritt machen und erstmal, dass er die Themen als gelesen anzeigt. Weil die laufen ja parallel nebenbeinander, wenn ich das richtig sehe.
|
|
|
Hallo,
da wird die Grafik "on" oder "off" gesetzt.
Das musst du Dir noch mal genauer ansehen.
code: |
1:
2:
3:
4:
5:
|
Diese Zeile finde ich im 2.3.6 gar nicht, weswegen ich sie erstmal stehen gelassen habe.
if(isset($boardvisit[$boardid]) && $boardvisit[$boardid]>$wbbuserdata['lastvisit']) $wbbuserdata['lastvisit']=$boardvisit[$boardid];
|
|
Das müsste der Code im wBB2.3 sein.
code: |
1:
2:
3:
|
if ($wbbuserdata['lastvisit'] > $board['lastvisit']) $board['lastvisit'] = $wbbuserdata['lastvisit'];
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
05.03.2019 22:35 |
|
|
|
Ja genau, aber ich bin aktuell bei
1) firstnew
2) new/old folder
die on/off wollte ich danach machen, wenn ich durch den Code gestiegen bin.
Ah, jetzt habe ich ihn gefunden. Leider bleibt es dabei. Aber ich habe mal einen Screenshot mit was ich aktuell genau meine.
|
|
05.03.2019 22:45 |
|
|
|
Ahh. Ich habs hinbekommen. Es fehlte in der global.php der Zusatz für die boardvisit in der $board select Abfrage. Man möchte ein wenig facepalmen, dass es doch so einfach war.
Jetzt machen wir den Rest.
Vielen Dank aber auf jeden Fall.
|
|
06.03.2019 11:55 |
|
|
|
|
|
|