| 
		
	
	
	
		
	Beiträge: 3Themen: 2
 Registriert seit: 08.10.2009
 
	
		
		
		27.10.2009, 11:07 
(Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2009, 01:34 von linwinman.)
		
	 
		Hallo Leute,
 ich habe schon bei manchen foren gesehen das der benutzer selbst entscheiden kann wie die beiträge in einem thema angezeigt werden..
 
 Beispiel:
 
 Post vom 26.10.2009 als erstes
 Post vom 25.10.2009 als zweites
 usw.. somit wäre der eröffnungspost auf der letzten seite der letzte post..
 
 hab dazu aber leider nichts gefunden.. weder bei google.. hier bei der suche.. noch im admin-cp oder im benutzer-cp.. gibt es dafür ein plugin oder soetwas? (Möglich das ich einfach die falschen Suchbegriffe verwende.. [Beiträge in absteigender Reihenfolge usw])
 
 oder funktioniert das bei myBB nicht?
 
 Vielen Dank für die antworten
 
	
	
	
		
	Beiträge: 25.820Themen: 271
 Registriert seit: 20.09.2005
 
	
	
		Das kann man nicht so leicht umsetzen.
	 
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
 
	
	
	
		
	Beiträge: 3Themen: 2
 Registriert seit: 08.10.2009
 
	
	
	
		
	Beiträge: 72Themen: 16
 Registriert seit: 08.10.2009
 
	
	
		Hallo,
 das fragen meine Mitglieder auch öfters. Gibts da vielleicht doch eine Möglichkeit?
 
 hafgan
 
	
	
	
		
	Beiträge: 1.939Themen: 18
 Registriert seit: 30.06.2007
 MyBB-Version: 1.6.6
 
	
		
		
		28.10.2009, 01:24 
(Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2009, 01:36 von linwinman.)
		
	 
		Für die gewünschte Sortier-Auswahl im Benutzer-CP sind folgende Änderungen notwendig 
