Re: Anzeige aller Beiträge der letzten 48 Stunden
Verfasst: 28.02.2009 12:05
Prima. Das mit GPL ist mir schon klar, aber ich frage lieber nach.
Ok, hier meine Änderungen für die Anzeige der Beiträge der letzten 3/6/12/24 Stunden. Mod wäre dazu vielleicht zuviel gesagt.
Zu ändernde Dateien:
/search.php
/include/functions.php
/language/de/common.php
/style/<style_name>/template/overall_header.html
Öffne search.php, suche nach:
Füge danach in eine Leerzeile ein:
Suche:
Füge in eine Leerzeile danach ein:
Speichern und schließen.
Öffne functions.php, suche nach:
Füge in eine Leerzeile danach ein:
Speichern und schließen.
Öffne /language/de/common.php, suche nach:
Füge in einer Leerzeile danach ein:
Speichern und schließen. Das gleiche für andere Sprachverzeichnisse ausführen.
Öffne /style/<style_name>/template/overall_header.html und füge an gewünschter Stelle ein:
Speichern und schließen. Da ich ein tabellenbasierenden Style verwende, muss das für andere entsprechend angepasst werden.
Zur Erklärung:
Bin halt nicht der Coder vor dem Herrn und es gibt damit keine tolle Erweiterung fürs ACP zum Konfigurieren, ich brauch die auch nicht. Im phpBB2 Forum hatte ich den Mod auch drin, aber die Einstellungen der Suchzeiten nach der Einrichtung nie wieder verändert.
Die unterschiedlichen Suchzeiten ergeben sich durch die Vorgaben in der functions.php, ganz am Ende der zusätzlichen Einträge wird der Wert mit z.B. st2=10800 = 10800 Sekunden = 3 Stunden vorgegeben.
Der Codeschnipsel von Miriam arbeitete mit Tagen, das war mir halt zuwenig. Ich möchte gerne auf einen Blick sehen, was in den letzten Stunden ablief. In der search.php wird nun mit (time() - ($sort_hours)) die Anzahl der mit st2 definierten Sekunden von der aktuellen Zeit abgezogen und die in diesem Zeitraum aufgelaufenen Beiträge werden angezeigt.
Comments welcome....vielleicht kann man das auch viel einfacher lösen. Oder es hat Sicherheitslücken.
Ok, hier meine Änderungen für die Anzeige der Beiträge der letzten 3/6/12/24 Stunden. Mod wäre dazu vielleicht zuviel gesagt.
Zu ändernde Dateien:
/search.php
/include/functions.php
/language/de/common.php
/style/<style_name>/template/overall_header.html
Öffne search.php, suche nach:
Code: Alles auswählen
$sort_days = request_var('st', 0)
Code: Alles auswählen
$sort_hours = request_var('st2', 0);
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;
Code: Alles auswählen
case 'newposts12':
$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 = 1;
$sort_hours = request_var('st2', 0);
$select_days = ($sort_days) ? (time() - ($sort_hours)) : $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;
Öffne functions.php, suche nach:
Code: Alles auswählen
'U_SEARCH_NEW' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts'),
Code: Alles auswählen
'U_SEARCH_NEW24' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts12&st2=86400'),
'U_SEARCH_NEW12' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts12&st2=43200'),
'U_SEARCH_NEW6' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts12&st2=21600'),
'U_SEARCH_NEW3' => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=newposts12&st2=10800'),
Öffne /language/de/common.php, suche nach:
Code: Alles auswählen
'SETTINGS' => 'Einstellungen',
Code: Alles auswählen
'SHOW_LAST_POSTS' => 'Zeige letzte Beiträge: ',
Öffne /style/<style_name>/template/overall_header.html und füge an gewünschter Stelle ein:
Code: Alles auswählen
<td align="right">
{L_SHOW_LAST_POSTS}<a href="{U_SEARCH_NEW3}">3h</a> | <a href="{U_SEARCH_NEW6}">6h</a> | <a href="{U_SEARCH_NEW12}">12h</a> | <a href="{U_SEARCH_NEW24}">24h</a>
</td>
Zur Erklärung:
Bin halt nicht der Coder vor dem Herrn und es gibt damit keine tolle Erweiterung fürs ACP zum Konfigurieren, ich brauch die auch nicht. Im phpBB2 Forum hatte ich den Mod auch drin, aber die Einstellungen der Suchzeiten nach der Einrichtung nie wieder verändert.
Die unterschiedlichen Suchzeiten ergeben sich durch die Vorgaben in der functions.php, ganz am Ende der zusätzlichen Einträge wird der Wert mit z.B. st2=10800 = 10800 Sekunden = 3 Stunden vorgegeben.
Der Codeschnipsel von Miriam arbeitete mit Tagen, das war mir halt zuwenig. Ich möchte gerne auf einen Blick sehen, was in den letzten Stunden ablief. In der search.php wird nun mit (time() - ($sort_hours)) die Anzahl der mit st2 definierten Sekunden von der aktuellen Zeit abgezogen und die in diesem Zeitraum aufgelaufenen Beiträge werden angezeigt.
Comments welcome....vielleicht kann man das auch viel einfacher lösen. Oder es hat Sicherheitslücken.