User zuletzt online Block?
Eingetragen von autoberater (174)
am 01.09.2009 - 19:07 Uhr in
am 01.09.2009 - 19:07 Uhr in
Hallo!
Frage 1:
Ich möchte gern einen Block auf jedem Benutzerprofil erstellen, der mir anzeigt wann der Benutzer zuletzt online war!
Frage 2:
Wie kann man eine Seite/Blog erstellen, der mir alle Benutzer anzeigt die online sind?
Den Block "Wer ist online" benutze schon, kann aber aus Platzgründen die Lange nicht mehr als 10 Personen machen.
Ein "Weiter" Schalter im "Wer ist Online Block" wäre gut.
Wie kann man das realisieren?
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo autoberater, ich
am 01.09.2009 - 19:19 Uhr
Hallo autoberater,
ich empfehle dir einen Blick auf das Modul Views. Dort kannst du dir User-Listen nach Herzenslust und -list erzeugen lassen.
Sowohl eine Liste aktuell eingeloggter User, als auch das letzte Login-Datum eines Users basierend auf der URL (User-ID) kannst du so genereiren lassen.
Sag bescheid, wenn es Fragen im Detail gibt.
Grüße, Ronald
--
www.drupalizers.de
Reinblau eG
Danke, ich habe bereits eine
am 01.09.2009 - 19:29 Uhr
Danke, ich habe bereits eine Benutzersuche mit views erstellt.
Suche nach Wohnort, Alter, Name...
Aber zum Online Status habe ich nichts gefunden.
Wo finde ich den Online Status als Filter und Feld?
autoberater schrieb Wo
am 01.09.2009 - 19:37 Uhr
Wo finde ich den Online Status als Filter und Feld?
Der Online Status errechnet sich aus dem letzten Zugriff des Benutzers - 15 min. Übrigens auch im Block "Wer ist online", was man dort aber konfigurieren kann. Du kannst also selbst entscheiden, wie lange du jemanden als online wähnst. Um es etwas eleganter zu machen (und die explizit abgemeldeten Benutzer richtig zu betrachten), kannst du das Modul http://drupal.org/project/user_stats benutzen, dass die entsprechenden Werte für Views bereitstellt.
Grüße, Ronald
--
www.drupalizers.de
Reinblau eG
Who's online Block - View zum importieren
am 01.09.2009 - 19:46 Uhr
Who's online Block - View zum importieren.
Viel Spass mit dem Block.
------------------------
Quiptime Group
Da geht noch was.
@ quiptime: Der Block bzw.
am 01.09.2009 - 20:09 Uhr
@ quiptime:
Der Block bzw. die Seite zeigt ja immer 10 mal meinen Status an und nicht die anderen Mitglieder?
Na denkst Du ich liefere Dir
am 01.09.2009 - 22:53 Uhr
Na denkst Du ich liefere Dir eine komplett fertige Loesung ohne Denkleistung Deinerseits?
Der View zum Importieren soll Dir zeigen wie Du ansetzen kannst um solch einen Block als View zu erstellen - vor allem das Zusammenspiel zwischen Block und Seitenanzeige.
Loesung
Erstelle Dir einen neuen View.
Wichtig: Dabei gleich beim Erstellen den View Typ "User" waehlen.
Um nun die online User in den Block zu kriegen brauchst Du einen entsprechenden Filter.
Der Trick bei diesem Filter ist, Du filterst auf den Usernamen und waehlst als Option den Usernamen aus den Du nicht angezeigt haben willst.
Es ist der Gast-User. Wie der in Deinem Drupal heisst weiss ich nicht. Bei einer Standard Drupal Installation ist es Anonymous.
Mit diesem Filter werden nun also alle User angezeigt die nicht Gast sind - unabhaengig von ihrem Login Status.
Jetzt muss man noch die aktiven/eingeloggten User filtern.
Dabei nicht nach "Last login" sondern nach "Last access" filtern.
In diesem Filter als Operator "Is not between" und als Value type "An offset from the current time such as ..." waehlen.
Und nun wird es etwas schwer zu verstehen wie man die Zeitspanne waehlen soll.
Als hilfreich erweist sich, bei den anzuzeigenden Feldern das Feld "Last access" anzeigen zu lassen.
Schlussendlich bin ich bei diesen beiden Filtern gelandet.
User: Name <> Anonymous
User: Last access not between now -0 minutes and -3 minutes
Mit der 2. Zeit, den -3 minutes, kann man variieren. Wobei nach meinen Tests -3 minutes die kleinste Zeit ist. Ab -2 minutes werden die aktiven User nicht mehr angezeigt.
Ob man bei den -0 minutes alternativ +0 minutes verwendet ist Wurst.
Alles klar?
======== Suchbegriffe =============
who's wer ist online block views
------------------------
Quiptime Group
Da geht noch was.
Ok! Danke! Hab jetzt eine
am 02.09.2009 - 10:30 Uhr
Ok! Danke!
Hab jetzt eine Seite und eine Benutzersuche erstellt, die mir
alle Benutzer die Online sind anzeigt.
Nun hätte ich gern noch einen Block auf jeden Benutzerprofil, der mir anzeigt wann der Nutzer zuletzt online war.
Das Problem ist, dass es bei der Abfrage immer nur mich anzeigt und nicht die Zeit von dem Benutzer.
Wie bekomme ich abhängig von dem Benutzer auf dem Profil diese Anzeige hin?
Ein View allein kann nicht
am 02.09.2009 - 11:14 Uhr
Ein View allein kann nicht auf die ID irgend eines Users filtern. Einen solchen Filter gibt es nicht.
Man muss anders vorgehen. Die View-Ansicht benoetigt ein Argument - die User ID. Dieses Argument wird der View-Ansicht bekannt gemacht. Solch ein Argument wirkt wie ein Filter und deswegen braucht man in einer solchen View-Ansicht auch keinen Filter der auf User etc. filtert.
Damit man solch einen Views-Block mit einer ID ansprechen kann um ihn zu zeigen reicht es nicht diesen Block als Views-Ansicht zu erstellen. Denn durch das Einblenden dieses Blockes in der Blockadministration wird dieser Views-Ansicht ja kein Argument (eine User ID) uebergeben.
Eine der moeglichen Vorgehensweisen (ein Mini-Panel kann das auch):
Man braucht einen in der Blockadministration selbst erstellten neuen/leeren Block.
Dieser Block bekommt Inhalt. Inhalt mit dem Eingabeformat PHP Code. In diesem PHP Code kann man den View einbetten und dabei die ID des User als Argument an den View schicken.
Weiterhin muss man organisieren das der Block nur angezeigt wird wenn ein User-Account angezeigt wird. Dies wird ueber die Sichtbarkeitssteuerung des Block gemacht.
Hier auch auf PHP Code umschalten. In diesem PHP Code die aktuelle URL pruefen. Wenn sie dem Muster user/5 entspricht wird TRUE zurueckgegeben.
Durch diese Pruefung ergibt sich der Zusammenhang mit dem eingebetteten View. Denn nur wenn eine URL nach dem Schema user/5 aktuell ist hat man eine User ID zur Verfuegung um sie an den View zu schicken.
Die View-Ansicht selbst muss noch so konfiguriert werden das sie bei fehlendem Argument nichts anzeigt.
------------------------
Quiptime Group
Da geht noch was.
Die Frage ist nur, mit
am 02.09.2009 - 13:15 Uhr
Die Frage ist nur, mit welchem php Code man die Uid an das View schickt und das view einbettet.
Ich habe das Modul user_stats drin, hilft mir das?