Seite 1 von 2
Hilfe! nach dem Posting springt man zur falschen Stelle!
Verfasst: 08.11.2007 14:07
von shorty2k
Hallo allerseits!
in meinem Forum werden die Beiträge in den Threads andersherum angezeigt. also: die neusten sind immer ganz oben in den threads und der älteste ist ganz hinten. ist ja bei phpBB normalerweise andersherum, hab das so umgestellt.
Problem:
wenn jemand ein beitrag schreib und dannnach auf den knopf
Deine Nachricht wurde erfolgreich eingetragen.
[[[[Hier klicken]]]], um deine Nachricht anzuzeigen
klick, dann landet er auf der falschen seite des threads.
man landet auf der letzten seite. die letzte seite ist aber bei mir die falsche.
man müsste auf der 1. seite des threads landen, weil dort bei mir die neusten beiträge angezeigt werden.
wo kann man das umstellen auf welcher seite man landet?
weiß das jemand?
DANKE für eure hilfe!
gruß
shorty2k
Verfasst: 09.11.2007 08:26
von shorty2k
kann mir denn keiner helfen?
kann doch nicht so schwer sein (nur leider hab ich kaum ahnung), das muss einfach irgendwo im code versteckt sein auf welcher seitenzahl man nach dem posting landet.
jetzt ist es so:
man landet auf seite [n] > letzte seite letzte seite des threads
ich will das aber so:
man landet auf seite [1] > erste seite
wäre sehr dankbar wenn ein profi was dazu sagen könnte
Verfasst: 09.11.2007 10:48
von 4seven
Hallo shorty2k,
bin zwar kein Vollprofi, aber falls du keinen Mod eingebaut hast in der posting.php und beim testweisen umstellen auf die normale Ansicht (ältere Beiträge zuerst) das Post nach dem Absenden an der korrekten Stelle landet (letztes Post), dann kann es sein, das es im phphbb nicht vorgesehen ist.
lg
4seven
Verfasst: 10.11.2007 13:49
von Diego2k
Hallo,
ich habe genau das gleiche Problem bei mir. Ich habe über einen Codeschnipsel die Anzeige der Beträge getauscht, so dass die neusten Beiträge immer ganz oben stehen. Nach dem man nun einen neuen Beitrag geschrieben hat und eigentlich auf seinen Beitrag umgeleitet werden sollte, kommt man auf die hinterste / letzte Seite, wie vor der Umstellung auch korrekt.
Ich habe in der posting.php nach dem entsprechnenden Link gesucht, aber die sind mir leider ein wenig zu "verschlüsselt" ich weis nicht was man an denen ändern kann, so dass man auf die erste und nicht letzte Seite gelangt, weil mehr wird der Link doch nicht machen.
Wäre klasse wenn ein Kundiger sagen könnte, was man da ändern muss.
Achso, es gab auch einmal einen Mod für genau diese angelegenheit, aber der ist nicht mehr up to date, sodas man Schwierigkeiten hat der installationsanleitung zu folgen.
Vielleicht hat auch da einer eine Idee zu.
gruß Diego2k
Verfasst: 10.11.2007 15:19
von 4seven
Diego2k hat geschrieben:Ich habe über einen Codeschnipsel die Anzeige der Beträge getauscht, so dass die neusten Beiträge immer ganz oben stehen.
Hallo Diego2k,
kannst Du den Codeschnipsel vielleicht posten?
An die Codeprofis,
kann mal einer den Jungs verraten, wo die entsprechende Weiterleitung auf das last_post stattfindet?
lg
4seven
Verfasst: 10.11.2007 18:28
von Diego2k
Das war folgender Beitrag aus einem anderen Thema:
suche in der viewtopic.php
Code:
$post_order = 'asc';
$post_time_order = 'ASC';
Ersetze durch
Code:
$post_order = 'desc';
$post_time_order = 'DESC';
Vielleicht hilft das ja weiter.
Verfasst: 11.11.2007 04:06
von 4seven
Hallo Diego2k,
ändere mal testweise (ca. Zeile 75)
Code: Alles auswählen
$sql = "SELECT p.post_id
FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id
AND p.topic_id = $topic_id
AND p.post_time >= u.user_lastvisit
ORDER BY p.post_time ASC
LIMIT 1";
in
Code: Alles auswählen
$sql = "SELECT p.post_id
FROM " . POSTS_TABLE . " p, " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id
AND p.topic_id = $topic_id
AND p.post_time >= u.user_lastvisit
ORDER BY p.post_time DESC
LIMIT 1";
und nochmal testweise (ca. Zeile 139)
Code: Alles auswählen
// This rather complex gaggle of code handles querying for topics but
// also allows for direct linking to a post (and the calculation of which
// page the post is on and the correct display of viewtopic)
$join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";
$join_sql = (!$post_id) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id";
$count_sql = (!$post_id) ? '' : ", COUNT(p2.post_id) AS prev_posts";
$order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id ASC";
in
Code: Alles auswählen
// This rather complex gaggle of code handles querying for topics but
// also allows for direct linking to a post (and the calculation of which
// page the post is on and the correct display of viewtopic)
$join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";
$join_sql = (!$post_id) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id";
$count_sql = (!$post_id) ? '' : ", COUNT(p2.post_id) AS prev_posts";
$order_sql = (!$post_id) ? '' : "GROUP BY p.post_id, t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments ORDER BY p.post_id DESC";
Ändere wechselweise und dann beides zusammen..
lg
4seven
Verfasst: 11.11.2007 18:10
von Diego2k
Ok, danke für die Ideen und den Code. Hat nur leider nicht geklappt

