threads sind sortiert aber noch fragen
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.
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.
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17
threads sind sortiert aber noch fragen
tachchen..
also ich hab mein komplettes forum mit allen topics von a-z sortiert..
etz hab ich dazu aber noch 2 fragen..
die 1 wäre: da ja etz alles von a-z sortiert is, sind die beiträge die als wichtig oder als ankündigung geschrieben wurden bei dem entsprechenden buchstaben..
wie also bekomme ich das so hin, das alles von a-z sortiert bleibt, aber trozdem die threads die als wichtig bzw. als ankündigung gepost wurden an erster stelle stehen?
die 2te frage wäre: ist fasst das gleiche wie bei der 1ten frage, allerdings bleibt bei einem neuen beitrag der geschrieben wurde der thread auch wieder bei dem entsprechendem buchstaben, anstatt an erste stelle zu wandern.
ich hoffe ihr versteht was ich meine und könnt mir helfen..
greetz dave
EDIT:
so in etwa hab ich mir das vorgestellt, damit das so aussieht
http://img262.imageshack.us/img262/959/ ... e01ov9.jpg
Große Bilder bitte verlinken - KB:Knigge //gn#36
also ich hab mein komplettes forum mit allen topics von a-z sortiert..
etz hab ich dazu aber noch 2 fragen..
die 1 wäre: da ja etz alles von a-z sortiert is, sind die beiträge die als wichtig oder als ankündigung geschrieben wurden bei dem entsprechenden buchstaben..
wie also bekomme ich das so hin, das alles von a-z sortiert bleibt, aber trozdem die threads die als wichtig bzw. als ankündigung gepost wurden an erster stelle stehen?
die 2te frage wäre: ist fasst das gleiche wie bei der 1ten frage, allerdings bleibt bei einem neuen beitrag der geschrieben wurde der thread auch wieder bei dem entsprechendem buchstaben, anstatt an erste stelle zu wandern.
ich hoffe ihr versteht was ich meine und könnt mir helfen..
greetz dave
EDIT:
so in etwa hab ich mir das vorgestellt, damit das so aussieht
http://img262.imageshack.us/img262/959/ ... e01ov9.jpg
Große Bilder bitte verlinken - KB:Knigge //gn#36
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Du hast zu große Bilder in deinen Beitrag eingebunden, was das Thema unübersichtlich macht. Es wäre besser die Bilder stattdessen lediglich zu verlinken - siehe auch Grösse von Avataren und Bildern.
Bitte lies Dir den phpBB.de-Knigge und den Hinweis zur Fragestellung und Rechtschreibung durch und beachte diese zukünftig.
Zum Thema:
Es hängt ganz davon ab wie die Sortierung nach Buchstaben realisiert ist ob die Ankündigungen und Wichtigen Themen einsortiert werden oder nicht. Wenn eine Einsortierung nicht erwünscht ist, dann ist die Änderung sogar deutlich einfacher als wenn es notwendig ist die wichtigen Themen mit einzusortieren.
Um genauere Aussagen zu treffen wäre das Verlinken der viewforum.php hilfreich (KB:datei).
Bei deiner zweiten Frage bin ich mir nicht sicher wie du das genau meinst. Entweder die Themen werden nach Name sortiert oder nach Datum, nach beidem gleichzeitig ist eher schwierig, irgendetwas muss Priorität haben.
Bitte lies Dir den phpBB.de-Knigge und den Hinweis zur Fragestellung und Rechtschreibung durch und beachte diese zukünftig.
Zum Thema:
Es hängt ganz davon ab wie die Sortierung nach Buchstaben realisiert ist ob die Ankündigungen und Wichtigen Themen einsortiert werden oder nicht. Wenn eine Einsortierung nicht erwünscht ist, dann ist die Änderung sogar deutlich einfacher als wenn es notwendig ist die wichtigen Themen mit einzusortieren.
Um genauere Aussagen zu treffen wäre das Verlinken der viewforum.php hilfreich (KB:datei).
Bei deiner zweiten Frage bin ich mir nicht sicher wie du das genau meinst. Entweder die Themen werden nach Name sortiert oder nach Datum, nach beidem gleichzeitig ist eher schwierig, irgendetwas muss Priorität haben.
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17
ok dann mach ich das anders..
kann ich das sortieren auf bestimmte topics begrenzen, also das es nicht aufs ganze forum sortiert, sondern nur ein von mir ausgesuchtes topic sortiert?
so, hier die viewforum
Download
kann ich das sortieren auf bestimmte topics begrenzen, also das es nicht aufs ganze forum sortiert, sondern nur ein von mir ausgesuchtes topic sortiert?
so, hier die viewforum
Download
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Generell kannst du das sicherlich auf bestimmte Themen begrenzen, je nachdem wie speziell das ist wird das mehr oder weniger komplex.
Du musst natürlich immer ein Kriterium haben nach dem du das in eine der beiden Gruppen einordnest, also wenn du z.b. sagen würdest "Alle Ankündigungen und Wichtigen Themen nach Datum, der Rest nach Alphabet" dann wäre das kein Problem. Kompliziert würde es bei "Alle Themen mit A,C,X am Anfang nach Alphabet, der Rest nach Datum wobei die Datumsthemen vor den alphabetischen stehen" oder "Alle Themen neuer als von vorgestern/letztem Login nach oben, der Rest alphabetisch".
Derzeit ist deine Datei so eingerichtet, dass du in allen Foren die Ankündigungen oben hast, den Rest alphabetisch sortierst.
Was genau möchtest du jetzt haben??
Die Wichtigen Themen könntest du schon mal nach oben haben wenn du
ersetzt durch
Du musst natürlich immer ein Kriterium haben nach dem du das in eine der beiden Gruppen einordnest, also wenn du z.b. sagen würdest "Alle Ankündigungen und Wichtigen Themen nach Datum, der Rest nach Alphabet" dann wäre das kein Problem. Kompliziert würde es bei "Alle Themen mit A,C,X am Anfang nach Alphabet, der Rest nach Datum wobei die Datumsthemen vor den alphabetischen stehen" oder "Alle Themen neuer als von vorgestern/letztem Login nach oben, der Rest alphabetisch".
Derzeit ist deine Datei so eingerichtet, dass du in allen Foren die Ankündigungen oben hast, den Rest alphabetisch sortierst.
Was genau möchtest du jetzt haben??
Die Wichtigen Themen könntest du schon mal nach oben haben wenn du
Code: Alles auswählen
$order_by = ( $forum_id == 1 ) ? 't.topic_title ASC, t.topic_last_post_id ASC' : 't.topic_title, t.topic_last_post_id DESC';
Code: Alles auswählen
$order_by = 't.topic_type DESC, t.topic_title ASC, t.topic_last_post_id DESC';
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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Wie willst du das nach Themen unterscheiden?
Nach Forum unterscheiden wäre kein Problem, nach Thementyp auch nicht, aber wenn du nach Thema unterscheiden willst brauchst du ein Kriterium anhand dessen du das machst.
Meine Vermutung wäre dass du möchtest dass ein Teil der Foren alphabetisch sortiert, der Rest nach Datum sortiert wird, oder?
ersetzen durch
das sollte dafür sorgen dass die Themen in den Foren 1,2,3 (ID, lässt sich z.b. über die URL herausbekommen) alphabetisch und die übrigen nach Datum sortiert werden. 1,2,3 kannst du durch beliebige ID's ersetzen die du mit einem Komma trennen musst.
Nach Forum unterscheiden wäre kein Problem, nach Thementyp auch nicht, aber wenn du nach Thema unterscheiden willst brauchst du ein Kriterium anhand dessen du das machst.
Meine Vermutung wäre dass du möchtest dass ein Teil der Foren alphabetisch sortiert, der Rest nach Datum sortiert wird, oder?
Code: Alles auswählen
$order_by = 't.topic_type DESC, t.topic_title ASC, t.topic_last_post_id DESC';
Code: Alles auswählen
if(in_array($forum_id,array(1, 2, 3)))
{
$order_by = 't.topic_type DESC, t.topic_title ASC, t.topic_last_post_id DESC';
}
else
{
$order_by = 't.topic_type DESC, t.topic_last_post_id DESC, t.topic_title ASC';
}
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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Bitte nicht Bumpen, neue Informationen kannst du auch per EDIT hinzufügen...
Das ist schon erheblich komplizierter. Die Seitenzahlen werden - unabhängig wo sie eingesetzt werden - von einer zentralen Stelle generiert. Diese Funktion müsste man erweitern, dass sie auch Buchstaben liefern kann. Danach müsste man außerdem die viewforum so anpassen, dass sie bei ausgewähltem Buchstaben auch nur die Themen mit diesem Buchstaben anzeigt (ich nehme an, dass es das ist was du möchtest, oder?).
Probieren wir's:
Wichtig: Alle bearbeiteten Dateien und die Datenbank vorher sichern!
Die Funktion generate_pagination befindet sich in der functions.php
suche nach
und ersetze das durch
Als nächstes das hier
ersetzen durch
Das ganze kommt insgesamt 4 mal vor und muss auch an allen 4 Stellen ersetzt werden.
Falls du außerdem möchtest dass grundsätzlich das komplette Alphabet angezeigt wird und nicht nur die Buchstaben in der Umgebung der aktuellen Seite dann musst du zusätzlich in der gleichen Funktion noch folgende Änderung machen:
suche
ersetze durch
Das waren die Änderungen an der functions.php
Hinzu kommen jetzt noch die Anpassungen an der viewforum.php:
Suche hier die Zeilen
ersetze sie durch das hier:
Zusätzlich muss nun noch die SQL Abfrage angepasst werden die die Themen aus der Datenbank holt:
Ersetze
durch
Das ist schon erheblich komplizierter. Die Seitenzahlen werden - unabhängig wo sie eingesetzt werden - von einer zentralen Stelle generiert. Diese Funktion müsste man erweitern, dass sie auch Buchstaben liefern kann. Danach müsste man außerdem die viewforum so anpassen, dass sie bei ausgewähltem Buchstaben auch nur die Themen mit diesem Buchstaben anzeigt (ich nehme an, dass es das ist was du möchtest, oder?).
Probieren wir's:
Wichtig: Alle bearbeiteten Dateien und die Datenbank vorher sichern!
Die Funktion generate_pagination befindet sich in der functions.php
suche nach
Code: Alles auswählen
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
Code: Alles auswählen
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE, $use_letters = FALSE)
Code: Alles auswählen
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
Code: Alles auswählen
if($use_letters)
{
$page_string .= ( $i == $on_page ) ? '<b>' . strtoupper(base_convert(10, 36,$i+9)) . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . strtoupper(base_convert(10, 36,$i+9)) . '</a>';
}
else
{
$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . append_sid($base_url . "&start=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a>';
}
Falls du außerdem möchtest dass grundsätzlich das komplette Alphabet angezeigt wird und nicht nur die Buchstaben in der Umgebung der aktuellen Seite dann musst du zusätzlich in der gleichen Funktion noch folgende Änderung machen:
suche
Code: Alles auswählen
if ( $total_pages > 10 )
Code: Alles auswählen
if ( $total_pages > 10 && !$use_letters)
Hinzu kommen jetzt noch die Anpassungen an der viewforum.php:
Suche hier die Zeilen
Code: Alles auswählen
$template->assign_vars(array(
'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $topics_count / $board_config['topics_per_page'] )),
'L_GOTO_PAGE' => $lang['Goto_page'])
);
Code: Alles auswählen
if(in_array($forum_id, array(1, 2, 3)))
{
$template->assign_vars(array(
'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", 26, 1, $start, true, true),
'PAGE_NUMBER' => sprintf($lang['Page_of'], $start, 26),
'L_GOTO_PAGE' => $lang['Goto_page'])
);
}
else
{
$template->assign_vars(array(
'PAGINATION' => generate_pagination("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&topicdays=$topic_days", $topics_count, $board_config['topics_per_page'], $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $topics_count / $board_config['topics_per_page'] )),
'L_GOTO_PAGE' => $lang['Goto_page'])
);
}
Ersetze
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 $order_by
LIMIT $start, ".$board_config['topics_per_page'];
Code: Alles auswählen
if(in_array($forum_id,array(1, 2, 3)))
{
if($start)
{
$where_add = "AND ( t.topic_title LIKE '".strtoupper(base_convert(10,36, $start + 9)) . "%' OR t.topic_title LIKE '". strtolower(base_convert(10, 36, $start + 9)) . "%') ";
}
else
{
$where_add = '';
}
$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 . "
$where_add
$limit_topics_time
ORDER BY $order_by
";
}
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 $order_by
LIMIT $start, ".$board_config['topics_per_page'];
}
Zuletzt geändert von gn#36 am 08.08.2007 15:31, insgesamt 1-mal geändert.
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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
-
- Mitglied
- Beiträge: 68
- Registriert: 26.07.2007 03:17