memberlist, last_login, last_action

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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
Benutzeravatar
KlassenClown
Mitglied
Beiträge: 18
Registriert: 11.01.2008 00:06
Kontaktdaten:

memberlist, last_login, last_action

Beitrag von KlassenClown »

Hallo zusammen,

es gibt ja bereits
http://www.phpbb.de/viewtopic.php?t=152667
und
http://www.phpbb.de/viewtopic.php?t=167046
doch ganz klar ist es mir /uns noch nicht. ^^

Unser Ziel, wir möchten eine weitere Spalte in der Mitgliederliste
die uns anzeigt wer sich zuletzt im Forum aktiv gezeigt hat.
(Egal ob nur lesend oder auch schreibend, es würde auch ein 'last Login' genügen)
Also bauen wir dies ein (bei uns Subsilver2 only):
Öffne: Memberlist_body.html

Code: Alles auswählen

Finde:
<th nowrap="nowrap" width="15%"><a href="{U_SORT_JOINED}">{L_JOINED}</a></th>

Danach einfügen:
<th nowrap="nowrap" width="15%"><a href="{U_SORT_JOINED}">{L_VISITED}</a></th>

Finde:
<td class="genmed" align="center" nowrap="nowrap">&nbsp;{memberrow.JOINED}&nbsp;</td>

Danach einfügen:
<td class="genmed" align="center" nowrap="nowrap">&nbsp;{memberrow.VISITED}&nbsp;</td>
Dies erzeugt eine Spalte mit dem Titel 'Letzte Anmeldung' doch noch nicht sortiert.
Ein Klick auf eben diesen Titel ergibt diesen Link
http://www.meineDomain.de/Forum/memberl ... &sk=c&sd=d
Doch die Liste die nun generiert wird ist nur scheinbar sortiert
und dies auch noch rückwärts
(also ältestes Datum zuerst, aber eben nicht wirklich komplett)

Der Versuch via
Öffne: memberlist.php

finde

Code: Alles auswählen

$default_key = 'c';
$sort_key = request_var('sk', $default_key);
$sort_dir = request_var('sd', 'a');
ersetze mit:

Code: Alles auswählen

$default_key = 'l';
$sort_key = request_var('sk', $default_key);
$sort_dir = request_var('sd', 'd');
die Default-Sortierung auf diese Spalte einzustellen
ergibt auch nicht wirklich den gewünschten Effekt.
Zusätzlich wird für alle Mitglieder die nicht einer Admingruppe angehören
diese MySQL-Fehlermeldung angezeigt:
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 'DESC LIMIT 25' at line 6 [1064]

SQL

SELECT u.user_id FROM phpbb_users u WHERE u.user_type IN (0, 3) ORDER BY DESC LIMIT 25

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 143
CALL: dbal->sql_error()

FILE: includes/db/mysqli.php
LINE: 185
CALL: dbal_mysqli->sql_query()

FILE: includes/db/dbal.php
LINE: 157
CALL: dbal_mysqli->_sql_query_limit()

FILE: memberlist.php
LINE: 1304
CALL: dbal->sql_query_limit()
Wie gesagt, ohne die Änderung an der memberlist.php
können alle eingeloggten User die Tabelle mit der neuen Spalte sehen.

