Alphabetische Sortierung

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
#Anubis#
Mitglied
Beiträge: 26
Registriert: 16.01.2004 02:00
Wohnort: Berlin

Alphabetische Sortierung

Beitrag von #Anubis# »

gibt es eine Möglichkeit der Voreinstellung, dass in einem Subforum automatisch die Beiträge nicht nach Datum oder so, sondern generell alphabetisch sortiert sind ?

Thx 4 answer
Das Problem ist uns seit längerem bekannt und zur Verbesserung weitergeleitet worden -
es ist daher kein Bug, sondern nur eine Funktionsunschönheit.
Zitat der Fa. Siemens aus einem Antwort-Schreiben
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Nur indirekt.
Du könntest in der viewforum.php diese Stelle anpassen:

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'];
Wenn du die Zeile mit ORDER BY ersetzt durch z.B.

Code: Alles auswählen

ORDER BY t.topic_type DESC, t.topic_title ASC
dann sollte das eigentlich alphabetisch sortiert werden (sofern ich mich nicht im Namen der Tabellenspalte für den Thementitel geirrt habe :D)

Allerdings wird das dann in allen Foren so sortiert.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
#Anubis#
Mitglied
Beiträge: 26
Registriert: 16.01.2004 02:00
Wohnort: Berlin

Rückfrage

Beitrag von #Anubis# »

Geht das nicht nur für einen Teil separat ?

Zur Erläuterung:
Ich möchte, dass ein Teil meines Forums als Nachschlagewerk alphabetisch sortiert zur Verfügung steht. Der Rest soll so wie bisher bleiben.
Das Problem ist uns seit längerem bekannt und zur Verbesserung weitergeleitet worden -
es ist daher kein Bug, sondern nur eine Funktionsunschönheit.
Zitat der Fa. Siemens aus einem Antwort-Schreiben
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Ahoi,

man könnte vorher noch die Foren-ID abfragen und dann ggf. alphabetisch sortieren:

Code: Alles auswählen

global $forum_id;
if ($forum_id == 55)
{
$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_title ASC
   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'];
}
Habe auf dem Code von gn#36 aufgebaut und das Ganze nicht getestet. Rein theoretisch sollte es aber schon möglich sein, Deine Idee zu verwirklichen.

In der Zeile if {$forum_id == 55} musst Du halt 55 mit der ID des Forums ersetzen, in dem alphabetisch sortiert werden soll.

LG, IPB_Flüchtling
Benutzeravatar
#Anubis#
Mitglied
Beiträge: 26
Registriert: 16.01.2004 02:00
Wohnort: Berlin

Beitrag von #Anubis# »

Ihr seid super. thx.
Das Problem ist uns seit längerem bekannt und zur Verbesserung weitergeleitet worden -
es ist daher kein Bug, sondern nur eine Funktionsunschönheit.
Zitat der Fa. Siemens aus einem Antwort-Schreiben
Jugger75
Mitglied
Beiträge: 18
Registriert: 14.01.2006 01:14
Kontaktdaten:

Beitrag von Jugger75 »

Ist das auch möglich für eine Kategorie?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Du kannst in der IF Abfrage mehrere Foren abfragen:

Code: Alles auswählen

if(in_array($forum_id, array(55,56,57,58)))
dann die Nummern 55 bis 58 eben ersetzen durch die gewünschten IDs.

Prinzipiell ginge es zwar auch mit der Kategorie, aber die müsste man dann vor der eigentlichen SQL Abfrage jeweils für das Forum abfragen:

Code: Alles auswählen

$sql = "SELECT cat_id FROM " . FORUMS_TABLE . " WHERE forum_id = $forum_id";
if(!$category_result = $db->sql_query($sql))
{
message_die (GENERAL_ERROR, 'Could not obtain category', '' , __FILE__, __LINE__, $sql);
}
$category_row = $db->sql_fetchrow($category_result);
if($category_row['cat_id'] == 2)
...{Hier dann der Programmcode von oben nach der IF Abfrage}...
Ich hoffe dass sich die Variable $sql nicht mit einer anderen im viewforum.php überschneidet die vorher generiert und danach erst gebraucht wird.
Wichtig: Alle zu ändernden Dateien vorher sichern! Ich habe das nicht getestet und übernehme keine Garantie!
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Jugger75
Mitglied
Beiträge: 18
Registriert: 14.01.2006 01:14
Kontaktdaten:

Beitrag von Jugger75 »

Danke dir :D
So reicht mir das auch

Ich muss sagen das geht hier richtig schnell wenn man Hilfe braucht :o
Jugger75
Mitglied
Beiträge: 18
Registriert: 14.01.2006 01:14
Kontaktdaten:

Beitrag von Jugger75 »

Ich hab jetzt drin und es geht auch aber in den anderen Foren hat er alle Themen doppelt gemacht :(
Hab ihr eine Ahnung was das sein kann?

Hab den Code mal hochgeladen:
http://www.blackcinema.de/forum.doc
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Sollte eigentlich nicht. Poste mal den Quelltext an der Stelle wo du ihn eingebaut hast oder verlinke die Datei als Text.

So sollte das aussehen:

Code: Alles auswählen

if (in_array($forum_id, array(55,56,57,58)))
{
$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_title ASC
   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'];
}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“