Themen im Forum sichtbar, jedoch nicht aufrufbar
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Themen im Forum sichtbar, jedoch nicht aufrufbar
Hallo,
ich suche die Möglichkeit, das Themen (also die Namen) für Gäste angezeigt werden, jedoch bei einem Klick auf das Thema zum Login/Registrationsmenü weitergeleitet wird.
Bisher habe ich es mit einem Workarround in der php Datei gelöst, frage mich aber ob es nicht auch eine einfacherer Möglichkeit gibt welche ich übersehe.
ich suche die Möglichkeit, das Themen (also die Namen) für Gäste angezeigt werden, jedoch bei einem Klick auf das Thema zum Login/Registrationsmenü weitergeleitet wird.
Bisher habe ich es mit einem Workarround in der php Datei gelöst, frage mich aber ob es nicht auch eine einfacherer Möglichkeit gibt welche ich übersehe.
Gruss
Everlong
Everlong
Re: Themen im Forum sichtbar, jedoch nicht aufrufbar
Versuchs mal im ACP
Auf Benutzer und Gruppen klicken
Links auf Gruppenrechte klicken
Gäste wählen
Auf erweiterte Berechtigen klicken,
und da so einstellen wie Du es möchtest
Nie bevorzugen
Nicht vergessen auf "Alle Berechtigungen anwenden" zu klicken.
Und das ganze dann auch unter "Gruppenspezifische Forenrechte"
M.
Auf Benutzer und Gruppen klicken
Links auf Gruppenrechte klicken
Gäste wählen
Auf erweiterte Berechtigen klicken,
und da so einstellen wie Du es möchtest
Nie bevorzugen
Nicht vergessen auf "Alle Berechtigungen anwenden" zu klicken.
Und das ganze dann auch unter "Gruppenspezifische Forenrechte"
M.
Noli umquam desinere!
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Themen im Forum sichtbar, jedoch nicht aufrufbar
Das lässt sich denke ich mit einer Extension realisieren, die den Hook in der viewtopic.php nutzt und lediglich kontrolliert, ob der Nutzer Gast ist und wenn ja immer ein Login Formular anbietet.
Ausreichen würde wohl das Event
Ich habe jetzt gerade nicht die Zeit, die zu schreiben, aber im Grunde genommen besteht die auch nur aus drei Dateien mit wenig Inhalt: composer.json, config/services.yml und events/main.php. Wenn du dich ein wenig mit PHP auskennst kannst du ja mal probieren, die selbst umzusetzen, anhand z.B. hiervon.
Ansonsten geht's auch weiterhin mit einer kleinen PHP Code Änderung: Du vergibst das Leserecht für Gäste, aber in der viewtopic.php ersetzt du
durch
. Dann bekommen Gäste immer das Loginformular zu sehen. Hat natürlich den Nachteil, dass du bei einem Update nicht mehr einfach alles drüberbügeln kannst.
Ausreichen würde wohl das Event
core.viewtopic_assign_template_vars_before
.Ich habe jetzt gerade nicht die Zeit, die zu schreiben, aber im Grunde genommen besteht die auch nur aus drei Dateien mit wenig Inhalt: composer.json, config/services.yml und events/main.php. Wenn du dich ein wenig mit PHP auskennst kannst du ja mal probieren, die selbst umzusetzen, anhand z.B. hiervon.
Ansonsten geht's auch weiterhin mit einer kleinen PHP Code Änderung: Du vergibst das Leserecht für Gäste, aber in der viewtopic.php ersetzt du
Code: Alles auswählen
// Start auth check
if (!$auth->acl_get('f_read', $forum_id))
Code: Alles auswählen
// Start auth check
if (!$auth->acl_get('f_read', $forum_id) || $user->data['user_id'] == ANONYMOUS)
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: Themen im Forum sichtbar, jedoch nicht aufrufbar
Hallo,
danke für die Antwort.
Das macht es was es soll, die Gäste können in den beiden Foren (1 und 36) die Themen lesen jedoch in allen anderen Forum nur die Übersicht der Themen sehen.
danke für die Antwort.
Ich habe es jetzt so gelöst:gn#36 hat geschrieben:. Dann bekommen Gäste immer das Loginformular zu sehen.Code: Alles auswählen
// Start auth check if (!$auth->acl_get('f_read', $forum_id) || $user->data['user_id'] == ANONYMOUS)
Code: Alles auswählen
if (!$user->data['is_registered'] && $forum_id != 1 && $forum_id != 36 && !$user->data['is_bot'])
Gruss
Everlong
Everlong
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Themen im Forum sichtbar, jedoch nicht aufrufbar
Damit hast du natürlich die Berechtigung
f_read
komplett ausgehebelt im Bezug auf das ansehen von Themen. Heißt also, jeder der die ID des Themas kennt, kann es lesen, es wird nicht zusätzlich noch geprüft ob der User generell in dem Forum lesen dürfte. Somit darf jeder, selbst wenn er die Themenübersicht und das Forum ansich nicht sehen kann, auf das Thema zugreifen, sofern er registriert ist. Da man das auch hinkriegt, indem man die IDs im Link durchprobiert sind damit alle deine Foren für alle registrierten Benutzer zugänglich. Bei Foren ID 1 und 36 besteht überhaupt keine Beschränkung, da darf auch jeder Gast lesen.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: Themen im Forum sichtbar, jedoch nicht aufrufbar
Das ist auch gewünscht, es handelt sich um ein "Gästeforum" wo jeder unregistrierte Posten und auch die Themen sehen darf, jedoch in den anderen Foren nur die Themen in der Forum Liste einsehen darf jedoch nicht den Inhalt der einzelnen Threads als Gast.gn#36 hat geschrieben:Heißt also, jeder der die ID des Themas kennt, kann es lesen, es wird nicht zusätzlich noch geprüft ob der User generell in dem Forum lesen dürfte. Somit darf jeder, selbst wenn er die Themenübersicht und das Forum ansich nicht sehen kann, auf das Thema zugreifen, sofern er registriert ist.
Gruss
Everlong
Everlong
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Themen im Forum sichtbar, jedoch nicht aufrufbar
Solange du also absolut keine "internen" Foren z.B. nur für Moderatoren hast ist das ok. Für die gilt nämlich das gleiche. Ich wollte es nur erwähnen, falls das jemand nachmacht.
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: Themen im Forum sichtbar, jedoch nicht aufrufbar
Stimmt, wenn jemand registriert ist und die ForumID vom internen Moderatoren Forum kennt könnte er es sehen. Gar nicht daran gedacht.gn#36 hat geschrieben:Solange du also absolut keine "internen" Foren z.B. nur für Moderatoren hast ist das ok. Für die gilt nämlich das gleiche. Ich wollte es nur erwähnen, falls das jemand nachmacht.
Ich werde dann doch mir die Lösung mit "f_read" nochmal anschauen.
Danke fürs nachhaken!
Gruss
Everlong
Everlong
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Themen im Forum sichtbar, jedoch nicht aufrufbar
Wenn wir schon dabei sind, dann kann man auch hierfür eine Extension schreiben (oder es in die bestehende Extension integrieren).
Erstelle einen Ordner gn36/viewtopiclogin im ext Verzeichnis
dort hinein die folgenden Verzeichnisse und Dateien
Inhalt der composer.json:
Inhalt der services.yml (alle Einrückungen mit Leerzeichen!)
Inhalt der viewtopic.php
Auch das ist bisher noch nicht getestet.
Erstelle einen Ordner gn36/viewtopiclogin im ext Verzeichnis
dort hinein die folgenden Verzeichnisse und Dateien
Code: Alles auswählen
composer.json
config/
services.yml
event/
viewtopic.php
Code: Alles auswählen
{
"name": "gn36/viewtopiclogin",
"type": "phpbb-extension",
"description": "An extension which forces a login form on viewtopic for guests, even if they are allowed to read according to permissions.",
"version": "1.0.0",
"time": "2015-01-12",
"license": "GPL-2.0",
"authors": [
{
"name": "Martin Beckmann",
"role": "Developer"
}
],
"require": {
"php": ">=5.3.3"
},
"extra": {
"display-name": "Force login on Topic View for Guests",
"soft-require" : {
"phpbb/phpbb": ">=3.1.2,<3.2.*@dev"
}
}
}
Code: Alles auswählen
services:
gn36.viewtopiclogin.listener:
class: gn36\viewtopiclogin\event\viewtopic
arguments:
- @user
tags:
- { name: event.listener }
Code: Alles auswählen
namespace gn36\viewtopiclogin\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class viewtopic implements EventSubscriberInterface
{
protected $user;
__construct(\phpbb\user $user)
{
$this->user = $user;
}
static public function getSubscribedEvents()
{
return array(
// viewtopic
'core.viewtopic_assign_template_vars_before' => 'force_login_guest',
);
}
public function force_login_guest($event)
{
//ggf. hier weitere Ausnahmen ergänzen anhand der Infos in $event (u.a. steht da die Foren ID drin: $event['forum_id'])
if(!$user->data['is_registered'])
{
login_box();
}
}
}
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.