Seite 1 von 1

Reihenfolge der Beiträge - Usereinstellung

Verfasst: 18.10.2004 13:57
von raphael
..stammt von diesem Thema (Acid)

Ich greife dieses Thema nochmal auf, weil ich keine Lösung für meine Idee gefunden habe.
Es wäre äußerst praktisch, wenn die Nutzer in ihrem Profil einstellen könnten, in welcher Reihenfolge Beiträge bei ihnen sortiert werden sollen.
Vom Prinzip her müsste das ja im Grunde so laufen:

In der Datenbank muss bei phpbb_users ein neues Feld erstellt werden, dass entweder auf 0 oder 1 springt. Über einen Punkt im Profil können die Nutzer dann einstellen wie die Beiträge sortiert werden sollen. Dadurch ändert sich ihr Wert in der DB auf 0 oder 1 (je nachdem halt).

In der viewtopic.php müsste dann halt abgefragt werden ob dieser Eintrag in der DB auf 0 oder 1 steht und dementsprechend entweder $post_time_order = 'ASC' oder $post_time_order = 'DESC' angewendet werden.

Würde dieses Prinzip funktionieren?
Könnte mir vielleicht jemand beschreiben, wie ich das dann genau machen muss? :oops:

Verfasst: 21.10.2004 00:39
von Acid
Zunächst müsstest du das Profil der User um ein Feld erweitern (s. Datenbank für den MOD), wohl am besten ein Dropdownfeld.

Anschliessend müsste die viewtopic.php in diesem Bereich angepasst werden.

Code: Alles auswählen

if( Usereinstellung ) { sort = Usereinstellung } else { sort = Standard }

Verfasst: 21.10.2004 21:28
von raphael
Ich habe das mit einer Radiobox gemacht.
Neuester Beitrag am Anfang: ja () nein ()
Standard auf nein
Datenbankfeld heißt user_sortposts
In der viewtopic.php habe ich dann
$sql = "SELECT user_sortposts
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";

if ( $user_sortposts = '0' )
{
$post_order = 'asc';
$post_time_order = 'ASC';
}
else
{
$post_order = 'desc';
$post_time_order = 'DESC';
}
vor
if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) )
{
$post_order = (!empty($HTTP_POST_VARS['postorder'])) ? htmlspecialchars($HTTP_POST_VARS['postorder']) : htmlspecialchars($HTTP_GET_VARS['postorder']);
$post_time_order = ($post_order == "asc") ? "ASC" : "DESC";
}
eingesetzt und den alten else-Teil der zuletzt genannten Funktion gelöscht.
Das funktioniert wunderbar.

Vielen Dank für den Denkanstoss und den Tip mit dem ModifyProfileMod!

Verfasst: 24.10.2004 14:25
von raphael
Hm, irgendwie scheint das ganze doch nicht zu funktionieren.
Zuerst hat es geklappt, aber dann war alles wieder so sortiert, dass die neuen Beiträge oben waren. Egal, was man ausgewählt hat. In der Datenbank wird es auch so eingetragen, wie man es möchte.
Also scheint die viewtopic.php das irgendwie zu ignorieren.
Wo könnte da der Fehler liegen?

Verfasst: 25.10.2004 22:37
von raphael
Hmm, ich habe nochwas experimentiert und bin noch immer nicht auf die Lösung gekommen.
--> *bump* :oops:

edit:
Mittlerweile weiß ich, dass die Abfrage irgendwie ignoriert, was in der Datenbank steht und immer so handelt, als ob dort eine 1 eingetragen wäre.
Denn wenn ich in der Abfrage die 0 lasse, wird der else Befehl ausgeführt (egal, was in der Datenbank steht).
Wenn ich eine 1 anstatt der 0 nehme wird der if Befehl ausgeführt (auch wieder egal, was in der Datenbank steht).
Ich kann jedoch nicht erkennen, wo da mein Fehler liegen könnte.

Verfasst: 28.10.2004 13:52
von raphael
Hm, ich bringe das Thema nochmal nach oben.
Hat niemand eine Idee, woran es liegen könnte?

Verfasst: 31.10.2004 10:58
von raphael
Weiß da niemand etwas?
Wieso liest er eine 1 aus der Tabelle aus auch wenn dort eine 0 vermerkt ist?