Suche/Möchte gerne eine "Wer war online" Funktion

Started by MrPM, October 14, 2006, 08:19:57 AM

Previous topic - Next topic

MrPM

Hallo!

Ich möchte unter meinem Board eine Funktion, die anzeigt wer "Heute" schon alles Online war.


Wo finde ich so etwas?
Wie kann ich so etwas erstellen?


Michael


MrPM

Danke

Habe für meine Forum Version 1.0.8 diese gefunden -> http://mods.simplemachines.org/index.php?mod=479

Ich habe diesen Mod mit dem Paket-Manager hochgeladen und weiss nicht wie es weitergehen soll?

Die Daten für den FTP-Server habe ich eingegeben - Ob es erfolgreich war, kann ich leider nicht sagen.

Im Forum habe ich die Funktion noch nicht gesehen.




Michael

Mandala

Ui, also dieses Mod habe ich nicht benutzt und möchte dir auch nichts falsches dazu sagen.
Ich hab dir die Modadresse rausgesucht, weil ich es gestern erst bei mir eingebaut habe.
Vielleicht musst du dann doch noch mal auf einen SMF-Kenner warten. Ich möchte nämlich nicht die Verantwortung für etwas tragen, wovon ich wenig Ahnung habe  :D

Aber so wie es aussieht musst du nur den Schritten folgen..also die fehlenden Daten eintragen.

Gruß *maren*

dieter4

Die Rechte für die zu verändernden Dateien müssen CHMOD777 sein. ehe dafür einfach über deien FTP-Client auf den Server und gib den entsprechenden Dateien CHMOD777.

MrPM

Für die 3 Dateien die oben angeführt werden, habe ich die Rechte auf 777 gesetzt.

Es tut sich nichts


Kommt eine spezielle Meldung, wenn das Paket erfolgreich installiert worden ist?


Michael

dieter4

Eigentlich sollte Nach einer Installation SMF sagen, dass die Installation erfolgreich war und die Änderungen jetzt benutzen kann.

MrPM

Danke

Aber wo das Problem liegen könnte, weiss zufällig keiner?


Michael

noex

Blöde Frage, aber die FTP Informationen hast du schon ausgefüllt und auf fortsetzten geklickt?
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

MrPM

Ja, das habe ich gemacht. Ich werde es nochmal versuchen.


Michael

MrPM

Leider hat es zum x mal nicht geklappt.

Der Mod soll ja englisch sein. Hta es nicht zufällig damit zu tun, dass mein Forum in Deutsch ist?


Michael

busymouse

Hi MrPM,

ich kenne mich mit 1.0.8 leider überhaupt nicht aus. Es wäre auch schön, wenn du beschreiben könntest, an welcher Stelle erstmals ein Fehler auftaucht. Ich habe dich jetzt so verstanden:

Du hast das Mod installiert und auch angeklickst, dass du das Mod verwenden willst, dann hast du diese "777" eingetragen und dann passiert was? Die Anzeige erscheint nicht, die du haben möchtest?

Ich denke, das könnte durchaus etwas mit der Sprache zu tun haben. Mir wurde (anderer Mod, gleiche Funktion, habe 1.1 RC3) bei ähnlicher Frage - eine Anzeige erfolgte zwar, aber der Text fehlte - empfohlen, den entsprechenden Part aus der Modifications.english.php in die Modifications.german.php einzutragen. Danach funktionierte bei mir alles. Wahlweise könnte ich mir bei dir auch vorstellen, dass du den Part aus der index.english.php in die index.german.php eintragen musst. Wie gesagt, alle Aussagen ohne Garantie. Ich habe eigentlich keinen wirklichen Plan von dem, was ich hier tue.

Versuche es einfach mal. Den vorherigen Status kannste ja immer noch wieder herstellen, wenn es nichts bringt.

:D LG busymouse
"Tu erst das Notwendige, dann das Mögliche, und plötzlich schaffst du das Unmögliche..." (Franz von Assisi, 1182-1226)

