Admin nicht im "Wer ist online"-Block anzeigen
am 24.05.2008 - 18:15 Uhr in
hi @ all,
ich fand auf drupal.org diesen beitrag: http://drupal.org/node/44567
ich möchte ebenfalls den User 1 (admin) von der "Wer ist online"-Liste verstecken. (bin mir bewusst dass man dazu ein bisschen im code was ändern muss). Leider fand ich im user.module nicht wie bei dem obigen link beschrieben die zeilen
<?php
$users = db_query('SELECT DISTINCT(uid), MAX(timestamp) AS max_timestamp FROM {sessions} WHERE timestamp >= %d AND uid != 0 GROUP BY uid ORDER BY max_timestamp DESC', time() - $time_period );
?>welche man abändern sollte.. Bei dem tipp unter obigem link geht es mit drupal 4.6, wo finde ich diesen code den ich abändern könnt in Drupal 5.7?
vielen Dank für Antworten schon im Voraus!
- Anmelden oder Registrieren um Kommentare zu schreiben

also vielleicht stelle ich
am 27.05.2008 - 21:24 Uhr
also vielleicht stelle ich die frage mal besser so:
wie kann man verhindern, dass der Administrator (User 1) im "Wer ist online"-Block angezeigt wird? Sollte doch eine Lösung geben..?
vielen dank schon im voraus für hilfreiche antworten!
mfg
den code hatte ich vor
am 04.06.2008 - 12:11 Uhr
den code hatte ich vor kurzem, wenn ich wieder drüber stolper, poste ich ihn hier.
MFG - bei Fragen, fragen!
...hab nur den Code gefunden
am 04.06.2008 - 13:18 Uhr
...hab nur den Code gefunden um den Admin nicht bei den User Profilen auflisten zu lassen
dabei muss der Code in die template.php des genutzten Themes:
<?php
function phptemplate_profile_listing($account, $fields = array()) {
if ($account->uid == 1) return '';
$output = "<div class=\"profile\">\n";
$output .= theme('user_picture', $account);
$output .= ' <div class="name">'. theme('username', $account) ."</div>\n";
foreach (
$fields as $field) {
if ($field->value) {
$output .= " <div class=\"field\">$field->value</div>\n";
}
}
$output .= "</div>\n";
return
$output;
}
?>
-------------------------
MFG - bei Fragen, fragen!
diesen code hab ich schon
am 08.06.2008 - 12:22 Uhr
diesen code hab ich schon eingebaut, aber trotzdem danke für die antwort! aber gibt es denn keine möglichkeit, bzw. hat so etwas noch niemand gemacht?? ich denke, viele community-seiten mit drupal verwenden den "wer ist online" block.. sieht wirklich unschön aus wenn dort steht "admin" ist online ^^
für weitere lösungsvorschläge trotz EM2008 wäre ich äusserst dankbar! :-)
mfg
eigentlich ist es wirklich
am 08.06.2008 - 16:30 Uhr
eigentlich ist es wirklich einfach
<?phpfunction phptemplate_user_list($users, $title = NULL) {
if (!empty($users)) {
foreach ($users as $user) {
if ($user->uid != 1) {
$items[] = theme('username', $user);
}
}
}
return theme('item_list', $items, $title);
}
?>
Das in die Template.php stecken fertig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
ok, das hat geklappt, vielen
am 08.06.2008 - 22:41 Uhr
ok, das hat geklappt, vielen dank!!!
nun wird der admin nicht mehr angezeigt :-) eine kosmetische korrektur wäre allerdings noch schön: mit diesem hinzugefügten php-code wird einfach der admin aus der "er ist online"-liste ausgeblendet, es wird aber trotzdem angezeigt, dass ein benutzer online ist, einfach der name des admins wird nicht angezeigt.. könnte man irgendwie erreichen, dass wenn sich der admin einloggt dies auch nicht als eingeloggter user angezeigt wird?
mfg
Du koenntest den User admin
am 09.06.2008 - 08:46 Uhr
Du koenntest den User admin im Array $users entfernen.
PHP: existiert der Key 1 dann entferne den Arrayeintrag.
Wenn Du das machst brauchst Du auch die Schleife nicht mehr.
Ob sich das dann aber nicht negativ an anderen Stellen auswirkt muesstest Du dabei allerdings testen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Admin aus Array $users entfernen
am 06.07.2008 - 06:10 Uhr
Super sache @ quiptime.
Kannst du mir vielleicht genauer beschreiben wie ich den Admin im Array $users entferne? Ich hab nur bisschen Ahnung von VB & VBA. Ich komme erst durch Drupal in den Genuss PHP Schnipsel zu verwenden und dabei die Sprache zu lernen.
MFG - bei Fragen, fragen!
PHP: array_key_exists() und unset()
am 06.07.2008 - 13:03 Uhr
Lass Dir mal mit
<?phpprint '<pre>';
print_r($users);
print '</pre>';
?>
den Inhalt des Array $users anzeigen damit Du sehen kannst nach welchem Array-Key Du suchen musst.
Wenn Du das weisst geht es mit der PHP-Funktion http://de3.php.net/array_key_exists weiter.
(Alternativ, wenn Du nicht auf einen einzelnen Key scharf bist kaeme noch http://de2.php.net/in_array in Frage.)
Das Entfernen kann mit der PHP-Funktion unset() erfolgen: http://de2.php.net/unset
// löscht ein einzelnes Element eines Arraysunset($users['blabla']);
Du fuehrst das unset() aber in der Template-Funktion
function phptemplate_user_list($users, $title = NULL)aus damit der User #1 nicht generell "gekillt" wird.Gib bitte Feedback ob es so funktioniert.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Ich kenn mich zwar mit
am 09.07.2008 - 11:44 Uhr
Ich kenn mich zwar mit Drupal nicht aus, aber muss man den SQL nicht einfach nur entprechend anpassen?
<?php$users = db_query('SELECT DISTINCT(uid), MAX(timestamp) AS max_timestamp FROM {sessions} WHERE timestamp >= %d AND uid != 0 GROUP BY uid ORDER BY max_timestamp DESC', time() - $time_period );
?>
AND uid != 0
ändern in
AND uid > 1
Oder liege ich da total falsch?
Prinzipiell richtig. Frage
am 09.07.2008 - 14:01 Uhr
Prinzipiell richtig. Frage ist dabei nur ob man dies ohne Modulhack tun kann. Sprich, steckt das entsprechenden SQL Statement in einer Theme Funktion?
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.