Seite 1 von 2

Themen Sortierung

Verfasst: 23.07.2004 00:01
von Jaky
Hab da ein kleines Problem.

Ich möchte innerhalb eine Kategorie die Themen anders sortieren.

Statt wie üblich nach der Laufenden Nummer einfach Alphabetisch von a bis z.

Siehe hier: http://kritiken.info/viewforum.php?f=362

Hat da wer ne Ideeeee??

Verfasst: 23.07.2004 00:51
von Blutgerinsel
Hey,

ist doch net schwer?

Suche nach

Code: Alles auswählen

//viewforum.php//
if ( !empty($forum_id) )
{
	$sql = "SELECT *
		FROM " . FORUMS_TABLE . "
		WHERE forum_id = $forum_id";
ersetze mit:

Code: Alles auswählen

//viewforum.php//
if ( !empty($forum_id) )
{
	$sql = "SELECT *
		    FROM " . FORUMS_TABLE . "
		      WHERE forum_id = '$forum_id'
                        Order By forum_name
         ";
.....Hmm jetzt wo ich die ganzen Dokumaterialien hab (dank euch) kann ich mein Board mal umstricken.....
und ich fang gleich mit sämtlichen Selectlisten in der Adminconsole an geht mir auf den Keks......

Verfasst: 23.07.2004 00:55
von D@ve
Keine professionelle Lösung (also keine Steuerung über das ACP), aber es sollte gehen:

Finde in der viewforum.php

Code: Alles auswählen

        $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'];
Ersetze durch:

Code: Alles auswählen

$x = 7;
if ($forum_id == $x)
{
    $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, topic_title
            LIMIT $start, ".$board_config['topics_per_page'];
} else
  {
        $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'];
  }
Wobei Du bei

Code: Alles auswählen

$x = 7;
die 7 durch die Foren-ID ersetzen solltest, in dem Du die Topics alphabetisch ordnen willst...

Gruß, Dave

Verfasst: 23.07.2004 01:11
von Jaky
Kann ich das auch mit mehreren Foren machen?

Steht jetzt auf $x = 362;

z.B. $x = 362;248; usw.??

Oder gibt es da eine andere Lösung?

Verfasst: 23.07.2004 01:12
von Blutgerinsel
D@ve hat geschrieben:Keine professionelle Lösung (also keine Steuerung über das ACP), aber es sollte gehen:
Ich kenne das PHPBB vom Code so gut wie gar nicht aber was du hier nennst kann nicht sein.....

Warum? Ganz einfach von der Logik kann es sich hierbei nur um eine Tabelle handeln.....Sind genau 3 Informationen...

Und alles was der threadstarter sortieren möchte sind die Foren und das muss ersteres sein von mir.....

P.S.: Hab die File nur kurz überflogen und trotzdem glaube ich net zu lügen :wink:

Verfasst: 23.07.2004 01:16
von Blutgerinsel
Kommando zurück das sind keine Foren sondern Topics *omg*
voll verguckt -> Hände weg vom Alkohol :lol:

Verfasst: 23.07.2004 01:55
von Blutgerinsel
Jaky hat geschrieben:Kann ich das auch mit mehreren Foren machen?

Steht jetzt auf $x = 362;

z.B. $x = 362;248; usw.??

Oder gibt es da eine andere Lösung?
ok jetzt kann ich mich wieder konzentrieren

Du kannst in diesem Fall nur wirklich mit einem Forum machen....

du kannst aber das davor setzen:

Code: Alles auswählen

//init
$order=array(0 => 7, 1 => 9, 2 => 13);
$orderbytitle=false;

foreach ($order as $temp) {
  If ($temp == $forum_id) $orderbytitle=true;
}
Beim bisherigen von @ D@ve änderst du das If

Code: Alles auswählen

if ($forum_id == $x)
so ab:

Code: Alles auswählen

If ($orderbytitle)
7,9,13 die sind die Foren die die Topics innerhalb nach Topictitel sortieren alle anderen nach lastpost.....

Das Array kannst du vergrößern nach Anzahl der Foren die dementsprechend sortiert werden sollen.....

Sollten es alle sein kannst das weglassen und einfach nur das order by so umstricken wie bereits angegeben....

Sry bin müde und leicht angetrunken da trübt die Wahrnehmung :lol:

Verfasst: 23.07.2004 12:57
von D@ve
Blutgerinsel hat geschrieben:
D@ve hat geschrieben:Keine professionelle Lösung (also keine Steuerung über das ACP), aber es sollte gehen:
Ich kenne das PHPBB vom Code so gut wie gar nicht aber was du hier nennst kann nicht sein.....

Und alles was der threadstarter sortieren möchte sind die Foren und das muss ersteres sein von mir.....
Nein, er wollte "Themen" sortieren, und nichts anderes hab ich gepostet.


Kann ich das auch mit mehreren Foren machen?

Steht jetzt auf $x = 362;

z.B. $x = 362;248; usw.??

Oder gibt es da eine andere Lösung?
Ja ist kein Problem, dann ist es aber ohne die $x-Variable leichter:

Code: Alles auswählen

if ($forum_id == 7 || $forum_id == 8 || $forum_id == 25)
Das kannst Du beliebig erweitern. || steht für ein logisches ODER. Du könntest es natürlich auch über ein Array machen, wie Blutgerinsel das vorgeschlagen hat, aber so ist es einfacher nachzuvollziehen... ;-)

Gruß, Dave

Verfasst: 23.07.2004 23:07
von Jaky
@all

Danke für die wertfollen Tips.

@Da@ve
Dein vorschlag ist die einfachste und wirkungsvollste Lösung.

habe von 370 Foren erst einmal 3 eingebunden um die Rechenzeit mal im :wink: zu behalten.

Funst super!!

Code: Alles auswählen

if ($forum_id == 361 || $forum_id == 362 || $forum_id == 363) 
{ 
    $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, topic_title 
            LIMIT $start, ".$board_config['topics_per_page']; 
} else 
  { 
        $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']; 
  }

Verfasst: 24.07.2004 00:23
von D@ve
Wiebitte??? Du hast... 370 FOREN???