Bug: Newspage zeigt immer noch Topics aus gesperrten Foren

Alles zum Forum selbst: Lob- und Tadel, Fragen, Forenwünsche, Anregungen und Meinungen sowie Bugs. - Gästebuch

Moderator: (M) Mod.-Team Allgemein

Benutzeravatar
NightStalker
TalkING. Champion
TalkING. Champion
Beiträge: 891
Registriert: Mo, 21. Okt. 02, 20:40
Wohnort: Downloadbereich

Bug: Newspage zeigt immer noch Topics aus gesperrten Foren

Beitrag von NightStalker » Do, 26. Okt. 06, 23:57

Ben, die Newspage zeigt mal wieder nicht erreichbare Topics ("Flyer für unsere AG ..."). Als ich den Code damals für das Tillmann-Forum geschrieben hatte, hab ich ne Abhängigkeit von der Forennr. drinnegelassen. Schau dir mal das SQL-Statement an, mußt du wohl ergänzen. Ich würd's dir ja beheben, aber ich fahr morgen ganz früh weg und komm erst Sonntag wieder.

MfG,
Björn
-- Chrząszcz brzmi w trzcinie w Szczebrzeszynie.
-- 好好学习,天天向上!

Benutzeravatar
HerrSultan
Exzellenter Poster
Exzellenter Poster
Beiträge: 3115
Registriert: Mo, 07. Okt. 02, 13:12
Wohnort: Hamburg-Altona
Kontaktdaten:

Beitrag von HerrSultan » Di, 31. Okt. 06, 08:24

Wäre auch nicht verkehrt, wenn man die Themen aus dem Papierkorb aus der Überisicht herausnehmen würde. :)

Ben
Admin
Admin
Beiträge: 446
Registriert: Do, 22. Aug. 02, 11:59
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ben » Di, 31. Okt. 06, 17:16

Es soll ja so sein, dass Leute vom Racing Forum, wenn sie eingeloggt sind, ihre Beiträge sehen können. Insofern kann man nicht einfach Beiträge rausnehmen. Interessanterweise tuts bei User = ausgeloggt bzw. User = Admin genau das, was es soll.

Ich hab da gerade so auf den ersten Blick nicht wirklich als falsch identifizieren können, ich schick' dir die Datei mal per mail.

Papierkorb: Wird / soll nur angezeigt werden, wenn man eingeloggt ist. Über das grundsätzliche Entfernen könnte man mal nachdenken.

Benutzeravatar
HerrSultan
Exzellenter Poster
Exzellenter Poster
Beiträge: 3115
Registriert: Mo, 07. Okt. 02, 13:12
Wohnort: Hamburg-Altona
Kontaktdaten:

Beitrag von HerrSultan » Di, 08. Mai. 07, 14:20

Also im Moment sind da rund 7 Themen in der Übersicht (z-lastposts), die man nicht lesen kann, wenn man nicht in dieser Racing-AG ist.
Das nervt schon ein wenig, zumal viele Titel auch nicht eindeutig dieser Gruppe zuzuordnen sind.

Man müsste sie also entweder nur für Mitglieder dieser Gruppe anzeigen oder wenigstens das Forum, aus dem sie stammen, hinzufügen.

Papierkorb-Posts sollte man dort überhaupt nicht anzeigen.

Ben
Admin
Admin
Beiträge: 446
Registriert: Do, 22. Aug. 02, 11:59
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ben » Fr, 11. Mai. 07, 13:25

Ich habe gerade versucht, durch den betreffenden Code durchzusteigen:

Code: Alles auswählen

	$security=FALSE; 
	$forum_access_auth = auth(AUTH_ALL, $line['forum_id'], $userdata, ''); // added by NightStalker
	
	if($forum_auth == 2 && $userdata['user_level'] == ADMIN) { // optional - remove from here ...
		$security=TRUE; 
	} 
	if($forum_auth == 3 && ($userdata['user_level'] == ADMIN) || ($userdata['user_level'] == 2)) { 
		$security=TRUE; 
	} 							// ... to here
	if($forum_access_auth['auth_read'] && $forum_access_auth['auth_view']) // replacement by NightStalker
	{				//         "
		$security = TRUE;	//         "
	}				//         "
	
	if($security == TRUE) 
            .. Beiträge auslesen ...