MrPM

Da es bei Dir um ein anderes Problem handelt, lasse ich den Versuch bleiben.

Wenn ich auf Fortsetzen klicke (Die Daten sind auf jeden Fall zu 100% richtig eingegeben)
dann erscheint die Seite, welche ich oben schon als Bild eingefügt habe.

Kann es sein, dass localhost nicht richtig ist? SMF ist bei mir im Unterordner /smf/


Michael

MrPM

Bis jetzt hat es noch immer nicht geklappt?

Ich finde es schade, dass diese Funktion nicht miteingebaut ist. Gibt es dies dann im neuen Release?

Wann kommt die neue offizielle Version raus?


Michael

noex

Quote from: MrPM on October 18, 2006, 12:56:03 PM
Bis jetzt hat es noch immer nicht geklappt?
Dann würde ich dir empfehlen den Mod manuell zu installieren.

Quote from: MrPM on October 18, 2006, 12:56:03 PM
Ich finde es schade, dass diese Funktion nicht miteingebaut ist. Gibt es dies dann im neuen Release?
Glaube ich kaum das dies in der Final integriert ist.

Quote from: MrPM on October 18, 2006, 12:56:03 PM
Wann kommt die neue offizielle Version raus?
Dazu gibt es keine Angabe!
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

MrPM

Quote
Dann würde ich dir empfehlen den Mod manuell zu installieren.

Wenn ich nur wüsste, wie das gehen würde?

noex

Entpacke dir mal das Paket, dort solltest du eine *.xml Datei finden, darin findest du Informationen in welcher Datei du nach was suchen musst und was du dann ersetzten / hinzufügen musst. Aber bitte vorher deine Daten sichern!

lg
noex
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

MrPM

#17
So, danke jetzt habe ich wieder Zeit für die Administration.

Also ich habe die install.xml geöffnet und lese da folgendes:


<?xml version="1.0" ?>
  <!DOCTYPE modification (View Source for full doctype...)>
- <modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
  <id>steveinhouston:usersactive24</id>
  <version>1.0</version>
- <file name="$sourcedir/BoardIndex.php" error="fatal">
- <operation error="fatal">
- <search position="after" regexp="false" whitespace="exact">
- <![CDATA[ // Track most online statistics?
  ]]>
  </search>
- <add>
- <![CDATA[   
// Load the users online last 24 hours.
$time_24hours_ago = time() - 86400;   // 86400 is 24 hours in Unix time
$result = db_query("
SELECT
mem.ID_MEMBER, mem.lastLogin, mem.realName, mem.memberName, mem.showOnline,
mg.onlineColor, mg.ID_GROUP, mg.groupName
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP)) WHERE lastLogin > '".$time_24hours_ago."' ORDER BY realName ASC", __FILE__, __LINE__);

$context['users_online_last24'] = array();
$context['list_users_online_last24'] = array();
$context['online_groups_last24'] = array();
while ($row = mysql_fetch_assoc($result))
{
     if (!empty($row['showOnline']) || allowedTo('moderate_forum'))
{
// Some basic color coding...
if (!empty($row['onlineColor']))
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '" style="color: ' . $row['onlineColor'] . ';">' . $row['realName'] . '</a>';
else
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>';

$context['users_online_last24'][$row['lastLogin'] . $row['memberName']] = array(
'id' => $row['ID_MEMBER'],
'username' => $row['memberName'],
'name' => $row['realName'],
'group' => $row['ID_GROUP'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => $link,
'hidden' => empty($row['showOnline']),
);

$context['list_users_online_last24'][$row['lastLogin'] . $row['memberName']] = empty($row['showOnline']) ? '<i>' . $link . '</i>' : $link;

if (!isset($context['online_groups'][$row['ID_GROUP']]))
$context['online_groups_last24'][$row['ID_GROUP']] = array(
'id' => $row['ID_GROUP'],
'name' => $row['groupName'],
'color' => $row['onlineColor']
);
}
}
mysql_free_result($result);

        $context['num_users_online_last24'] = count($context['users_online_last24']);

   
  ]]>
  </add>
  </operation>
  </file>
