Sortieren der Memberliste nach letzter Aktivität für Gäste

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Antworten
bran
Mitglied
Beiträge: 7
Registriert: 13.04.2012 23:39

Sortieren der Memberliste nach letzter Aktivität für Gäste

Beitrag von bran »

Ich möchte gern meine Mitgliederliste nach der letzten Aktivität der Benutzer sortieren. Nach kurzer Recherche habe ich herausgefunden, dass hierfür der Aufrufer der Seite über die Benutzerberechtigung "Kann Profile, die Mitglieder- und die Wer-ist-online-Liste ansehen" besitzen muss.

Die Template-Variable "U_SORT_ACTIVE" ist daraufhin gesetzt. Im PHP-Quellcode ist die Vorraussetzung hierfür, dass

Code: Alles auswählen

$auth->acl_get('u_viewonline')
eine 1 zurückgibt. (Im Template kann diese Zeile direkt über "S_VIEWONLINE" abgefragt werden.) Mit Ausnahme des Gastaccounts funktioniert dies auch einwandfrei. Dennoch, wenn man nicht angemeldet ist, wird 0 zurückgegeben und entsprechend erzeugt eine Sortierung nach letzter Aktivität einen SQL-Abfrage-Fehler. Wenn ich in der Datei "includes/auth.php" in der Methode "auth->acl_get($opt, $f = 0)" für den Parameter "$opt == 'u_viewonline'" eine 1 als Rückgabe erzwinge funktioniert dass zwar einwandfrei, allerdings würde ich nur ungern auf eine solchen Hack zurückgreifen.

Hier noch mal die Einstellungen meines Gast-Accounts:
[ externes Bild ]

Mein Frage ist nun, ob ich noch eine weitere Berechtigung für den Gast-Account setzen muss, damit "S_VIEWONLINE" auch für Gäste "true" wird?
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Sortieren der Memberliste nach letzter Aktivität für Gäs

Beitrag von modernist »

Wenn auch die Gäste sortieren dürfen, dann darf doch eigentlich jeder bei dir das Feature nutzen, oder?

Dann könntest du <!-- IF U_SORT_ACTIVE --> <!-- ENDIF --> im Prinzip auch ganz entfernen, so das dort nur noch

Code: Alles auswählen

<th class="active"><a href="{U_SORT_ACTIVE}#memberlist">{L_LAST_ACTIVE}</a></th>
steht.
bran
Mitglied
Beiträge: 7
Registriert: 13.04.2012 23:39

Re: Sortieren der Memberliste nach letzter Aktivität für Gäs

Beitrag von bran »

Das war auch meine erste Idee, klappt aber leider nicht. Wie oben bereits geschrieben, erscheint dann ein SQL-Fehler. Die Meldung lautet:
Allgemeiner Fehler
SQL ERROR [ mysqli ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC LIMIT 25' at line 6 [1064]

Beim Laden der Seite ist ein SQL-Fehler aufgetreten. Bitte kontaktiere die Board-Administration, falls dieses Problem fortlaufend auftritt.
Das passiert irgendwo im PHP-Code, wenn "auth->acl_get('u_viewonline')" gleich 0 ist. Der Wert wird an mehreren Stellen abgefragt, ich hab nicht untersucht, wo genau es auftritt. Wie oben bereits geschrieben kann ich das vermeiden, indem ich die Methode zwinge, für diesen Parameter 1 zurückzugeben. Aber ich würde eben gerne ohne so einen fiese Trick auskommen. Möglicherweise ist der Gastaccount noch irgendeiner Gruppe zugeordnet oder so was in der Art. Aber eigentlich bin ich mir ziemlich sicher, dass ich inzwischen für alle das obige Recht gesetzt habe und ich vermute eigentlich auch, dass bei der Anzeige in dem oben verlinkten Bild die Einstellungen der Gruppen des Benutzers mit ausgewertet wurden. Vielleicht gibt es auch noch eine Globale Einstellung, die dafür sorgt, dass Gäste diese Funktion nicht nutzen dürfen.
modernist
Ehemaliges Teammitglied
Beiträge: 2202
Registriert: 12.01.2009 10:44

Re: Sortieren der Memberliste nach letzter Aktivität für Gäs

Beitrag von modernist »

Ich habe das jetzt mal einer lokalen phpbb 3.0.10-Installation mit prosilver ausprobiert. Das klappt, allerdings muß man an 3 Stellen Code ändern.

Code: Alles auswählen

			<!-- IF U_SORT_ACTIVE --><th class="active"><a href="{U_SORT_ACTIVE}#memberlist">{L_LAST_ACTIVE}</a></th><!-- ENDIF -->

Code: Alles auswählen

			<!-- IF U_SORT_ACTIVE --><th class="active"><a href="{U_SORT_ACTIVE}#memberlist">{L_LAST_ACTIVE}</a></th><!-- ENDIF -->

Code: Alles auswählen

		<!-- IF S_VIEWONLINE --><td>{memberrow.VISITED}&nbsp;</td><!-- ENDIF -->
Hier jeweils die <!-- IF... --><!-- ENDIF --> Teile entfernen.

Und für die Gästegruppe muß natürlich "Kann Profile, die Mitglieder- und die Wer-ist-online-Liste ansehen" auf Ja stehen.
Wenn die Gästegruppe das Recht nicht hat, wird ganz normal die Anmeldemaske beim Aufruf der Mitgliederliste angezeigt.

Dein Problem dürfte also andere Ursachen (MODs?) haben. Aber welche, weiß ich leider auch nicht. :-?
bran
Mitglied
Beiträge: 7
Registriert: 13.04.2012 23:39

Re: Sortieren der Memberliste nach letzter Aktivität für Gäs

Beitrag von bran »

MODs hab ich derzeit noch keine Installiert, aber es kann natürlich sein, dass eine meiner Änderungen das Problem bewirkt. Herzlichen Danke für deine Hilfe, ich werde es ebenfalls mal gegen eine frische Installation vergleichen, wenn du sagst, dass es dort funktioniert. Kann noch eine Weile dauern, bis ich dazu komme, im Moment bin ich grad anderweitig beschäftigt. Ich würde dann noch mal schreiben sobald ich es geschafft habe :)
bran
Mitglied
Beiträge: 7
Registriert: 13.04.2012 23:39

Re: Sortieren der Memberliste nach letzter Aktivität für Gäs

Beitrag von bran »

Hab eben rausgefunden wo das Problem lag. Nachdem auch eine frische Installation das gleich Verhalten zeigte, habe ich noch mal gesucht und herausgefunden, dass folgendes Recht für den Gastaccount ebenfalls gesetzt werden muss:

ACP --> Benutzer und Gruppen --> Gruppenrechte --> Administratoren --> Erweiterte Berechtigungen --> Diverses
"Kann auch unsichtbare Benutzer online sehen" auf "Ja" stellen.

In gewisser Weise ist dass auch logisch, denn die Anzeige der letzten Aktivität verrät natürlich ob jemand online war. Dennoch erschließt sich mir nicht vollständig warum ein Zusammenhang mit diesem Recht besteht. Mein Problem ist damit jedenfalls gelöst, noch einmal herzlichen Dank für die Hilfe!
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“