Mein Problem im Moment ist nur: Ich habe irgendwie nicht herausfinden können, wofür die forum_auth- und user_level-Nummern stehen. Zum anderen verstehe ich die dritte Abfrage nicht wirklich.

Benutzeravatar
NightStalker
TalkING. Champion
TalkING. Champion
Beiträge: 891
Registriert: Mo, 21. Okt. 02, 20:40
Wohnort: Downloadbereich

Beitrag von NightStalker » Fr, 11. Mai. 07, 17:31

Ok, also ich hab leider gerade nicht die ganze Datei vorliegen, aber zu dem Codeschnipsel kann ich doch was sagen: Was die 2 und die 3 da machen, kann ich nicht ganz sicher sagen, aber es hatte wenn ich mich richtig erinnere was damit zu tun, dass es damals ein administrationsinternes Forum gab (zu dem die 2 gehört) und ein weiteres moderationsinternes (3) welche ja auch beide nicht angezeigt werden sollten. In letzteres kam die Administration natürlich auch rein. Das heißt die beiden ersten Ifs kümmern sich um diese beiden Ausnahmen. Deswegen steht da auch optional dran, weil der Teil nur bewirkt, dass die Moderatoren und Admins das auf ihrer Startseite sehen. Nimmt man es raus, merkt der normale User gar nix davon, weil für die sowieso erst das 3. If relevant ist.
So, und langer Rede kurzer Sinn, da muß man nix ändern, weil der entscheidende Teil muß irgendwo darüber stehen (ziemlich sicher auch mit Kommentar von mir). Wir hatten das ganze damals ja für das Tillmann-Forum modifiziert und der Einfachheit halber nur auf genau das abgefragt. Oben muß also irgendwo etwas stehen, wo eine Foren-ID als Nummer übergeben wird, das wird dann die des alten Tillmann-Forums sein. Dubliziert (oder auch ändert) man den Teil mit der ID des Racing-Forums (46) , sollte die Sache erledigt sein und die Beiträge sollten nicht mehr erscheinen.
-- Chrząszcz brzmi w trzcinie w Szczebrzeszynie.
-- 好好学习,天天向上!

Ben
Admin
Admin
Beiträge: 446
Registriert: Do, 22. Aug. 02, 11:59
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ben » Fr, 11. Mai. 07, 17:47

Dachte ich auch, aber weitere Regeln für besondere Foren habe ich zumindest nicht gefunden. Ich schicke dir die ganze Datei einmal per mail, vielleicht findest du die Regel ja noch!

Benutzeravatar
HerrSultan
Exzellenter Poster
Exzellenter Poster
Beiträge: 3115
Registriert: Mo, 07. Okt. 02, 13:12
Wohnort: Hamburg-Altona
Kontaktdaten:

Beitrag von HerrSultan » Fr, 11. Mai. 07, 20:37

Shadow-Topics werden da auch immer angezeigt. Irgendwie ist die Übersichtsseite allgemein etwas sehr undurchdacht. Naja bald wird alles besser. ;-)

Benutzeravatar
NightStalker
TalkING. Champion
TalkING. Champion
Beiträge: 891
Registriert: Mo, 21. Okt. 02, 20:40
Wohnort: Downloadbereich

Beitrag von NightStalker » Sa, 12. Mai. 07, 00:33

