Seite 1 von 3

reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 10:13
von forant
Hallo Community,

mit dem

Code: Alles auswählen

if (!$user->data['is_registered'] && $forum_id != 63 && $forum_id != 147)
kann man einstellen, das Gäste die Themen sehen dürfen, aber nicht lesen.

Was muss an Stelle von

Code: Alles auswählen

if (!$user->data['is_registered'] 
verwendet werden, um dieses auch für registrierte Benutzer durchzuführen?

Ich habe Foren, in welchen selbst registrierte Benutzer die Themen sehen sollen, aber nicht lesen (dazu müssen Sie erst einer weiteren Gruppe zugewiesen werden).

Kann mir jemand helfen?

Danke vorab.

Greatings

Martin

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 10:57
von DeepSurfer
Also ist Dein Konzept so, das es z.b. 20 Foren gibt.

-5 davon sind für Registrierte Benutzer und Gäste einsehbar ABER nicht schreibbar.
-5 davon dürfen Registrierte Benutzer einsehen UND schreiben.
-10 davon sind mit eigener Gruppe unsichtbar für alle anderen.

Hab ich das so richtig aus Deiner Fragestellung gelesen ??

Wenn nicht, dann stellt sich die Frage warum du die Schreibbarkeit für Registrierte Benutzer nicht ganz entziehst über die Berechtigungen, bzw. eben für die Gruppe die Berechtigung "Nur Lesender Zugriff" vergibst.

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 12:03
von forant
DeepSurfer hat geschrieben:Hab ich das so richtig aus Deiner Fragestellung gelesen ??
Leider Nein :wink:

Es handelt sich nicht um Foren, sondern um Themen. In den Berechtigungen kann man nur die Foren als sehen und lesen definieren, aber nicht explizit die Themen. Daraus ergibt sich für mich folgende Aufgabenstellung:

Beispiele:
1. Gäste dürfen in ALLEN Foren AA bis ZZ die Themen sehen aber nicht den Inhalt der Themen lesen.

2. Registrierte Benutzer dürfen im Foren AA und BB die Themen sehen und den Inhalt lesen, in den Foren CC bis ZZ die Themen sehen aber nicht den Inhalt der Themen lesen.

3. Mitglieder der Gruppe "Muster" dürfen im Foren AA, BB, CC und DD die Themen sehen und den Inhalt lesen, in den Foren EE bis ZZ die Themen sehen aber nicht den Inhalt der Themen lesen.

4. Mitglieder der Gruppe "Tester" dürfen im Foren AA, BB, EE und FF dieThemen sehen und den Inhalt lesen, in den Foren CC bis DD und GG bis ZZ die Themen sehen aber nicht den Inhalt der Themen lesen.

Zusammengefasst:
A: in der Grundstellung dürfen ALLE die Themen lesen, aber nicht deren Inhalte. :P
B: das Lesen der Inhalte von Themen soll jeweils nur bestimmten Gruppen vorbehalten sein. :x

Anmerkung:
Ich kann sicherlich damit leben, wenn ich dies jeweils (wie im OP) selbst in der viewtopc.php definieren muss, da es in der Regel nicht oft verändert werden muss. :D

Wie kann man dies in der viewtopc.php definieren? :o

Hoffe ich habe mich jetzt etwas deutlicher ausdrücken können. *puuh, stöhn*

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 12:25
von Mahony
Hallo
Das hier sollte dir weiter helfen http://www.phpbb.com/kb/article/phpbb3- ... tegration/
Ab hier
Here's a list of all the user data variables you can access or check:
wird es interessant für dich.

Achtung: $user->data['group_id'] gibt dir nur die Hauptgruppe des jeweiligen Benutzers zurück.

Grüße: Mahony

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 12:51
von forant
Hallo Mahony,

zunächst einmal Danke dass auch Dich mit meinem Anliegen beschäftigst.

Bei Deinem Lösungsvorschlag geht es wahrlich ins eingemachte (SQL) wovon ich noch zu wenig Ahnung habe. Auch habe ich mit Englisch meine Probleme. :oops:

Dürfte vermutlich wohl ein Fall für die Jobbörse werden? :wink:

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 13:15
von Mahony
Hallo
Ähm...das ist doch ganz einfach
Nutze die Abfrage folgendermaßen

Code: Alles auswählen

if ($user->data['group_id'] == x || $user->data['group_id'] == y || $user->data['group_id'] == z)
x, y und z musst du natürlich mit den benötigten Gruppen IDs ersetzen.


Grüße: Mahony

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 13:59
von forant
Mahony hat geschrieben:Ähm...das ist doch ganz einfach
sprach der Profi :P (ich kann Dir sagen das es ganz einfach ist, ein IP-Protokoll nach VdS2465 auszuwerten und wie man mit einem Makro eine GMA dazu bringen kann, das wenn X ansteht doch Y aktiviert wird, wenn Z aber nicht Kaffee trinken ist und die Schranke offen steht) :wink:

damit ich dies nicht so oft schreiben muss, wie kann ich:

Code: Alles auswählen

if (!$user->data['is_registered']
or

Code: Alles auswählen

if ($user->data['group_id'] == x
or

Code: Alles auswählen

if ($user->data['group_id'] == y
zusammenfassen?

Stimmt der nachstehende Gesamtbefehl um z.B. Gäste (1) und die Gruppen (2) und (9) zusammen zu fassen?:

Code: Alles auswählen

if ($user->data['group_id'] == 1 or if ($user->data['group_id'] == 2 or if ($user->data['group_id'] == 9 && $forum_id != AA && $forum_id != BB)
im Original (siehe oben) ist ja ein ! vor user->data gestellt. Korrekt das es bei den Groups entfällt?

Man sehe es mir nach, aber dies ist ja ein Thema der Programmierung und Du weist sicher, da kann man schnell MIST bauen. Daher frage ich lieber genauer nach.

Danke vorab

Grüßle

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 14:14
von Mahony
Hallo
Hm..ungefähr so

Code: Alles auswählen

if ((!$user->data['group_id'] == 1 ) || (!$user->data['group_id'] == 2 ) || (!$user->data['group_id'] == 9 && $forum_id == AA || $forum_id == BB)) 
Grüße: Mahony

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 14:14
von Dr.Death

Code: Alles auswählen

    if (!$user->data['is_registered'] OR $user->data['group_id'] == x OR $user->data['group_id'] == y)
*duck*

EDIT: Mahony war schneller.... und ich habe nur den Anfang der Frage beantworetet ;-)

Re: reg. Benutzer > Themen sehen aber nicht lesen

Verfasst: 31.08.2010 14:29
von forant
für den Laien zwei verschiedene Antworten:

einmal || und einmal OR zwischen den Syntax. Nehme an, beide haben die selbe auswirkung?

Zusatzfrage:
gibt es statt

Code: Alles auswählen

&& $forum_id != AA && $forum_id != BB
einen pauschalen Befehl für ALLE Foren (etwa: $forum_id!=all)?