Für Gäste nur Preview des Beitrags

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Labberie1
Mitglied
Beiträge: 2
Registriert: 20.06.2015 12:37

Für Gäste nur Preview des Beitrags

Beitrag von Labberie1 »

Hallo,

ich möchte in meinem Board einbauen, dass Gäste in bestimmten Foren die Themen sehen, aber vom Beitrag nur eine Preview, also die ersten xxx Zeichen (z.B. 200) eines jeden Beitrags lesen können. Ist der Beitragstext länger als xxx Zeichen, soll der restliche Beitragstext nicht sichtbar sein, sondern ein Text Login oder Registrieren (jeweils anklickbar um auf die Login- oder Registrierseite zu gelangen) an die Preview angehängt werden.

Ansatz für die Realisierung ist sicher die viewtopic.php. Dort müsste ich sicher prüfen, ob der User eingeloggt ist, oder es sich um einen Gast (oder Bot) handelt.

Leider kenne ich mich mit phpbb noch nicht genug aus, um zu erkennen, wo und wie ich anschließend die Ausgabe des Beitrags bei Gästen entsprechend limitieren kann. Ich erwarte selbstverständlich keine fertige Lösung, sondern wäre für Hinweise dankbar, die mir weiterhelfen.

Grüße
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Für Gäste nur Preview des Beitrags

Beitrag von gn#36 »

$user->data['is_registered'] und $user->data['is_bot'] sagen dir ob der User angemeldet ist und ob es ein Bot ist. Ausgaben erfolgen mit dem Template System: KB:template_syntax KB:template_system Du suchst nach einer Schleifenausgabe für postrow.

Allerdings dürftest du - sofern du mit phpBB 3.1 arbeitest, auch ohne Probleme mit einer Extension arbeiten können: https://area51.phpbb.com/docs/dev/31x/ https://wiki.phpbb.com/Event_List Das Event core.viewtopic_modify_post_data dürfte genügen.
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.
Labberie1
Mitglied
Beiträge: 2
Registriert: 20.06.2015 12:37

Re: Für Gäste nur Preview des Beitrags

Beitrag von Labberie1 »

Vielen Dank für den Hinweis zur Nutzung einer Extension. Das war für mich zunächst mal Neuland; inzwischen habe ich mich aber mal ein bisschen eingelesen und das Grundprinzip verstanden.

Allerdings gelingt es mir nicht mit dem Event

Code: Alles auswählen

core.viewtopic_modify_post_data
an den Text (Arguments: rowset ??) zu gelangen, um ihn dann zu modifizieren.

Probehalber (um zu sehen, ob die erste von mir erstellte Extension überhaupt von der Funktionsweise richtig ist) habe ich mal mit

Code: Alles auswählen

core.modify_text_for_display_before
(Arguments: text) experimentiert. Das funktioniert auch soweit, dass der Text wie gewünscht gekürzt wird, allerdings nicht nur in den Beiträgen, sondern generell (also z.B. auch beim beschreibenden Text der jeweiligen Foren).

Würde mich daher über einen zusätzlichen Hinweis oder Tipp zu core.viewtopic_modify_post_data in Verbindung mit rowset freuen, der einem Anfänger auf die Sprünge hilft. :oops:
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Für Gäste nur Preview des Beitrags

Beitrag von gn#36 »

Eventuell ist es etwas verwirrend, dass $event kein Array ist, sondern ein Objekt. Hierdurch funktioniert ein Zugriff

Code: Alles auswählen

$event['rowset'][$id]['xyz'] = 'abc';
nicht so wie erwartet.

Du musst stattdessen sowas machen:

Code: Alles auswählen

$rowset = $event['rowset'];
$rowset[$id]['xyz'] = 'abc';
$event['rowset'] = $rowset;
Ansonsten ist das denke ich halbwegs selbsterklärend - du musst das rowset Array in einer Schleife durchlaufen und alle Texte kürzen, die in $rowset[$id]['post_text'] stehen sollten. Das kürzt dann nur in der viewtopic und nirgendwo sonst. Pass aber auf, dass du nicht die BBcodes zerstörst. Zu dem Zeitpunkt ist generate_text_for_display da noch nicht drüber gelaufen.
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
Unimatrix_0
Mitglied
Beiträge: 392
Registriert: 03.11.2007 10:50
Kontaktdaten:

Re: Für Gäste nur Preview des Beitrags

Beitrag von Unimatrix_0 »

gn#36 hat geschrieben: Pass aber auf, dass du nicht die BBcodes zerstörst. Zu dem Zeitpunkt ist generate_text_for_display da noch nicht drüber gelaufen.
https://github.com/nickv-phpbb/phpbb-tool-trimmessage kann beim Kürzen Wunder bewegen ...
Antworten

Zurück zu „Coding & Technik“