Viktor's Supportboard (https://www.v-gn.de/wbb/index.php)
- Support (https://www.v-gn.de/wbb/board.php?boardid=6)
-- Fragen/Hilfe/Sonstiges (wBB2.3.x) (https://www.v-gn.de/wbb/board.php?boardid=72)
--- Beiträge der letzten Woche (https://www.v-gn.de/wbb/thread.php?threadid=11680)
Geschrieben von toni am 26.03.2009 um 22:30:
Beiträge der letzten Woche
hallo zusammen,
kennt jemand ein hack wo man sich die beiträge der letzten woche ansehen kann?
oder ist das eventuell eine einstellungs sache die ich noch nicht kenne?
gruß
toni
Geschrieben von Markus Dippold am 27.03.2009 um 06:35:
Das ist zu starr.
Ich habe das globaler gelöst, der Teil sieht bei mir jetzt so aus:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
|
/* new threads 24h */
//if ($_GET['action']) == '24h') {
if (wbb_substr($_GET['action'],0,7) == 'Stunden') {
$hours = intval(wbb_substr($_GET['action'],7));
if ($hours == 0) $hours = 24;
$boardids = '';
list($boardcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_boards");
$result = $db->query("SELECT boardid FROM bb".$n."_boards WHERE password='' AND boardid IN (0".getSearchableBoards().")");
if ($db->num_rows($result) < $boardcount) {
while ($row = $db->fetch_array($result)) {
if ($boardids != '') $boardids .= ','.$row['boardid'];
else $boardids = $row['boardid'];
}
if (!$boardids) redirect($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"), "search.php" . $SID_ARG_1ST);
}
$savepostids = '';
$datecute = time() - $hours * 3600; //86400;
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$datecute'
".(($boardids) ? ("AND t.boardid IN ($boardids)") : ("")));
while ($row = $db->fetch_array($result)) $savepostids .= ','.$row['postid'];
if (!$savepostids) redirect($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"), "search.php" . $SID_ARG_1ST);
$result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."'");
if ($result['searchid']) {
header("Location: search.php?searchid=".$result['searchid'].$SID_ARG_2ND_UN);
exit();
}
$db->query("INSERT INTO bb".$n."_searchs (searchhash,postids,showposts,sortby,sortorder,searchtime,userid,ipaddress)
VALUES ('".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."','$savepostids','0','lastpost','desc','".time()."','$wbbuserdata[userid]','$REMOTE_ADDR')");
$searchid = $db->insert_id();
header("Location: search.php?searchid=$searchid".$SID_ARG_2ND_UN);
exit();
} |
|
Es muß noch eine Zeile eingefügt werden:
Suchen (ganz oben):
php: |
1:
|
if (!isset($_GET['action'])) $_GET['action'] = ''; |
|
Darunter einfügen:
php: |
1:
|
if (intval($_GET['action']) > 0) $_GET['action'] = "Stunden".intval($_GET['action']); |
|
Dann gibt es keine Verwechslungen mit irgendwelchen anderen Sachen. Kann man vielleicht auch eleganter lösen.
So funktioniert's:
Man kopiert sich den Such-Link der letzten 24h und trägt ihn oben in die Adressleite rein (mal als Beispiel mit meinem Forum):
http://www.trekkies-forum.de/search.php?action=24h
Und ersetzt dann das "24h" durch die gewünschte Stundenanzahl.
Du kannst auch einen Button einfügen, bei dem dann gleich drinsteht:
http://www.trekkies-forum.de/search.php?action=168h
Aber wenn ein User meint, er müßte immer die Postings der letzten vier Wochen haben, dann macht er sich ein Bookmark mit
http://www.trekkies-forum.de/search.php?action=672h
Funktioniert alles.
Ist das "action" leer bzw. kann keine Zahl extrahiert werden, wird die Standardsuche genommen.
ist "action=0" wird 24h angenommen.
Gruß,
Markus
Geschrieben von DenHelder am 27.03.2009 um 08:33:
moin
es gibt einen hack für dein anliegen, leider habe ich ihn auf die schnelle nicht gefunden ...
mit diesem hack kann man sich die themen der letzten
- 24 stunden
- 72 stunden
- 120 stunden
- 168 stunden
anzeigen lassen. schau mal auf den screene, ob das der gewünschte hack ist.
vg
Edit:
schau mal hier, das sollte der hack sein ==>
Active Themen Suche um x Tage erweitern
Geschrieben von Markus Dippold am 27.03.2009 um 09:37:
Das ist mit meinem kleinen Umbau einfach zu realisieren.
Alle Voraussetzungen sind bei mir schon vorhanden. In diese Linkzeile müssen nur die Links entsprechend eingefügt werden.
Für's Trekkies Forum wäre das:
http://www.trekkies-forum.de/search.php?action=24h
http://www.trekkies-forum.de/search.php?action=72h
http://www.trekkies-forum.de/search.php?action=120h
http://www.trekkies-forum.de/search.php?action=168h
Eigentlich ist es völlig egal, welche Zahl man da hinten einträgt. Kann auch 4711 oder 0815 sein, dann hat man die Postings der letzten 4711 bzw. 815 Stunden.
Den Rest erledigt das oben von mir gepostete Script.
Gruß,
Markus
Geschrieben von toni am 27.03.2009 um 19:51:
danke euch für die hilfe, werde ich morgen ausprobieren.
Geschrieben von toni am 24.06.2009 um 23:03:
hallo zusammen,
ich muss leider nochmal auf das thema zurück kommen, ich habe es in einen anderen forum gesehen und wollte fragen ob man es so umsetzen kann wie im screen
Geschrieben von Rabax am 24.06.2009 um 23:26:
Hi,
stehe ich jetzt auf dem Schlauch?
Das wird doch hier schon erklärt, wie Du das machen kannst. Einfach deine Links entsprechend einfügen, also jeweils mit der Stundenzahl für 1 Woche, 10 Tage, 5 Jahre.... wie Du möchtest.
VG
Rabax
Geschrieben von toni am 25.06.2009 um 09:37:
sorry,
im moment stehe ich echt ein wenig neben der schuhe.
hast recht.
Geschrieben von Rabax am 25.06.2009 um 13:23:
Hi,
ich würde an deiner Stelle aber noch die Stundenzahl begrenzen, sonst könnte das je nach Größe des Forums zu Problemen kommen, z.B. wenn jemand auf die Idee kommt sich mal alle Beiträge seit Start des Forums anzeigen zu lassen. Bei mir wären das um die 200000, könnte also den Server in die Knie gehen lassen, vor allem wenn man die Abfrage wiederholt.
Ich würde in der PHP die oben von Markus Dippolt gepostet wurde einfach in Zeile 5 das
php: |
1:
|
if ($hours == 0) $hours = 24; |
|
in
php: |
1:
|
if ($hours == 0 OR $hours >= XX) $hours = 24; |
|
ändern, dann werden bei zu hoher Stundenzahl einfach auch nur die Beiträge der letzten 24 Stunden angezeigt. Bei XX schreibst Du dann deine maximale Stundenanzahl ein. Ungetestet, aber sollte klappen.
VG
Rabax
Geschrieben von toni am 25.06.2009 um 23:49:
hallo,
erstmal danke an alle für eure hilfe, hab es nun so gelöst:
sichern die datei und öffne danach die search.php und suche:
code: |
1:
|
/* new threads 24h */ |
|
füge darüber ein:
code: |
1:
|
/* new threads last week */ if ($_GET['action'] == '1week') { $boardids = ''; list($boardcount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_boards"); $result = $db->query("SELECT boardid FROM bb".$n."_boards WHERE password='' AND boardid IN (0".getSearchableBoards().")"); if ($db->num_rows($result) < $boardcount) { while ($row = $db->fetch_array($result)) { if ($boardids != '') $boardids .= ','.$row['boardid']; else $boardids = $row['boardid']; } if (!$boardids) redirect($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"), "search.php" . $SID_ARG_1ST); } $savepostids = ''; $datecute = time() - 604800; $result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$datecute' ".(($boardids) ? ("AND t.boardid IN ($boardids)") : (""))); while ($row = $db->fetch_array($result)) $savepostids .= ','.$row['postid']; if (!$savepostids) redirect($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"), "search.php" . $SID_ARG_1ST); $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."'"); if ($result['searchid']) { header("Location: search.php?searchid=".$result['searchid'].$SID_ARG_2ND_UN); exit(); } $db->query("INSERT INTO bb".$n."_searchs (searchhash,postids,showposts,sortby,sortorder,searchtime,userid,ipaddress) VALUES ('".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."','$savepostids','0','lastpost','desc','".time()."','$wbbuserdata[userid]','$REMOTE_ADDR')"); $searchid = $db->insert_id(); header("Location: search.php?searchid=$searchid".$SID_ARG_2ND_UN); exit(); } |
|
speicher und wieder hochladen.
gehe ins acp und öffne die index.tpl:
suche:
code: |
1:
|
<table style="width:{$style['tableinwidth']}"> <tr> <td align="right"><span class="smallfont"><a href="search.php?action=24h{$SID_ARG_2ND}">{$lang->items['LANG_START_CURRENT_THREADS']}</a> | <a href="search.php?action=polls{$SID_ARG_2ND}">{$lang->items['LANG_START_CURRENT_POLLS']}</a> | <a href="markread.php{$SID_ARG_1ST}">{$lang->items['LANG_START_MARKREAD_ALL']}</a><if($show_archive == 1)><then> | <b><a href="archive/index.html">{$lang->items['LANG_START_ARCHIVE']}</a></b></then></if></span></td> </tr> </table><br /> |
|
und füge ein:
code: |
1:
|
<table style="width:{$style['tableinwidth']}"> <tr> <td align="right"><span class="smallfont"><a href="search.php?action=24h{$SID_ARG_2ND}">{$lang->items['LANG_START_CURRENT_THREADS']}</a> | <a href="search.php?action=1week{$SID_ARG_2ND}">aktive Themen der letzten Woche</a> | <a href="search.php?action=polls{$SID_ARG_2ND}">{$lang->items['LANG_START_CURRENT_POLLS']}</a> | <a href="markread.php{$SID_ARG_1ST}">{$lang->items['LANG_START_MARKREAD_ALL']}</a><if($show_archive == 1)><then> | <b><a href="archive/index.html">{$lang->items['LANG_START_ARCHIVE']}</a></b></then></if></span></td> </tr> </table><br /> |
|
das sollte es gewesen sein.
Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab® GmbH