Ich selbst bin ein noob in Sachen HTML, PHP, und Co.
habe jedoch tatkräftige Hilfe von einem Mitglied in meinem Forum.
Doch der schrieb mir nun folgendes:
Das Problem: Sowohl in dem / den Thread(s) von phpBB.de als auch so,
herrscht keine Allgemeine Klarheit:
Mal wird von Letzte _Aktivität_ und mal von Letzte _Anmeldung geredet.
Dies wird immer wieder durcheinander gehauen.
Es existiert gar keine Möglichkeit den "Sortierlink" für Letzte Anmeldung
zu integrieren. => es gibt kein {U_SORT_VISITED},
lediglich ein {U_SORT_ACTIVE} was wohl für letzte Aktivität steht.
Somit steht das sk=l wohl auch für letzte Aktivität und nicht letzte Anmeldung, etc. pp.
Im Endeffekt steht im Tabellenkopf "Letzte Anmeldung" in Wahrheit stehen dort aber die Daten der letzten Aktivität.
Soweit ich das überschaue...
Wer kann uns Klarheit in diese Sache bringen
und uns verraten wie es nun wirklich sein muß?
Gesucht wird:
- Lösung1 für 'letzte Anmeldung' / Deafult-Sortierung 'letzte Anmeldung auf 1'
- Lösung2 für 'letzte Aktivität' / Deafult- Sortierung 'letze Aktivität auf 1'

Wobei sich noch die Frage stellt was 'letzte Aktivität' beinhaltet?
- reicht schon ein Klick im Forum oder muß es eine weitergehende Aktion sein
die diesen Wert verändert?

Sorry für den etwas lang geratenen Post, doch ich denke
so wird es klarer wo unsere kleine Herausforderung liegt.

Im voraus vielen Danke für eure Hilfe.
der KlassenClown

--------------------------------------------------------------------
Edit by myself:
inzwischen etwas weiter gebastelt und inzwischen verstanden
wie es zu der MySQL-Fehlermeldung kam.
Doch noch ist nicht alles fein.

Code: Alles auswählen

dieses
<th nowrap="nowrap" width="15%"><a href="{U_SORT_JOINED}">{L_VISITED}</a></th>
in dieses geändert
<th nowrap="nowrap" width="15%"><a href="{U_SORT_ACTIVE}">{L_VISITED}</a></th>
Änderungen in der memberlist.php wieder rückgängig gemacht.
Folgendes Ergebnis:
Klick auf den Titel 'Letzte Anmeldung' ergibt diesen Link
http://www.MeineDomain.de/Forum/memberl ... &sk=l&sd=a
also l & a
erneuter Klick dreht die Sortierreihenfolge um
http://www.MeineDomain.de/Forum/memberl ... &sk=l&sd=d
also l & d
So weit verstanden. Aber das Ergebnis ist immer noch nicht zufrieden stellend:
  • # Letzte Anmeldung
    1 30.03.2008, 15:30
    2 30.03.2008, 15:29
    3 30.03.2008, 10:40
    4 30.03.2008, 10:04
    5 30.03.2008, 10:43
    6 29.03.2008, 13:51
    7 30.03.2008, 15:29
    8 30.03.2008, 11:35
    9 29.03.2008, 15:58
    10 29.03.2008, 15:32
    11 29.03.2008, 22:36
    12 30.03.2008, 12:01
    13 29.03.2008, 02:39
    14 28.03.2008, 23:08
    15 30.03.2008, 11:57
Datum und Uhrzeit sind nicht wirklich in gewünschter Reihefolge.
Wer weiß Rat?
Zuletzt geändert von KlassenClown am 30.03.2008 16:48, insgesamt 1-mal geändert.
Roux
Mitglied
Beiträge: 16
Registriert: 29.03.2008 19:48

Beitrag von Roux »

Wie ich im Moment den Eindruck habe, herrscht schon im Code nicht 100% Klarheit bei der Verwendung von "Visited" und "Active".
Bei {L_VISITED} schreibt er "Letzte Anmeldung" hin.
Bei {memberrow.VISITED} füllt er die Zeilen allerdings mit den Werten für die letzte Aktivität (er ändert die Werte, obwohl kein neuer Login erfolgte, sondern man nur eine Seite aufgerufen hat)

Was muss man denn da hinschreiben, damit er die Werte für "user_lastvisit" einträgt? So kommt die Frage auf: Steht der Sortierschlüssel 'l' für die Sortierung für letzte Aktivität oder letzte Anmeldung? Lt. Code müsste es ersters sein. Allerdings gibt es kein {U_SORT_VISITED}.

:-S

Roux
Antworten

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