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
Für Gäste nur Preview des Beitrags
- 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
$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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Re: Für Gäste nur Preview des Beitrags
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 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 (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.![Verlegen :oops:](./images/smilies/icon_redface.gif)
Allerdings gelingt es mir nicht mit dem Event
Code: Alles auswählen
core.viewtopic_modify_post_data
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
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.
![Verlegen :oops:](./images/smilies/icon_redface.gif)
- 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
Eventuell ist es etwas verwirrend, dass nicht so wie erwartet.
Du musst stattdessen sowas machen:
Ansonsten ist das denke ich halbwegs selbsterklärend - du musst das rowset Array in einer Schleife durchlaufen und alle Texte kürzen, die in
$event
kein Array ist, sondern ein Objekt. Hierdurch funktioniert ein Zugriff
Code: Alles auswählen
$event['rowset'][$id]['xyz'] = 'abc';
Du musst stattdessen sowas machen:
Code: Alles auswählen
$rowset = $event['rowset'];
$rowset[$id]['xyz'] = 'abc';
$event['rowset'] = $rowset;
$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.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
- Unimatrix_0
- Mitglied
- Beiträge: 392
- Registriert: 03.11.2007 10:50
- Kontaktdaten:
Re: Für Gäste nur Preview des Beitrags
https://github.com/nickv-phpbb/phpbb-tool-trimmessage kann beim Kürzen Wunder bewegen ...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.