Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[NG] Fehler bei Themensortierung entdeckt
#1
Heyho,
ich habe einen Bug bei der Themensortierung gefunden, und hoffe mit dieser Meldung weiterhelfen zu können...

Man kann ja durch Klick auf die Spalte "Bewertung" (auf/ab) die Threads eines Forums so sortieren lassen, dass zB diejenigen mit der höchsten Bewertung ganz oben stehen und die mit niedrigerer Bewertung weiter unten...

Allerdings wird hierbei scheinbar nicht die Anzahl der Stimmen berücksichtigt...Moment, ich "beweise" das mal Smile

So sieht es aus, wenn ich ein bewertungsreiches Forum bei mir so anzeigen lasse, dass die "höchste Bewertung" zuerst kommt
   

Offenbar stimmt das aber nicht; die Modifikation "Erweiterte Statistiken" die ich installiert habe, macht es indes völlig korrekt:
   

Es scheint sich also um ein kleines Fehlerchen bei dieser Sortierungsart zu handeln und ich wäre sehr sehr dankbar, wenn er irgendwann behoben werden würde...
Bis bald!
http://www.jpstein.de (Portfolio)
#2
Hi
eigentlich ist es ja kein Fehler, da einfach nur nach der höchsten Bewertung sortiert wird, wobei ich finde, du hast Recht, es sieht schöner aus, wenn (bei gleicher Bewertung) die Themen mit mehr Bewertungen weiter oben sind.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
#3
Hallo,
danke für die schnelle Reaktion!

Freue mich, dass du zustimmst, aber meiner Logik nach ist es tatsächlich ein Fehler: Bei vielen sehr gut bewerteten Themen sind nun mal die besser, die MEHR gute Stimmen bekommen haben. Also sollten sie auch weiter oben stehen...

(Genauso sieht's aus, wenn ein Thema 3 mal 5 bekam (Durchschnitt 5.0) und ein anderes 2 mal 5 und 1 mal 4 (Durchschnitt 4,67) -> das sollte auch berücksichtigt werden, bitte)
Wäre mir eine große Freude, wenn das geändert würde...
http://www.jpstein.de (Portfolio)
#4
Das wird meines Wissens schon berücksichtigt. Sortiert wird nach dem Durchschnitt! Prüfen kannst du das indem du dir den Alternativtext der "Bewertungs-Sterne" anschaust (beim IE sollte der erscheinen wenn du die Maus darüber positionierst, beim FF z.B. kannst du ihn mit rechter Maustaste -> Eigenschaften sehen). Da sollte stehen wie viele Wahlen und wieviel Punkte im Durchschnitt.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
#5
Vielen Dank, das mit dem Alternativtext stimmt wirklich! Jetzt bin ich erstmal beruhigt, dass zumindest der Durchschnitt beachtet wird...


Bleibt meine Bitte nach "Mehr Wahlen bei gleichem Durchschnitt = höherer Rang" :-)
http://www.jpstein.de (Portfolio)
#6
Okay, auf die Gefahr hin, dass ich mir hiermit meinen Ruf als "Quengel-Ishiro" endgültig verdiene, gibt's vielleicht von höherer (zB michaelischer) Seite ein "Statement" zur Frage nach sinnvollerer Rating-Themensortierung?

Dürfte doch nicht allzu schwer sein, den Durchschnitt da noch mit einfließen zu lassen, oder doch? Undecided
http://www.jpstein.de (Portfolio)
#7
Ich habe mit einem der Entwickler gesprochen und in der Basisfunktion geht es nur darum mach dem Durchschnitt zu sortieren. Es handelt sich daher auch nicht um einen Bug.

Ich biete dir aber gleichzeitig eine Lösung an, so dass die Beiträge deinen Wünschen entsprechend sortiert werden.

Öffne die Datei forumdisplay.php und suche nach:
PHP-Code:
    case "rating":
        
$sortfield "averagerating";
        break; 
Ersetzen durch:
PHP-Code:
    case "rating":
        
$sortfield "averagerating";
        
$sortfield2 ", t.totalratings DESC";
        break; 
Suchen nach:
PHP-Code:
// Start Getting Threads
$query $db->query("
    SELECT t.*, 
$ratingadd t.username AS threadusername, u.username
    FROM "
.TABLE_PREFIX."threads t
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
    WHERE t.fid='
$fid$visibleonly $datecutsql
    ORDER BY t.sticky DESC, 
$sortfield $sortordernow
    LIMIT 
$start$perpage
"
); 
Ersetzen durch:
PHP-Code:
// Start Getting Threads
$query $db->query("
    SELECT t.*, 
$ratingadd t.username AS threadusername, u.username
    FROM "
.TABLE_PREFIX."threads t
    LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
    WHERE t.fid='
$fid$visibleonly $datecutsql
    ORDER BY t.sticky DESC, 
$sortfield $sortordernow $sortfield2
    LIMIT 
$start$perpage
"
); 

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#8
Ich bin dir sehr dankbar. Das war großartige Hilfe, es klappt. Smile
http://www.jpstein.de (Portfolio)