MyBB.de Forum

Normale Version: thread posts in umgekerte reihenfolge anzeigen ..??
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hi!
gibt es ein (einfaches) tweak wo mann die posts im thread anders sortieren kann -  nämlichder der jungster zuerst.

ich dachte erstmal lieber fragen bevor selbst in dem quelcode fummeln ... bin SQLmässig nicht so der held Big Grin

und grüsse noch
Eine derartige Erweiterung ist mir nicht bekannt. Eigentlich müsstest du doch nur in der showthread.php bei der SQL-Abfrage "ORDER DESC" ändern in "ORDER ASC".
jop das stimmt michael Wink
na ja ...
soviell wuste ich auch blos bei welcher db abfrage .
es sind 21 in der showthread.php datei.
in der auf dem ersten bick entscheidender abfrage sieht es so aus:
zeile 416
PHP-Code:
        // Lets get the actual posts
        
$pfirst true;
        
$query $db->query("SELECT u.*, u.username AS userusername, p.*, f.*, i.path as iconpath, i.name as iconname, eu.username AS editusername FROM ".TABLE_PREFIX."posts p LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=p.uid) LEFT JOIN ".TABLE_PREFIX."userfields f ON (f.ufid=u.uid) LEFT JOIN ".TABLE_PREFIX."icons i ON (i.iid=p.icon) LEFT JOIN ".TABLE_PREFIX."users eu ON (eu.uid=p.edituid) WHERE $pids ORDER BY p.dateline");
        while(
$post $db->fetch_array($query))
        {
            if(
$pfirst && $thread['visible'] == 0)
            {
                
$post['visible'] = 0;
            }
            
$posts .= makepostbit($post);
            
$post "";
            
$pfirst false;
        } 
was bedeutet "p.dateline"??
p.dateline ist in diesem fall die abfrage wonach er ordnen soll (jeder post hinterlässt einen timestamp)
also wenn meine mysql / php erfahrungen nich lügen hängste einfach nen ASC an den schluss
wenn es nichts ändert versuche es halt mit DESC
Toungue
Samu schrieb:.. versuche es halt mit DESC..
yo es klappt.
Danke.
Dazu hätte ich mal ne Frage. Wenn ich mich jetzt nicht täusche wird die Reihenfolge auf die Art generell geändert, für alle User.
Gibt es auch ne Möglichkeit das so zu lösen das der User für sich selber (z.B. im Benutzer CP) einstellen kann in welcher Reihenfolge die Beiträge erscheinen??
Nein, diese Möglichkeit gibt es nicht, die Standardsortierung wird vorgegeben. Der Benutzer kann aber die Sortierung ändert, indem er auf die entsprechende Tabellenspaltenüberschrift klickt.
Hab das jetzt mal bei Version 1.2.3 ausprobiert.
Klappt aber nicht richtig. Hier habe ich das DESC angehängt:
PHP-Code:
    // Get the actual posts from the database here.
        
$pfirst true;
        
$posts '';
        
$query $db->query("
            SELECT u.*, u.username AS userusername, p.*, f.*, eu.username AS editusername
            FROM "
.TABLE_PREFIX."posts p
            LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
            LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
            LEFT JOIN "
.TABLE_PREFIX."users eu ON (eu.uid=p.edituid)
            WHERE 
$pids
            ORDER BY p.dateline DESC
        "
); 

Jetzt werden die Beiträge auch absteigend nach dem Datum sortiert, leider aber nur innerhalb eines Seite.
Das heißt: Bei mir werden pro Seite 10 Beiträge angezeigt, geht das Thema jetzt über mehrere Seiten, sind die Beoiträge auf Seite 2 neuer als die auf Seite 1.
Beispiel:
Beitrag 1 ist vom 6.5., Beitrag 2 vom 4.5 usw... kommt man jetzt auf Seite 2 ist der oben stehende Beitrag vom 8.5. der nächste vom 7.5. usw.

Es wird also nur innerhalb einer Seite die Reihenfolge umgekehrt.
Kann mir jemand helfen?
Gruß
digi
digimaster schrieb:Hab das jetzt mal bei Version 1.2.3 ausprobiert.
Klappt aber nicht richtig. Hier habe ich das DESC angehängt:

Habe es mit der 1.27 probiert, es geht. Ich schätz mit der 1.23 dann auch...
Du musst zusätzlich ein paar Zeilen vorher ebenfalls ein DESC in die Abfrage einfügen (in der 1.27 ist das Zeile 680):

// Lets get the pids of the posts on this page.
$pids = "";
$comma = '';
$query = $db->simple_select(TABLE_PREFIX."posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline DESC', 'limit_start' => $start, 'limit' => $perpage));

Da wie zu sehen das DESC einfügen, dann klappts auch über mehrere Seiten.

Wolfgang
Seiten: 1 2