Ok nach Studium des Skriptes und Konsultation meiner e-mail von 2002 die ich dir geschickt habe nachdem ich damals die Änderungen eingebaut hatte
Also, ganz ehrlich hab ich nicht kapiert, was das Skript eigentlich macht, es sieht so aus, als ob das Skript versucht eine Benutzerüberprüfung durchzuführen, auch wenn ich keine Ahnung habe, wie das in dieser Form klappen soll. Die forum_auth-Variable wird nicht initialisiert und gehört meiner Ansicht nach auch nicht zum phpBB2 "Standard". Keine Ahnung, was die da soll. Außerdem scheint der 3. Berechtigungsfall immer zuzutreffen (weil er schon bei nicht eingeloggten Benutzern zutrifft) und macht damit ein Sicherheitskonzept eh zunichte. Dies veranlasste mich, diesen Fall herauszunehmen und eine richtige Berechtigungsabfrage zu implementieren (basierend auf dem Leserecht eines Forums, die auth_view-Abfrage beugt einen potentiellen Konfigurationsfehler seitens des Administrators vor). Diese Abfrage macht die beiden darüber aber eigentlich auch überflüssig, weil die auth-Funktion für Mods und Admins - und ich vermute mal das verbirgt sich hinter den seltsamen Abfragen darüber - sowieso Vollzugriff zurückgibt (mal davon abgesehen, dass eingeloggte Admins und Mods die Seite nicht zu sehen bekommen, da wir gar keine Rückverlinkung aus dem Forum auf die Startseite haben). Es wäre also u. U. klüger die 2 anderen if's auch rauszunehmen.

Bezüglich der Anzeige der Topics gibt es noch ein Problem, weil die Datenbankanfrage nur maximal 5 Einträge zurückliefert. Wenn man aber immer die neusten 5 nicht-gesperrten Topics haben will, muß man zwangsläufig mehr als 5 auslesen, dafür gibt's prinzipiell mehrere Möglichkeiten:
Die Möglichkeit einfach ohne Limit alle Einträge nach Zeit sortiert zurückzugeben und nur die ersten 5 anzuzeigen, erschien mir gelinde gesagt "overkill", besonders wenn das Forum sehr groß wird. Ich hab's aber ausprobiert, und es klappt sogar.
Das andere Extrem, die Zeilen einzeln auszulesen und zu vergleichen wäre darauf hinausgelaufen die Anfrage und Sorierung mehrfach vorzunehmen und zusätzlich hätte man die schon benutzten (und gesperrten) Topics überspringen müssen. Meiner Ansicht nach viel zu kompliziert und gar nicht mal unbedingt besser.

Also entschied ich mich für einen Kompromiss, nämlich nur 50 Topics auszulesen. Dabei hoffe ich allerdings, dass maximal 45 gesperrt sind (erscheint mir sehr großzügig, ist bestimmt noch nach unten korrigierbar), damit immer mindestens 5 nicht-gesperrte angezeigt werden können.

In jedem Fall muß man, wenn man mehr Topics ausliest als man nachher tatsächlich anzeigen will, einen Counter für die Anzahl der bereits angezeigten Topics einbauen. Auch das habe ich getan.

Das vorliegende Skript ist folglich allgemeingültig für alle gesperrten Foren mit der Einschränkung, dass im ganzen nicht mehr als 45 gesperrte Topics unter den neusten 50 sein dürfen. Es bei mehr als 45 gesperrten würden weniger als die geforderten 5 angezeigt. Ich denke aber, dass man sich da keine allzu große Sorgen machen muß, solange die öffentlichen Foren überwiegen.
nehme ich oben gesagtes zurück und behaupte jetzt das Gegenteil:
Anscheinend hab ich das damals sehr wohl allgemeingültig für alle gesperrten Foren gecodet und es funktionierte ja auch für das Tillmannforum. Irgendwie mußt du das wohl kaputtrepariert haben oder du hast die Rechte falsch gesetzt. Das würd ich an deiner Stelle nochmal checken.

/edit: Nun scheint es richtig zu gehen warum auch immer: Laut Forumsübersicht soll es ein Topic mit Anwort von heute geben in Racing, das zeigt er mir auf der Übersicht aber nicht an, egal ob ich eingeloggt bin oder nicht. Genaugenommen zeigt er in den letzten 5 Tagen kein einziges der Racing-Topics mehr an ...
-- Chrząszcz brzmi w trzcinie w Szczebrzeszynie.
-- 好好学习,天天向上!

Ben
Admin
Admin
Beiträge: 446
Registriert: Do, 22. Aug. 02, 11:59
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Ben » So, 13. Mai. 07, 11:03

Ohne irgendwas geändert zu haben: Zumindest bei mir funktioniert alles! Aber vielleicht ist das bei Mods oder dem "gemeinen Volk" anders.

Antworten