Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
thread posts in umgekerte reihenfolge anzeigen ..??
#1
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
milemann

im abstraktem ereignet sich heute das wesentlichere und das belanglosere im wirklichen - r.musil
#2
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".

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.
#3
jop das stimmt michael Wink
Wut ist das Geheimnis, das Geheimnis meiner Kraft, und wenn Ihr anfangt mich zu mögen, weiß ich, ich hab was falsch gemacht!
Böhse Onkelz - Das Geheimnis meiner Kraft :]
#4
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"??
milemann

im abstraktem ereignet sich heute das wesentlichere und das belanglosere im wirklichen - r.musil
#5
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
Wut ist das Geheimnis, das Geheimnis meiner Kraft, und wenn Ihr anfangt mich zu mögen, weiß ich, ich hab was falsch gemacht!
Böhse Onkelz - Das Geheimnis meiner Kraft :]
#6
Samu schrieb:.. versuche es halt mit DESC..
yo es klappt.
Danke.
milemann

im abstraktem ereignet sich heute das wesentlichere und das belanglosere im wirklichen - r.musil
#7
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??
http://www.rhein-main-smarties.de
Ausführliche Sig? Klick aufs Bild!
#8
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.

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.
#9
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
#10
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