Anzeige aller Beiträge der letzten 48 Stunden

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
wobo
Mitglied
Beiträge: 105
Registriert: 04.09.2003 09:09

Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von wobo »

I der zur Zeit von mir benutzten Software (PunBB) gibt es eine Suchfunktion, die mir als Ergebnis alle Beiträge auflistet, die in den letzten 48 Stunden gepostet wurden, wobei die noch nicht von mir gelesenen als "neu" markiert sind.
Siehe: http://www.mandrivauser.de/search.php?action=show_24h (Bei nicht angemeldeten Usern entfällt natürlich die "ungelesen"-Markierung).

Gibt es eine derartige Funktion auch in phpBB3? Ich habe schon die Forensuche bemüht, aber möglicherweise nicht die richtigen Keywords gefunden.

wobo
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von Metzle »

Hallo,

in phpBB3 gibt es die Möglichkeit sich "Neue Beiträge" anzeigen zu lassen, seit dem letzten Besuch. Das dürfte in etwa dem entsprechen. Allerdings werden hierbei die ungelesen und gelesen Markierungen missachtet, es werden schlichtweg die neuen Beiträge seit dem letzten Besuch angezeigt.
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
wobo
Mitglied
Beiträge: 105
Registriert: 04.09.2003 09:09

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von wobo »

Ja, das ist mir bekannt, ich suchte aber nach dieser Option, die ich genannt habe.

Die Anzeige der neuen Beiträge seit dem letzten Login ist suboptimal, das ist bekannt. Erklärung: Wenn ich mich morgens einlogge, sehe ich beispielsweise 20 neue Beiträge. Ich lese und beantworte 10, dann muss ich weg. Nachmittags komme ich wieder, logge mich ein und sehe wieder neue Beiträge, nicht aber die 10, die ich morgens nicht mehr lesen konnte. D.h. mir sind die 10 Beiträge entgangen. Es sei denn, es werden nicht nur die ungelesenen Beiträge seit dem letzten Login, sondern ALLE ungelesenen Beiträge angezeigt - was aber wohl nicht der Fall ist.

wobo
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von Miriam »

Du könntest auch die search.php etwas "aufbohren" und zwar hier ->
finde:

Code: Alles auswählen

            case 'newposts':
                $l_search_title = $user->lang['SEARCH_NEW'];
                // force sorting
                $show_results = (request_var('sr', 'topics') == 'posts') ? 'posts' : 'topics';
                $sort_key = 't';
                $sort_dir = 'd';
                $sort_by_sql['t'] = ($show_results == 'posts') ? 'p.post_time' : 't.topic_last_post_time';
                $sql_sort = 'ORDER BY ' . $sort_by_sql[$sort_key] . (($sort_dir == 'a') ? ' ASC' : ' DESC');

                gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
                $s_sort_key = $s_sort_dir = $u_sort_param = $s_limit_days = '';

                if ($show_results == 'posts')
                {
                    $sql = 'SELECT p.post_id
                        FROM ' . POSTS_TABLE . ' p
                        WHERE p.post_time > ' . $user->data['user_lastvisit'] . "
                            $m_approve_fid_sql
                            " . ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "
                        $sql_sort";
                    $field = 'post_id';
                }
                else
                {
                    $sql = 'SELECT t.topic_id
                        FROM ' . TOPICS_TABLE . ' t
                        WHERE t.topic_last_post_time > ' . $user->data['user_lastvisit'] . '
                            AND t.topic_moved_id = 0
                            ' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . '
                            ' . ((sizeof($ex_fid_ary)) ? 'AND ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) : '') . "
                        $sql_sort";
                    $field = 'topic_id';
                }
            break;
 
tausche aus gegen:

Code: Alles auswählen

            case 'newposts':
                $l_search_title = $user->lang['SEARCH_NEW'];
                // force sorting
                $show_results = (request_var('sr', 'topics') == 'posts') ? 'posts' : 'topics';
                $sort_key = 't';
                $sort_dir = 'd';
                $sort_by_sql['t'] = ($show_results == 'posts') ? 'p.post_time' : 't.topic_last_post_time';
                $sql_sort = 'ORDER BY ' . $sort_by_sql[$sort_key] . (($sort_dir == 'a') ? ' ASC' : ' DESC');
                gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
                $s_sort_key = $s_sort_dir = $u_sort_param = $s_limit_days = '';
                $sort_days = request_var('st', 0);
                $select_days = ($sort_days) ? (time() - ($sort_days * 24 * 3600)) : $user->data['user_lastvisit'];
                if ($show_results == 'posts')
                {
                    $sql = 'SELECT p.post_id
                        FROM ' . POSTS_TABLE . ' p
                        WHERE p.post_time > ' . $select_days . "
                            $m_approve_fid_sql
                            " . ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "
                        $sql_sort";
                    $field = 'post_id';
                }
                else
                {
                    $sql = 'SELECT t.topic_id
                        FROM ' . TOPICS_TABLE . ' t
                        WHERE t.topic_last_post_time > ' . $select_days . '
                            AND t.topic_moved_id = 0
                            ' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . '
                            ' . ((sizeof($ex_fid_ary)) ? 'AND ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) : '') . "
                        $sql_sort";
                    $field = 'topic_id';
                }
            break; 
