Seite 1 von 1

Frage zu:Editierte Beiträge in der Forenansicht obenanzeigen

Verfasst: 05.09.2007 19:54
von Z-MANN
Beschreibung: Nach Einbau dieses Mods, wird ein Thread nach editieren eines Postings in der "viewforum" Ansicht wieder nach oben geschoben..
Ist manchmal Sinnvoll um einem editiertem Thema wieder Aufmerksamkeit zu verleihen.
Dazu muss jedoch in der viewforum.php nach topic_time sortiert werden.
phpBB Version: 2.0.x (getestet mit 2.0.6)
Author: netzmeister


Frage zu diesem snippet!?

Was bedeutet dies??: Dazu muss jedoch in der viewforum.php nach topic_time sortiert werden.
Kann ich nicht ganz folgen?!

Verfasst: 06.09.2007 15:06
von Seimon
ich denke es geht um diese Abfrage:

Code: Alles auswählen

//
// Grab all the basic data (all topics except announcements)
// for this forum
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
	FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
	WHERE t.forum_id = $forum_id
		AND t.topic_poster = u.user_id
		AND p.post_id = t.topic_first_post_id
		AND p2.post_id = t.topic_last_post_id
		AND u2.user_id = p2.poster_id
		AND t.topic_type <> " . POST_ANNOUNCE . "
		$limit_topics_time
	ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
	LIMIT $start, ".$board_config['topics_per_page'];
speziell:

Code: Alles auswählen

ORDER BY t.topic_type DESC, t.topic_last_post_id DESC
Eine Sortierung der Threads nach dem Datum des letzten Postings macht man am besten dadurch, dass man nach der post_id des letzten Postings sortiert. (Ein Posting mit einer höheren ID ist neuer - klar) Das ist deswegen besser, weil die Tabelle eine auto_increment tabelle mit einem index ist und viel schneller sortiert werden kann, als die tabllen mit den zeiten, wo beliebige Werte drinstehen können. (Für mehr Infos frag die SQL Freaks)

Wenn man den Mod verwendet ist stattdessen:

Code: Alles auswählen

ORDER BY t.topic_type DESC, t.topic_time DESC
zu verwenden (vermute ich, Backup!!)

Grund dafür:
Der Thread mit letzem Posting mit id 5 soll nach dem editieren des postings mit id 5 ja vor dem Thread mit letzem Posting id 7 stehen.

Alles klar? :)