Aber so in der Art müsste das Problem zu lösen sein.
Falls Dir noch etwas einfällt, immer her damit
gruß
Diego2k
Verfasst: 11.11.2007 22:37
von 4seven
Hallo Diego2k,
bau mal das Snippet komplett zurück und teste mal den Mod hier
(Originaldatei vorher sichern):
Code: Alles auswählen
########################################################
## Mod Title: posts_sort_newest_first
## Mod Version: 1.0
## Author: Tomas Rejdal <t-o-m@seznam.cz>
## http://www.metroweb.cz
##
##
## Installation Level: easy
## Installation Time: 2 Minutes
## Files To Edit: viewtopic.php
## Include File:
##############################################################
## This MOD is released under the GPL License.
## Intellectual Property is retained by the MOD Author(s) listed above
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##############################################################
## Authors Notes: compatible for vs. 2.0.4 - 2.0.13
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#--- [ OPEN ] --------
#
viewtopic.php
#
#-- [ FIND ]----
#
# (line 195)
if ( !empty($post_id) )
{
$start = floor(($forum_topic_data['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];
}
#
#---- [ REPLACE WITH ]-----
#
//
// Decide how to order the post display
//
if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) )
{
$post_order = (!empty($HTTP_POST_VARS['postorder'])) ? $HTTP_POST_VARS['postorder'] : $HTTP_GET_VARS['postorder'];
$post_time_order = ($post_order == "desc") ? "DESC" : "ASC";
}
else
{
$post_order = ( $userdata['user_post_sort'] == TRUE ) ? 'asc' : 'desc';
$post_time_order = ( $userdata['user_post_sort'] == TRUE ) ? 'ASC' : 'DESC';
}
if(!empty($post_id) )
{
$posts_before = ( $post_order == 'desc' )? (($forum_topic_data['topic_replies'] + 1) - $forum_topic_data['prev_posts']) : ($forum_topic_data['prev_posts'] - 1);
$start = floor( $posts_before / $board_config['posts_per_page']) * $board_config['posts_per_page'];
}
#
#-- [ FIND ]----
#
# (line 373)
if ( $post_time_order == 'ASC' )
#
#---- [ REPLACE WITH ]-----
#
if ( $post_time_order == 'DESC' )
#
#--- [ DELETE ] --------
#
# (line 358)
//
// Decide how to order the post display
//
if ( !empty($HTTP_POST_VARS['postorder']) || !empty($HTTP_GET_VARS['postorder']) )
{
$post_order = (!empty($HTTP_POST_VARS['postorder'])) ? $HTTP_POST_VARS['postorder'] : $HTTP_GET_VARS['postorder'];
$post_time_order = ($post_order == "asc") ? "ASC" : "DESC";
}
else
{
$post_order = 'asc';
$post_time_order = 'ASC';
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
lg
4seven
Verfasst: 14.11.2007 00:01
von Diego2k
Genau diesen Mod hatte ich auch schon gefunden. Aber ich scheine zu blöd zu sein diesen anzuwenden, da es den Code den man finden soll nicht gibt.
Oben steht ja auch, dass es bis zur Version 2.0.13 geht. Heute haben wir ja 2.0.22
Oder hab ich da einfach etwas falsch bei der Anleitung gelesen?
Wäre super, wenn es einer von euch testen würde, ob es den angegebenen Code in der aktuellen version gibt, damit ich weis ob ich doof bin

.
gruß Diego2k