Nun kannst Du mit dem Parameter st=<anzahl_der_tage> im Link die Tage zum Anzeigen vorgeben. Z.B. so:

Code: Alles auswählen

/search.php?search_id=newposts&st=2
Hier also 2 Tage als Zeitrahmen. Falls kein Zeitrahmen übergeben wird, benutzt die Suche die (vor-)letzte Login-Zeit des suchenden Users.
Vergiss aber nicht, die SID mit append_sid() zu übergeben, wenn Du den Link baust.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
wobo
Mitglied
Beiträge: 105
Registriert: 04.09.2003 09:09

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von wobo »

Miriam hat geschrieben:Vergiss aber nicht, die SID mit append_sid() zu übergeben, wenn Du den Link baust.
Was meinst Du damit - sorry, bin kein richtiger PHP-Coder...

wobo
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von Miriam »

Also das einpflegen des neuen Links.. falls Du es denn so machen möchtest.... wäre beispielhaft so möglich: http://www.phpbb.de/community/viewtopic ... 2#p1033932
append_sid() brauchst Du in phpBB deshalb, damit der User auch eingeloggt bleibt.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
wobo
Mitglied
Beiträge: 105
Registriert: 04.09.2003 09:09

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von wobo »

Habe den Code von Dir eben mal ausprobiert - da bekomme ich alle Beiträge des gesamten Forums aufgelistet. Also bis hin zu Beiträgen, die über 5 Jahre alt sind.

Hmm, möglicherweise reden wir aneinander vorbei. Diese Funktion sollte auch im nicht angemeldeten Zustand (z.B. für nicht registrierte Besucher) zur Verfügung stehen.
In PunBB wird das - soweit ich das verstehe - so umgesetzt, dass einfach vom aktuellen Zeitpunkt 24 Stunden zurückgerechnet wird und alle Beiträge, die einen Zeitstempel innerhalb dieser Zeitspanne tragen, aufgelistet werden wie andere Suchergebnisse auch, allerdings nach Thread geordnet. Zusätzlich wird eben noch abgefragt, ob ein User angemeldet ist, wenn ja, werden von ihm ungelesene Beiträge markiert.

Es wäre schade, wenn wir diese Funktion nicht mehr zur Verfügung stellen könnten, da diese Funktion eine der meist eingesetzten Funktionen ist, soweit ich das von den Usern erfahre. Eine Alternative wäre eine "echte" Ungelesen-Funktion, die das "Ungelesen"-Tag so lange behält, bis der User den Beitrag gelesen hat oder "alle Foren als gelesen" markiert hat - also auch über einen Logout/Login hinaus.

wobo
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von Metzle »

Hallo,

ich habs mal in die Mod Suche/Anfrage verschoben.

Spontan würde mir noch eine Mod einfallen, die alle ungelesenen Beiträge anzeigt: View or mark unread posts
Damit werden alle ungelesenen Beiträge angezeigt über einen Link, der oben hinzugefügt wird, und man kann damit auch Beiträge als ungelesen markieren. Zwar auch nicht ganz das, was du suchst, aber es geht eher in die Richtung und vielleicht kannst du dich damit anfreunden erst mal.
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
wobo
Mitglied
Beiträge: 105
Registriert: 04.09.2003 09:09

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von wobo »

Die MOD kenne ich, die benutzte ich schon unter phpbb2 - die zeigt aber nur etwas an, wenn ein User angemeldet ist.
Du hast recht: es ist nicht das, was ich suche. Siehe Link in meinem ersten Beitrag.

wobo
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Anzeige aller Beiträge der letzten 48 Stunden

Beitrag von Miriam »

wobo hat geschrieben:Habe den Code von Dir eben mal ausprobiert - da bekomme ich alle Beiträge des gesamten Forums aufgelistet. Also bis hin zu Beiträgen, die über 5 Jahre alt sind...
Auch wenn Du die Suche mit Parameter st=2 aufrust, so wie ich es oben gepostet habe? :o
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“