[komplett erledigt] Forum sichtbarkeit?!

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Megaleecher
Mitglied
Beiträge: 39
Registriert: 22.01.2009 05:38

[komplett erledigt] Forum sichtbarkeit?!

Beitrag von Megaleecher »

Hi

Ich hab mir einen kleinen Mod programmiert, der mir die neuesten Themen und Beiträge anzeigt.

Jetzt zeigt er aber auch diese Themen an, die ein User gar nicht sehen kann (Administrationsbereich, VIP Bereich)
Ich hab diese Bereiche so eingestellt, dass sie nur bestimmte User sehen können.

Wo finde ich in der Datenbank, ob ein User ein bestimmtes Forum sehen kann??
Oder gibt es dafür bereits eine fertige Funktion??

MfG Megaleecher
Zuletzt geändert von Megaleecher am 02.03.2009 17:56, insgesamt 3-mal geändert.
mr.no-name
Mitglied
Beiträge: 1883
Registriert: 20.10.2003 12:07
Wohnort: Hannover

Re: Forum sichtbarkeit?!

Beitrag von mr.no-name »

Diese Art von Mod gibt es wohl schon - suche bei den üblichen Stellen (hier in der Mod DB, auf phpbbhacks.com usw) einfach mal nach "recent" oder "latest" - da solltest du etwas passendes finden :)
Megaleecher
Mitglied
Beiträge: 39
Registriert: 22.01.2009 05:38

Re: Forum sichtbarkeit?!

Beitrag von Megaleecher »

Mag schon sein, das es sowas schon gibt, mir gehts aber mehr darum, dass ich es selbst gemcht habe und es nicht von jemanden anderen machen ließ ;)

Könnte mir jemand eine richtige Antwort geben oder muss ich dies vorhandenen Mods zerlegen??

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

Re: Forum sichtbarkeit?!

Beitrag von gn#36 »

Die Berechtigungsdaten bekomst du aus allen Tabellen die ein "acl" im Namen haben. Alternativ und besser kannst du aber auch das auth Objekt benutzen und von diesem eine komplette Liste aller Foren IDs erhalten, in dem der aktuelle User lesen darf. Wie das geht kannst du in deinem docs/ Ordner finden der in der Foren Installation beiliegt, dort findet sich ein HTML Dokument über die Auth Api. Das geht dann ziemlich einfach mit etwas ähnlichem wie $auth->acl_getf_global oder so (müsste ich im Moment auch nachsehen so häufig brauche ich das nicht).

Die ausgelesenen IDs gibst du dann bei der Abfrage eben einfach mit ein (Foren ID steht ja bei jedem Themeneintrag dabei) indem du $db->sql_in_set benutzt.
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.
Megaleecher
Mitglied
Beiträge: 39
Registriert: 22.01.2009 05:38

Re: Forum sichtbarkeit?!

Beitrag von Megaleecher »

Danke :)

Das war genau das was ich gesucht habe^^

MfG Megaleecher
Megaleecher
Mitglied
Beiträge: 39
Registriert: 22.01.2009 05:38

Re: [fast erledigt] Forum sichtbarkeit?!

Beitrag von Megaleecher »

War ja irgendwie klar, das es so kommen musste :P

Also ich habe mir die Documentation durchgelesen, komme aber nicht drauf wie ich damit die forenid herausbekomm, was ich lesen kann :S

Ich habs mal test weise so probiert:

$auth_test = $auth->acl_getf_global('f_read');

Aber da kommt immer 1 raus...

Egal mit was ich angemeldet bin...

Wie kann ich den Befehl nun richtig benutzen??

Ich hab auch schon diesen articel gelesen aber komme auch dadurch nicht weiter...
http://phpbbmodders.net/articles/3.0/permissions/

Was mir auch aufgefallen ist, dass die function in der Klasse nicht vorhanden ist, er sie aber trotzdem irgendwie benutzen kann...
Woher kommt das?!

MfG Megaleecher

//Edit:

Ich habs jetzt mal so probiert:

if ($auth->acl_get('f_read',$row['forum_id']))
{
}

In $row['forum_id'] steht die aktuell abzufragende ForenID drinnen, aber der ganze Ausdruck gibt ebenfalls IMMER 1 bzw True zurück...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [fast erledigt] Forum sichtbarkeit?!

Beitrag von gn#36 »

Ich denke was du suchst ist eher $auth->acl_getf('recht', true); (Nachdem ich dann jetzt doch mal in die Datei gesehen habe). Das gibt dir ein Array aller Foren in denen der aktuelle User die Erlaubnis hat etwas zu tun.
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.
Megaleecher
Mitglied
Beiträge: 39
Registriert: 22.01.2009 05:38

Re: [fast erledigt] Forum sichtbarkeit?!

Beitrag von Megaleecher »

Ich habs nun so gelöst und es geht ;)

if ($auth->acl_get('f_read',$row['forum_id']) != 0)
{
//Permisson
}
else
{
//No Permisson
}

Wollte nicht extra ein ganzes Array durchgehen und mit dem vergleichen^^
Ich sag mal Danke für deine Bemühungen und noch nen schönen Abend. :)

Wenn ich schon dabei bin, dann wollt ich gleich nen "Bug" bei der Doku bekannt geben...

Dort steht $result = acl_getf_global(option)
Ich denke, dass das aber $result = $auth->acl_getf_global(option)
heißen sollte.


MfG Megaleecher
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: [komplett erledigt] Forum sichtbarkeit?!

Beitrag von nickvergessen »

Code: Alles auswählen

if ($auth->acl_get('f_read',$row['forum_id']))
{
//Permisson
}
else
{
//No Permisson
}
Das sollte so auch gehen, also ohne != 0
kein Support per PN
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [komplett erledigt] Forum sichtbarkeit?!

Beitrag von gn#36 »

Naja das ist aber eine ganze Menge mehr Vergleiche als das was ich im Sinn hatte:

Code: Alles auswählen

$allowed_forums = $auth->acl_getf('f_read', true);
$allowed_forums = array_keys($allowed_forums);
$sql = "SELECT bla FROM " . TOPICS_TABLE . " WHERE blablub AND" . $db->sql_in_set('forum_id', $allowed_forums);
Dann wird der andere Kram gar nicht erst aus der Datenbank geholt. Hat außerdem den Vorteil, dass du die Anzahl der angezeigten Einträge besser steuern kannst per LIMIT und nicht "hoffen" musst, dass du genug aus der DB holst.
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.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“