(basierend auf > https://www.mybb.de/forum/showthread.php?tid=762  und > https://www.mybb.de/forum/thread-799-pos...l#pid45157 ):
 
1. in Datei "showthread.php "
 
ersetze (~ Zeile 651)
 PHP-Code:         // Build the threaded post display tree.$query = $db->query("
 SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
 FROM ".TABLE_PREFIX."posts p
 WHERE p.tid='$tid'
 $visible
 ORDER BY p.dateline
 ");
 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2) {$order = "DESC";
 }
 else {
 $order = "ASC";
 }
 // Build the threaded post display tree.
 $query = $db->query("
 SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
 FROM ".TABLE_PREFIX."posts p
 WHERE p.tid='$tid'
 $visible
 ORDER BY p.dateline ".$order."
 ");
 
ersetze (~ Zeile 778)
 PHP-Code:         $query = $db->simple_select("posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline', 'limit_start' => $start, 'limit' => $perpage)); 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2) {$order = "DESC";
 }
 else {
 $order = "ASC";
 }
 $query = $db->simple_select("posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline '.$order, 'limit_start' => $start, 'limit' => $perpage));
 
ersetze (~ Zeile 805)
 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
 ");
 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2) {$order = "DESC";
 }
 else {
 $order = "ASC";
 }
 // 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 ".$order."
 ");
 
2. in Datei "usercp.php "
 
ersetze (~ Zeile 629)
 PHP-Code:         "pmnotify" => $mybb->input['pmnotify'], 
durch
 PHP-Code:         "pmnotify" => $mybb->input['pmnotify'],"postsort" => $mybb->input['postsort'],
 
ersetze (~ Zeile 807)
 PHP-Code:     else{
 $dst_disabled_selected = "selected=\"selected\"";
 }
 
durch
 PHP-Code:     else{
 $dst_disabled_selected = "selected=\"selected\"";
 }
 
 if($mybb->input['postsort'] != 2)
 {
 $mybb->input['postsort'] = 1;
 }
 
ersetze (~ Zeile 883)
 PHP-Code:     $threadview[$user['threadmode']] = 'selected="selected"'; 
durch
 PHP-Code:     $threadview[$user['threadmode']] = 'selected="selected"';$postsort[$mybb->user['postsort']] = 'selected="selected"';
 
3. in Datei "usercp.lang.php "
 
ersetze (am Ende der Datei)
 durch
 PHP-Code: $l['postsort'] = "Reihenfolge der Beiträge:";$l['postsort_desc'] = "absteigend (neuester Beitrag zuerst)";
 $l['postsort_asc'] = "aufsteigend (ältester Beitrag zuerst)";
 ?>
4. in Template "Benutzer Control-Panel Templates > usercp_options "
 
ersetze
 Code: <tr><td colspan="2"><select name="threadmode"><option value="">$lang->use_default</option><option value="linear" $threadview[linear]>$lang->linear</option><option value="threaded" $threadview[threaded]>$lang->threaded</option></select></td>
 </tr>
durch
 Code: <tr><td colspan="2"><select name="threadmode"><option value="">$lang->use_default</option><option value="linear" $threadview[linear]>$lang->linear</option><option value="threaded" $threadview[threaded]>$lang->threaded</option></select></td>
 </tr>
 <!-- mod start -->
 <tr>
 <td colspan="2"><span class="smalltext">$lang->postsort</span></td>
 </tr>
 <tr>
 <td colspan="2"><select name="postsort"><option value="1"$postsort[1]>$lang->postsort_asc</option><option value="2"$postsort[2]>$lang->postsort_desc</option></select></td>
 </tr>
 <!-- mod end -->
5. in "phpMyAdmin " (o. ä.) führe folgende Query aus ("mybb_" ggf. anpassen!)
 PHP-Code: ALTER TABLE `mybb_users` ADD `postsort` INT( 1 ) NOT NULL DEFAULT '1'; 
In "Benutzer-CP > Optionen ändern" sollte nun die Option "Reihenfolge der Beiträge" verfügbar und einstellbar sein.
	 
	
	
	
		
	Beiträge: 72Themen: 16
 Registriert seit: 08.10.2009
 
	
	
		GENIAL!!!! 
Vielen, vielen Dank! Das hat super funktioniert     
VG 
hafgan
	 
	
	
	
		
	Beiträge: 1Themen: 0
 Registriert seit: 08.04.2010
 
	
	
		Hi, 
Vielen Dank für den tollen Beitrag! 
Ich habe die Änderungen wie oben beschrieben durchgeführt und es funktioniert auch soweit. 
Nur wenn ich einen Beitrag direkt auf der Startseite (auf der rechten Seite der Tabelle) bekomme ich eine weiße Seite wo nur die Zeichen   zu sehen sind.
 
Der link, der mir angezeigt wird ist http://www.xzy/showthread.php?tid=4&action=lastpost 
Ich habe herausgefunden, wenn ich den Zusatz action=lastpost per hand in der adresszeile entferne geht alles. 
Habe ich bei der Modifikation was falsch gemacht, oder fehlt moch eine kleine Einstellung?
 
Vielen Dank für Antworten 
Arktus
 
----- 
MyBB Version  	1.4.11
	 
	
	
	
		
	Beiträge: 25.820Themen: 271
 Registriert seit: 20.09.2005
 
	
	
	
	
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
 
	
	
	
		
	Beiträge: 1.939Themen: 18
 Registriert seit: 30.06.2007
 MyBB-Version: 1.6.6
 
	
		
		
		23.10.2010, 23:08 
(Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2010, 00:09 von linwinman.)
		
	 
		Für MyBB 1.6 gelten folgende Änderungen (basierend auf > Beitrag #5 ):
 
1. in Datei "showthread.php "
 
ersetze (~ Zeile 743)
 PHP-Code:         // Build the threaded post display tree.$query = $db->query("
 SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
 FROM ".TABLE_PREFIX."posts p
 WHERE p.tid='$tid'
 $visible
 ORDER BY p.dateline
 ");
 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2){
 $order = "DESC";
 }
 else
 {
 $order = "ASC";
 }
 // Build the threaded post display tree.
 $query = $db->query("
 SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
 FROM ".TABLE_PREFIX."posts p
 WHERE p.tid='$tid'
 $visible
 ORDER BY p.dateline $order
 ");
 
ersetze (~ Zeile 884 - ergibt sich aus der 1. Änderung)
 PHP-Code:         $query = $db->simple_select("posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline', 'limit_start' => $start, 'limit' => $perpage)); 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2){
 $order = "DESC";
 }
 else
 {
 $order = "ASC";
 }
 $query = $db->simple_select("posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline '.$order, 'limit_start' => $start, 'limit' => $perpage));
 
ersetze (~ Zeile 927 - ergibt sich aus der 2. Änderung)
 PHP-Code:         $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
 ");
 
durch
 PHP-Code:         if($mybb->user["postsort"] == 2){
 $order = "DESC";
 }
 else
 {
 $order = "ASC";
 }
 $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 $order
 ");
 
2. in Datei "usercp.php "
 
ersetze (~ Zeile 639)
 PHP-Code:         "pmnotify" => $mybb->input['pmnotify'], 
durch
 PHP-Code:         "pmnotify" => $mybb->input['pmnotify'],"postsort" => $mybb->input['postsort'],
 
ersetze (~ Zeile 802 - ergibt sich aus der 1. Änderung)
 PHP-Code:     else{
 $dst_disabled_selected = "selected=\"selected\"";
 }
 
durch
 PHP-Code:     else{
 $dst_disabled_selected = "selected=\"selected\"";
 }
 
 if($mybb->input['postsort'] != 2)
 {
 $mybb->input['postsort'] = 1;
 }
 
ersetze (~ Zeile 887 - ergibt sich aus der 2. Änderung)
 PHP-Code:     $threadview[$user['threadmode']] = 'selected="selected"'; 
durch
 PHP-Code:     $threadview[$user['threadmode']] = 'selected="selected"';$postsort[$mybb->user['postsort']] = 'selected="selected"';
 
3. in Datei "usercp.lang.php "
 
ersetze (am Ende der Datei)
 durch
 PHP-Code: $l['postsort'] = "Reihenfolge der Beiträge:";$l['postsort_desc'] = "absteigend (neuester Beitrag zuerst)";
 $l['postsort_asc'] = "aufsteigend (ältester Beitrag zuerst)";
 ?>
4. in Template "Benutzer Control-Panel Templates > usercp_options "
 
ersetze
 Code: <tr><td colspan="2"><select name="threadmode"><option value="">{$lang->use_default}</option><option value="linear" {$threadview['linear']}>{$lang->linear}</option><option value="threaded" {$threadview['threaded']}>{$lang->threaded}</option></select></td>
 </tr>
durch
 Code: <tr><td colspan="2"><select name="threadmode"><option value="">{$lang->use_default}</option><option value="linear" {$threadview['linear']}>{$lang->linear}</option><option value="threaded" {$threadview['threaded']}>{$lang->threaded}</option></select></td>
 </tr>
 <!-- mod start -->
 <tr>
 <td colspan="2"><span class="smalltext">$lang->postsort</span></td>
 </tr>
 <tr>
 <td colspan="2"><select name="postsort"><option value="1" {$postsort[1]}>{$lang->postsort_asc}</option><option value="2" {$postsort[2]}>{$lang->postsort_desc}</option></select></td>
 </tr>
 <!-- mod end -->
5. in "phpMyAdmin " (o. ä.) führe folgende Query aus ("mybb_" ggf. anpassen!)
 PHP-Code: ALTER TABLE `mybb_users` ADD `postsort` INT( 1 ) NOT NULL DEFAULT '1'; 
 
	
	
	
		
	Beiträge: 72Themen: 16
 Registriert seit: 08.10.2009
 
	
		
		
		23.10.2010, 23:58 
(Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2010, 00:09 von hafgan.)
		
	 
		Hallo linwinman, 
danke für Deine Mühe. Leider habe ich nun folgenden Fehler, wenn ich Beiträge anzeigen lassen will:
 Code: MyBB has experienced an internal SQL error and cannot continue.
 SQL Error:
 1054 - Unknown column 'p.datelineASC' in 'order clause'
 Query:
 SELECT p.pid FROM mybb_posts p WHERE p.tid='146' AND (p.visible='0' OR p.visible='1') ORDER BY p.datelineASC LIMIT 0, 10
Hast Du eine Idee? (Leider hab ich keine Ahnung von PHP).
 
EDIT: Es müsste an der 1. Datei liegen (showthread.php)
 
Alexander
	 |