Posts pro Seite einstellen

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.
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Posts pro Seite einstellen

Beitrag von einheitlix »

Moin!

Gibt es einen Mod dafür, dass jeder registrierte Benutzer für sich einstellen kann, wieviele Posts er pro Seite angezeigt haben will und somit die Default Einstellung der Admin Zone "überschreibt"?

Das wäre echt praktisch :)

Danke schonmal!
Benutzeravatar
Ratte
Mitglied
Beiträge: 621
Registriert: 18.06.2003 13:47
Wohnort: Nbg
Kontaktdaten:

Beitrag von Ratte »

wieso wär des praktisch...des is doch ne kleinigkeit die man wohl echt net braucht...
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Es gibt eben Leute, die sich gerne 100 Posts pro Seite anzeigen lassen, weil sie eh DSL Flat haben und andere, denen 10 Stück reichen, weil sie noch mit 56k Modem surfen. Natürlich könnte man irgendeine "Kompromisseinstellung" festlegen, aber wenn jeder User es für sich entscheiden könnte, wäre das schon verdammt praktsch.

Einige User hätten das bei mir halt gerne... (ich eingeschlossen übrigens)

Kommt schon... es gibt doch eine Menge phpBB Profis hier, so schwer kann das doch nicht sein :D

Ich denke, da bräuchte man eine zusätzliche Tabelle in mySQL, in der für jeden User steht wieviel Posts er pro Seite angezeigt haben will... wenn ein User sich ein Topic ansieht, würde sein Wert abgefragt. Ist keiner vorhanden, wird der Wert aus der Admin Zone genommen. Neben dem mySQL Update wären (mal so ganz spontan vermutet) folgende Files zu editieren:
viewtopic.php (um die Abfrage, wieviele Posts angezeigt werden sollen, anzupassen)
includes/usercp_viewprofile.php (um einzubauen, dass auch ein persönlicher Wert wie posts_per_page übernommen wird)
templates/*/profile_view_body.tpl (um die entsprechende Einstellung in der HTML Form einzubauen)

Ich habe nun leider kaum PHP Kenntnisse und hab keine Ahnung von mySQL, und weiß wohl auch noch zu wenig über das Board um das zu packen. Aber wenn jemand so einen Mod mal scripten könnte, wäre ich wirklich sehr dankbar! :)
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Leute!! *schieb*

Bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte sag doch mal einer was dazu. Gibt es denn ungeahnte Schwierigkeiten? Acid? PhillipK? AWSW? ... Sowas müsste doch ein Klacks für euch sein :D

Ich möchte echt nicht nerven. Ihr macht das ja auch nur ganz unverbindlich und so. Aber ich wäre echt dankbar, wenn jemand auch nur andeuten würde, dass er sich dem Problem in näherere Zukunft mal annehmen könnte ;)
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Ok, ich hab mir das jetzt etwas genauer angeguckt. Nur ein paar spezifische Fragen jetzt...

1) Acid hat doch mal so einen Mod gemacht, womit man jede beliebige zusätzliche Eigenschaft bei Usern eintragen kann, oder? Wo gibt es den? Dann trag ich schonmal bei allen Usern eine Zeile "posts_per_page" ein.

Gibt es mit mySQL eine Möglichkeit, anstatt als "Default" eine statische Value anzugeben, als Default den Wert von einem anderen Wert in der Tabelle anzugeben? Also quasi als Default "$board_config['posts_per_page']"

2) Ich hab mal mit grep nach posts_per_page gesucht und allerlei gefunden, wobei mir dann 4 Dateien wesentlich erscheinen:
includes/topic_review.php
search.php
viewforum.php
viewtopic.php

Könntet ihr mir sagen, wofür diese 4 Files genau zuständig sind? Der Name lässt es zwar ungefähr vermuten, aber ich würde hier vor allem zu jedem einzelnen wissen, was er mit posts_per_page zu tun hat :)

Wenn ich Acids Mod installiert hab, muss ich wahrscheinlich nur diese 4 Dateien anpassen und voilà!

Wäre echt nett, wenn ihr mir diese Infos geben könntet... den Rest packe ich wahrscheinlich auch allein :roll:
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Ist das wirklich so schwer? :(
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

Welche MOD von Acid meinst du jetzt genau bei diesem Thema?

Das posts_per_page in den Dateien ist "nur" dafür zuständig, wieviel Postings bzw. Themen angezeigt werden.

Wenn ich heute noch Zeit finde, dann versuche ich mich mal ne kleine Anleitung zu schreiben.
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Das wäre nett =)

Ich meine, das ich mal sowas gelesen habe, dass Acid mal eine Anleitung geschrieben hatte, wie man ein beliebiges Feld zusätzlich ins User Profil eintragen kann.

viewforum.php wird aufgerufen, wenn man ein bestimmtes Forum anklickt, nicht wahr? Da braucht man das wahrscheinlich wegen den "Paginations", richtig?

viewtopic.php natürlich, wenn man ein Topic anklickt... da gehört posts_per_page natürlich rein :)

search.php für die Seite, wo man suchen kann bzw. deren Resultate anzeigen lassen kann. Auch da muss man die Paginations errechnen...

Aber wann wird includes/topic_review.php aufgerufen? Wozu braucht man da posts_per_page?
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

Probiers mal damit: topics_per_page.zip

esperitox
einheitlix
Mitglied
Beiträge: 58
Registriert: 10.07.2003 01:24
Wohnort: Siegen
Kontaktdaten:

Beitrag von einheitlix »

Jaah!! Danke, das war genau was ich suchte :)

Da waren aber ein Fehler drin... so hat das Mod gar nicht funktioniert!

In usercp_register.php wurden die Variablen $user_posts_per_page, $user_topics_per_page, und $user_hot_threshold benutzt, ohne dass sie vorher gesetzt wurden °_°

Da fehlt IMHO sowas wie
>>>SUCHE:
$allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $userdata['user_allowsmile'];
}

>>>DANACH EINFÜGEN:
$user_posts_per_page = ( isset($HTTP_POST_VARS['user_posts_per_page']) ) ? (intval($HTTP_POST_VARS['user_posts_per_page']) == 0 ? $board_config['posts_per_page'] : intval($HTTP_POST_VARS['user_posts_per_page'])) : $board_config['posts_per_page'];
$user_topics_per_page = ( isset($HTTP_POST_VARS['user_topics_per_page']) ) ? (intval($HTTP_POST_VARS['user_topics_per_page']) == 0 ? $board_config['topics_per_page'] : intval($HTTP_POST_VARS['user_topics_per_page'])) : $board_config['topics_per_page'];
$user_hot_threshold = ( isset($HTTP_POST_VARS['user_hot_threshold']) ) ? (intval($HTTP_POST_VARS['user_hot_threshold']) == 0 ? $board_config['hot_threshold'] : intval($HTTP_POST_VARS['user_hot_threshold'])) : $board_config['hot_threshold'];
Ohne das waren diese Variablen einfach immer leer... sprich, man konnte die gar nicht über "Profil" editieren. Danach waren sie immer leer und sobald man versuchte, sich ein Topic anzuschauen, bekam man eine
Fehlermeldung, weil diese Value leer war (anstatt ein int zu sein).

Weitere kleine Fehler, die mir aufgefallen sind und ich dokumentiert habe:
#
#-----[ ÖFFNEN ]------------------------------------------
#
# viewtopic.php

>>FINDE:
$start = floor(($forum_topic_data['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];

>>MIT FOLGENDEM ERSETZEN:
$start = floor(($forum_topic_data['prev_posts'] - 1) / $userdata['user_posts_per_page']) * $userdata['user_posts_per_page'];
Es gibt kein "$start = floor(($forum_topic_data['prev_posts'] - 1) / $board_config['posts_per_page']) * $board_config['posts_per_page'];" in der viewtopic.php (in der 2.0.5 nicht). Da steht "$start = floor(($forum_topic_data['prev_posts'] - 1) / intval($board_config['posts_per_page'])) * intval($board_config['posts_per_page']);". Und es ist ja auch logisch, das sollen ja Zahlen sein. Daher habe ich die intval Aufrufe auch eingefügt, also "$start = floor(($forum_topic_data['prev_posts'] - 1) / intval($userdata['user_posts_per_page'])) * intval($userdata['user_posts_per_page']);"

Weiterhin:
>>FINDE:
$pagination = ( $highlight_active ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=" . $HTTP_GET_VARS['highlight'], $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);

>>MIT FOLGENDEM ERSETZEN:
$pagination = ( $highlight_active ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=" . $HTTP_GET_VARS['highlight'], $total_replies, $userdata['user_posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $per_page, $start);
Die Regelung mit den Highlight wurde wohl ein bisschen geändert. Richtig wäre nun:
>>FINDE:
$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $board_config['posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $board_config['posts_per_page'], $start);

>>MIT FOLGENDEM ERSETZEN:
$pagination = ( $highlight != '' ) ? generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order&highlight=$highlight", $total_replies, $userdata['user_posts_per_page'], $start) : generate_pagination("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=$post_days&postorder=$post_order", $total_replies, $per_page, $start);
Und wieder intval... statt
>>FINDE:
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $board_config['posts_per_page'] ) + 1 ), ceil( $total_replies / $board_config['posts_per_page'] )),

>>MIT FOLGENDEM ERSETZEN:
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $per_page ) + 1 ), ceil( $total_replies / $per_page )),
ist es
>>FINDE:
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($board_config['posts_per_page']) ) + 1 ), ceil( $total_replies / intval($board_config['posts_per_page']) )),

>>MIT FOLGENDEM ERSETZEN:
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / intval($per_page) ) + 1 ), ceil( $total_replies / intval($per_page) )),
Jetzt geht's aber. Danke :)

Den optionalen Teil nehme ich mir gleich vor...
Antworten

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