Übersicht der Personen, die gerade Online sind
Übersicht der Personen, die gerade Online sind
Hallo zusammen,
ich (Alex) bin hier sehr neu und eher durch einen Zufall auf Admidio gestoßen. Ich bin restlos begeistert und finde es super! Vielen vielen Dank dafür.
Nun habe ich eine Frage... ist es möglich, irgendwo zu sehen, wer wann online war?
Vielen Dank für eine Info,...
Alex
ich (Alex) bin hier sehr neu und eher durch einen Zufall auf Admidio gestoßen. Ich bin restlos begeistert und finde es super! Vielen vielen Dank dafür.
Nun habe ich eine Frage... ist es möglich, irgendwo zu sehen, wer wann online war?
Vielen Dank für eine Info,...
Alex
Hallo Pendagon,
bisher gibt es keine Möglichkeit das letzte Online-Datum auszuwerten. Dieses wird zwar in der Datenbank mit gespeichert jedoch aber nicht angezeigt. Man müsste hierzu entweder direkt auf die datenbank sehen (was aber für regelmäßige Besuche unpraktisch ist) oder Du müsstest dafür eine separate Liste schreiben.
Wie das geht ist in dem Thread von Ise http://forum.admidio.org/viewtopic.php?t=2528 beschrieben. Die Tabelle hierfür lautet adm_users
Gruß
Bettes
bisher gibt es keine Möglichkeit das letzte Online-Datum auszuwerten. Dieses wird zwar in der Datenbank mit gespeichert jedoch aber nicht angezeigt. Man müsste hierzu entweder direkt auf die datenbank sehen (was aber für regelmäßige Besuche unpraktisch ist) oder Du müsstest dafür eine separate Liste schreiben.
Wie das geht ist in dem Thread von Ise http://forum.admidio.org/viewtopic.php?t=2528 beschrieben. Die Tabelle hierfür lautet adm_users
Gruß
Bettes
Hallo nochmals,
ich habe nochmal nachgedacht: Das passende SQL-Statement sollte wie folgt lauten:
Gruß
Bettes
ich habe nochmal nachgedacht: Das passende SQL-Statement sollte wie folgt lauten:
Code: Alles auswählen
$sql = "SELECT usr_id, row3id19.usd_value, row4id20.usd_value, usr_last_login, usr_login_name
FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. "
LEFT JOIN adm_user_data row3id19 ON row3id19.usd_usr_id = usr_id AND row3id19.usd_usf_id = 19
LEFT JOIN adm_user_data row4id20 ON row4id20.usd_usr_id = usr_id AND row4id20.usd_usf_id = 20
WHERE rol_id = 2
AND mem_begin <= '".DATE_NOW."'
AND mem_end > '".DATE_NOW."'
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_org_id = 1
AND mem_rol_id = rol_id
AND mem_usr_id = usr_id
AND usr_valid = 1
AND usr_login_name is not null
ORDER BY usr_id ASC";
$result = $g_db->query($sql);
Bettes
hallo pendagon,
ich habe nochmals ein wenig ausprobiert, da mich diese Fragestellung durchaus auch interessiert. Ingesamt müsste die Liste dann wie folgt codiert werden:
Die Liste funktioniert soweit, benötigt aber eine separate css - bei mir die listen.css kann aber natürlich auch jede andere sein.
Ich habe bei dem Code nur noch ein Problem, bei dem ich von den Programmierern Hilfe brauche.
Ich möchte diese Liste immer separat aufrufen, allerdings soll bei fehlendem Login noch die Login-Maske erscheinen - sind ja schließlich nicht unbedingt öffentliche daten die da ausgewertet werden. Nach dem login die Liste dann aufgerufen werden. Wie kann und sollte in diesem Falle die Codierung vorgenommen werden?
Gruß
Bettes
ich habe nochmals ein wenig ausprobiert, da mich diese Fragestellung durchaus auch interessiert. Ingesamt müsste die Liste dann wie folgt codiert werden:
Code: Alles auswählen
<link rel="stylesheet" type="text/css" href="http://deine_domäne.de/adm_themes/classic/css/listen.css" />
<script type="text/javascript" src="http://deine_domäne.de/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="http://deine_domäne.de/adm_program/system/js/common_functions.js"></script>
</head>
<body>
<?php
include_once($_SERVER['DOCUMENT_ROOT']. "/adm_program/system/common.php");
// USD_USF_ID 19 = Name *** ist je nach Installation unterschiedlich
// USD_USF_ID 20 = Vorname *** ist je nach Installation unterschiedlich
// Ermittlung der Daten für die gesamte Datenbank //
// Die Einschränkung der Where Bedingung usr_login_name is not null zeigt nur Mitglieder mit einer gültigen Anmeldung
$sql = "SELECT usr_id, row3id19.usd_value, row4id20.usd_value, usr_last_login, usr_login_name
FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. "
LEFT JOIN adm_user_data row3id19 ON row3id19.usd_usr_id = usr_id AND row3id19.usd_usf_id = 19
LEFT JOIN adm_user_data row4id20 ON row4id20.usd_usr_id = usr_id AND row4id20.usd_usf_id = 20
WHERE rol_id = 2
AND mem_begin <= '".DATE_NOW."'
AND mem_end > '".DATE_NOW."'
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_org_id = 1
AND mem_rol_id = rol_id
AND mem_usr_id = usr_id
AND usr_valid = 1
AND usr_login_name is not null
ORDER BY usr_last_login desc,usr_id ASC";
$result = $g_db->query($sql);
// Wenn die Ausgabe der Abfrage als SQL-Select erfolgen soll, dann Kommentierung entfernen
// echo $sql; exit();
// Ab hier erfolgt Aufbereitung der Ergebnisliste
// Erst mal der Kopf
echo '<table id="ListTable" width="100%">';
echo '<tr >';
echo '<td class="ListHeader" colspan="4" align="center">Anmeldestatistik</td>';
echo '</tr>';
echo '<tr >';
echo '<td class="ListSubHeader">Name</td>';
echo '<td class="ListSubHeader">Vorname</td>';
echo '<td class="ListSubHeader">Benutzername</td>';
echo '<td class="ListSubHeader">letzter Login</td></tr>';
$listrowstyle = "ListhighList";
while($row = $g_db->fetch_array($result))
{
if ($listrowstyle =="ListhighList")
{
$listrowstyle = "ListlowList";
}
else $listrowstyle ="ListhighList";
//Hier wird das Userobjekt erzeugt welches die Informationen über den User sammelt
$user = new User($g_db, $row['usr_id']);
$usr_id = $row['usr_id'];
$usr_lastname = $user->getValue("Nachname");
$usr_name = $user->getValue("Vorname");
// Umwandlung des Login-Datums in deutsche Schreibweise
$usr_last_login = mysqldatetime('d.m.y',$row['usr_last_login']);
$usr_username = utf8_encode($row['usr_login_name']);
echo '<tr><td class="'.$listrowstyle.'">'.$usr_lastname.'</td>';
echo '<td class="'.$listrowstyle.'">'.$usr_name.'</td>';
echo '<td class="'.$listrowstyle.'">'.$usr_last_login.'</td>';
echo '<td class="'.$listrowstyle.'">'.$usr_username.'</td></tr>';
}
// Und hier schließen wir wieder die Tabelle
echo '</table>';
?>
</body>
Ich habe bei dem Code nur noch ein Problem, bei dem ich von den Programmierern Hilfe brauche.
Ich möchte diese Liste immer separat aufrufen, allerdings soll bei fehlendem Login noch die Login-Maske erscheinen - sind ja schließlich nicht unbedingt öffentliche daten die da ausgewertet werden. Nach dem login die Liste dann aufgerufen werden. Wie kann und sollte in diesem Falle die Codierung vorgenommen werden?
Gruß
Bettes
-
- Former team member
- Beiträge: 1087
- Registriert: 2. Sep 2007, 17:12
- Wohnort: Itzstedt
- Kontaktdaten:
Moin Bettes,bettes hat geschrieben:Ich möchte diese Liste immer separat aufrufen, allerdings soll bei fehlendem Login noch die Login-Maske erscheinen - sind ja schließlich nicht unbedingt öffentliche daten die da ausgewertet werden. Nach dem login die Liste dann aufgerufen werden. Wie kann und sollte in diesem Falle die Codierung vorgenommen werden?
einfach im Kopf der PHP Datei das Login mit einbinden:
Code: Alles auswählen
require_once($g_root_path.'adm_program/system/login_valid.php');
Gruss,
Matze
Hallo bettes,
Um die Seite durch ein Login zu sichern musst du nur folgende Zeile in deinen Code einfügen:
Sofern du aber möchtest, dass nur der Webmaster oder eine definierte Rolle auf die Webseite zugreifen darf, so kannst du immer noch folgende IF-Schlaufe einfügen:
Gruss
Ise
Um die Seite durch ein Login zu sichern musst du nur folgende Zeile in deinen Code einfügen:
Code: Alles auswählen
require_once("../../system/login_valid.php");
Code: Alles auswählen
if($g_current_user->isWebmaster() || hasRole("Leiter") == true)
Ise
Hallo Matze, hallo Ise,
Danke für den Hinweis. Das hatte ich auch vorab schon probiert, jedoch blieb dann die Seite leer und es erschien auch keine Login-Maske.
Und eine parallele Anmeldung in einem anderen Tab führt auch nicht zum Erfolg.
Stylesheet, jquery und common_functions werden korrekt eingebunden.
Es muss also noch an etwas anderem liegen. Vielleicht weiß ja jemand Rat?
Gruß
Bettes
Danke für den Hinweis. Das hatte ich auch vorab schon probiert, jedoch blieb dann die Seite leer und es erschien auch keine Login-Maske.
Und eine parallele Anmeldung in einem anderen Tab führt auch nicht zum Erfolg.
Stylesheet, jquery und common_functions werden korrekt eingebunden.
Es muss also noch an etwas anderem liegen. Vielleicht weiß ja jemand Rat?
Gruß
Bettes
-
- Former team member
- Beiträge: 1087
- Registriert: 2. Sep 2007, 17:12
- Wohnort: Itzstedt
- Kontaktdaten:
Login-Maske erscheint weiterhin nicht
Hallo nochmals,
auch wenn ich mit matze über pn in Kontakt stehe, wollte ich nochmal mein Problem hier schildern.
Ich habe die o.g. Liste nun zusätzlich mit der funktion login_valid versehen:
Wenn ich meine Anmeldung mit dem Merkmal "angemeldet bleiben" versehe, dann erhalte ich eine Listausgabe. Bin ich aber auf einem parallelen Tab ausgeloggt, dann bleibt die separate Liste leer.
Es erscheint weder die login-maske noch irgendeine andere Reaktion. Im HTML-Code ist zu erkennen, dass der Header korrekt geschrieben wurde, jedoch der Body bleibt leer.
Mein Wunsch ist es bei fehlender Anmeldung, dass die Login-Maske erscheint und nach Anmeldung zur Liste zurückgekehrt wird.
Wo kann das Problem noch liegen?
Gruß
Bettes
auch wenn ich mit matze über pn in Kontakt stehe, wollte ich nochmal mein Problem hier schildern.
Ich habe die o.g. Liste nun zusätzlich mit der funktion login_valid versehen:
Code: Alles auswählen
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Letzte Anmeldung</title>
<link rel="stylesheet" type="text/css" href="http://meine_domäne.de/adm_themes/classic/css/listen.css" />
<script type="text/javascript" src="http://meine_domäne.de/adm_program/libs/jquery/jquery.js"></script>
<script type="text/javascript" src="http://meine_domäne.de/adm_program/system/js/common_functions.js"></script>
</head>
<body>
<?php
include_once($_SERVER['DOCUMENT_ROOT']. "/adm_program/system/common.php");
require_once($_SERVER['DOCUMENT_ROOT']."/adm_program/system/login_valid.php");
...
Es erscheint weder die login-maske noch irgendeine andere Reaktion. Im HTML-Code ist zu erkennen, dass der Header korrekt geschrieben wurde, jedoch der Body bleibt leer.
Mein Wunsch ist es bei fehlender Anmeldung, dass die Login-Maske erscheint und nach Anmeldung zur Liste zurückgekehrt wird.
Wo kann das Problem noch liegen?
Gruß
Bettes