- <file name="$themedir/BoardIndex.template.php" error="fatal">
- <operation error="fatal">
- <search position="after" regexp="false" whitespace="exact">
- <![CDATA[ // If they are logged in, but SP1 style information is off... show a personal message bar.
  ]]>
  </search>
- <add>
- <![CDATA[   

// "Users online in last 24 hours" - in order of realName.
echo '
<tr>
<td class="catbg" colspan="2">', $txt['users_online_last24'], '</td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center">
<a href="', $scripturl, '?action=who">
<img src="', $settings['images_url'], '/icons/online.gif" alt="', $txt['users_online_last24'], '" border="0" /></a>
</td>
<td class="windowbg2" width="100%">
<u>', $context['num_users_online_last24'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'], '</u><br />
<span class="smalltext">';

// Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
if (!empty($context['users_online_last24']))
echo implode(', ', $context['list_users_online_last24']);

echo '
</span>
</td>
</tr>';

   
  ]]>
  </add>
  </operation>
  </file>
- <file name="$languagedir/index.english.php" error="fatal">
- <operation error="ignore">
- <search position="after" regexp="false" whitespace="exact">
- <![CDATA[ ?>
  ]]>
  </search>
- <add>
- <![CDATA[ $txt['users_online_last24'] = 'Users Active in Last 24 Hours';

  ]]>
  </add>
  </operation>
  </file>
  </modification>



Heißt das jetzt, ich muss in der Datei boardIndex.php Daten reinschreiben?
Wenn ja, wo?

dieter4

In die BoardIndex.php, die BoardIndex.template.php und die index.english.php die entsprechenden Teile.

MrPM

Hallo!

Also, ich habe jetzt die boardindex.php geöffnet. An welcher Stelle muss ich den Code einfügen? Ganz unten?

Diesen Code hier?


// Load the users online last 24 hours.
$time_24hours_ago = time() - 86400;   // 86400 is 24 hours in Unix time
$result = db_query("
SELECT
mem.ID_MEMBER, mem.lastLogin, mem.realName, mem.memberName, mem.showOnline,
mg.onlineColor, mg.ID_GROUP, mg.groupName
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP)) WHERE lastLogin > '".$time_24hours_ago."' ORDER BY realName ASC", __FILE__, __LINE__);

$context['users_online_last24'] = array();
$context['list_users_online_last24'] = array();
$context['online_groups_last24'] = array();
while ($row = mysql_fetch_assoc($result))
{
     if (!empty($row['showOnline']) || allowedTo('moderate_forum'))
{
// Some basic color coding...
if (!empty($row['onlineColor']))
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '" style="color: ' . $row['onlineColor'] . ';">' . $row['realName'] . '</a>';
else
$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>';

$context['users_online_last24'][$row['lastLogin'] . $row['memberName']] = array(
'id' => $row['ID_MEMBER'],
'username' => $row['memberName'],
'name' => $row['realName'],
'group' => $row['ID_GROUP'],
'href' => $scripturl . '?action=profile;u=' . $row['ID_MEMBER'],
'link' => $link,
'hidden' => empty($row['showOnline']),
);

$context['list_users_online_last24'][$row['lastLogin'] . $row['memberName']] = empty($row['showOnline']) ? '<i>' . $link . '</i>' : $link;

if (!isset($context['online_groups'][$row['ID_GROUP']]))
$context['online_groups_last24'][$row['ID_GROUP']] = array(
'id' => $row['ID_GROUP'],
'name' => $row['groupName'],
'color' => $row['onlineColor']
);
}
}
mysql_free_result($result);

        $context['num_users_online_last24'] = count($context['users_online_last24']);



Ich nehme an, die Formatierung ist wichtig?


Michael


Advertisement: