Letzte Besucher für eigenes Portal!

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Letzte Besucher für eigenes Portal!

Beitrag von Aecid »

Hallo,

Also, ich hab überall versucht brauchbare Code zu finden, was mir aber nicht gelungen ist.

Mein Problem ist, das ich aus einem Mod (Recent-Posts) eine Portal gebastelt habe, aheb die WIO-Anzeige eingabaut und meine Partner und Toplisten in Blöcke dazugepackt. Seite: http://anime-cid.de

Allerdings wollte ich noch eine Box mit der Anzeige wer in letzter Zeit alles online war. allerdings nach einem bestimmten Anzeigesyntax. Es sollte ungefähr so aussehen:

Wer war zuletzt online:

[Username]
20.10.2003, 17:05

[Username]
20.10.2003, 11:49

[Username]
19.10.2003, 23:01

...

usw.

allerdings kenn ich mich mit SQL überhaupt nicht aus, weswegen ich dann auch nicht weiß, wie ich es abfragen soll. wie könnte ich das mit einem einfachen Code hinkriegen?

Danke schonmal im Voraus
Benutzeravatar
ph!L
Mitglied
Beiträge: 126
Registriert: 20.03.2003 16:26
Wohnort: Berlin-Köpenick
Kontaktdaten:

Beitrag von ph!L »

im phpbbplus gibt es soeinen mod bereits.
der arbeitet bei mir aber ziemlich unzuverlässig
musst du mal auf http://phpbb2plus.phpbb2.de fragen
Geld ist rund und rollt weg, aber Bildung bleibt
[Heine]
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Beitrag von Aecid »

hab das Problem beinahe gelöst. Ich habe einfach den Users of the Day-Mod eingebaut und über die Box abgefragt. Das Problem ist leider ncoh das er die Zeit dadrunter anzeigen soll. Hier ist der Code:

Code: Alles auswählen

//
// Users of the day MOD
//

// ############ Edit below ############
// #
$display_not_day_userlist = 0;	// change to 1 here if you also want the list of the users who didn't visit to be displayed
$users_list_delay = 24;		// change here to the number of hours wanted for the list
// #
// ############ Edit above ############

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_session_time DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}

$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;

while( $row = $db->sql_fetchrow($result) )
{
	$style_color = '';
	if ( $row['user_level'] == ADMIN )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
	}
	else if ( $row['user_level'] == MOD )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
	}
	if ( $row['user_allow_viewonline'] )
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
	}
	else
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
	}
	if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
	{
		if ( $row['user_session_time'] >= ( time() - $users_list_delay * 3600 ) )
		{
			$day_userlist .= ( $day_userlist != '' ) ? '<br />' . $user_day_link : $user_day_link;
			$day_users++;
		}
		else
		{
			$not_day_userlist .= ( $not_day_userlist != '' ) ? '<br>' . $user_day_link : $user_day_link;
			$not_day_users++;
		}
	}
}

$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;

$not_day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Not_day_users'], $not_day_users, $users_list_delay) ) . ' ' . $not_day_userlist;

if ( $display_not_day_userlist )
{
	$day_userlist .= '<br />' . $not_day_userlist;
}

//
// End of MOD
//
Ich habe den Code an ein zwie Stellen geädert, dass er es mir richtig anzeigt, aber was muss ich ändern, damit er mir das Datum und die Uhrzeit anzeigt, also:

Aecid
20.10.2003, 20:30

Dane nochmal im Voraus!
Spidy
Mitglied
Beiträge: 283
Registriert: 06.08.2003 00:40
Wohnort: Bremen

Beitrag von Spidy »

hi

hast du mal ein DL link für den MOD bitte.

und schau dir mal den CODE von postnuke an dort gibt es auch diesen MOD oder das Modul vieleicht findest du dort die lösung .

hier mal ne Postnuke seite wo links dieses angezeigt wird

www.der-spooky.de
cu
Spidy
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Beitrag von Aecid »

hier ist der link: http://www.phpbbhacks.com/viewhack.php?id=770

ich schau mir ma den CODE an, thx!

EDIT: ja, da ist zwar dass zu sehen, was ich auch haben will, aber das bringt mich nicht unbedingt weiter!
Spidy
Mitglied
Beiträge: 283
Registriert: 06.08.2003 00:40
Wohnort: Bremen

Beitrag von Spidy »

Danke erstmal


hier mal der Code aus der Datei die die ansich generiert vieleicht hilft das ja kenne mich da leider nicht sogut aus . das es diese datei ist weiß ich nur weil ich mal eine Postnuke seite gemacht habe und die module noch habe.

Code: Alles auswählen

<?php

$blocks_modules['pastvisitors'] = array(
    'func_display' => 'blocks_pastvisitors_block',
    'text_type' => 'PastVisitors',
    'text_type_long' => 'Past Visitors',
    'allow_multiple' => false,
    'form_content' => false,
    'form_refresh' => false,
//  'support_xhtml' => true,
    'show_preview' => true
);

pnSecAddSchema('PastVisitors::', 'Block title::');

function blocks_pastvisitors_block($row)
{
    if (!pnSecAuthAction(0, 'PastVisitors::', "$row[title]::", ACCESS_READ)) {
        return;
    }

   
   list($dbconn) = pnDBGetConn();
   if (pnUserLoggedIn()) $username=pnUserGetVar('uname');
   $ip = getenv("REMOTE_ADDR");
   if (!isset($username)) $username=$ip;

   $sql = "SELECT * FROM nuke_pastvisitors WHERE username = \"$username\"";
   $result=$dbconn->Execute($sql);
   if ($dbconn->ErrorNo() != 0) {
      die("ERROR: (checking current list" . $dbconn->ErrorMsg());
   }
   if (!$result->EOF) {
      $sql= "UPDATE nuke_pastvisitors SET date = ".time()." WHERE username=\"$username\"";
      $result=$dbconn->Execute($sql);
      if ($dbconn->ErrorNo() != 0) {
         die("ERROR: (updating existing user" . $dbconn->ErrorMsg());
      }
   } else {
       $sql = "INSERT INTO nuke_pastvisitors VALUES (\"\", \"$username\", ".time().", \"".$ip."\")";
       $result=$dbconn->Execute($sql);
       if ($dbconn->ErrorNo() != 0) {
          die("ERROR: (adding new user" . $dbconn->ErrorMsg());
	   }
	}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $row[content] = "";
    $sql = "SELECT username, date, ip FROM nuke_pastvisitors ORDER BY date DESC LIMIT 5";
    $result=$dbconn->Execute($sql);
    if ($dbconn->ErrorNo() != 0) {
       die("ERROR: (getting user list" . $dbconn->ErrorMsg());
    }
	$content="";
	while (!$result->EOF) {
       list($uname, $date, $ip) = $result->fields;
       if ($uname == $ip) {
          if (pnSecAuthAction(0, 'PastVisitors::', "$row[title]::", ACCESS_ADMIN)) {
             $uname="<b>$uname</b>";
		  } else {
             $uname="<b>Besucher</b>";
		  }
	   } else {
		   $uname="<a href=\"user.php?op=userinfo&uname=$uname\"><b>$uname</b></a>";
	   }
       $date = GetUserTime($date);
	   $system_offset=pnConfigGetVar('timezone_offset');
	   $user_offset=pnUserGetVar('timezone_offset');
	   $adjusteddate=mktime((date("H",$date)), date("i",$date), date("s",$date), date("m",$date), date("d",$date), date("Y",$date));
	   $lastdate=date("d.m.Y, H:i",$date);
	   $content .= "<center>$uname<br>$lastdate Uhr</center><br>";
	   $result->MoveNext();
	}



 


   $row['content'] = $content;
   return themesideblock($row);

}
?>
cu
Spidy
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Beitrag von Aecid »

ja, blick ich jetzt auch nicht so richtig durch, kann vielleicht jemand meinen Code nehmen und ihn umschreiben, dass er das anzeigt, bitte?
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Beitrag von Aecid »

ok, hab es fast gelöst, wie kriege ich jetzt nur den Timestamp richtig formatiert angezeigt?
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

$variabel = create_date($board_config['default_dateformat'], $result_aus_query, $board_config['board_timezone']);
?

PS: Netter Nick. :wink:
Aecid
Mitglied
Beiträge: 16
Registriert: 20.10.2003 19:13

Beitrag von Aecid »

jo thx, Acid!

konnte irgendwie das umgerechnete Datum nicht in eine Variable fassen, aslo habe ich es direkt umgewandelt. funzt bei mir alles einwandfrei, bis jetzt jedenfalls!

hier der komplette Code falls es jemanden interessiert:

Code: Alles auswählen

//
// Users of the day MOD
//

// ############ Edit below ############
// #
$display_not_day_userlist = 0;	// change to 1 here if you also want the list of the users who didn't visit to be displayed
$users_list_delay = 24;		// change here to the number of hours wanted for the list
// #
// ############ Edit above ############

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_session_time DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}


$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;

while( $row = $db->sql_fetchrow($result) )
{
	$style_color = '';
	if ( $row['user_level'] == ADMIN )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
	}
	else if ( $row['user_level'] == MOD )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
	}
	if ( $row['user_allow_viewonline'] )
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a><br />' . create_date("j.m.Y, G:i", $row['user_session_time'], $board_config['board_timezone']) . '<br />';
	}
	else
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a><br />' . create_date("j.m.Y, G:i", $row['user_session_time'], $board_config['board_timezone']) . '<br />';
	}
	if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
	{
		if ( $row['user_session_time'] >= ( time() - $users_list_delay * 3600 ) )
		{
			$day_userlist .= ( $day_userlist != '' ) ? '<br />' . $user_day_link : $user_day_link;
			$day_users++;
		}
		else
		{
			$not_day_userlist .= ( $not_day_userlist != '' ) ? '<br>' . $user_day_link : $user_day_link;
			$not_day_users++;
		}
	}
}

$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;

$not_day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Not_day_users'], $not_day_users, $users_list_delay) ) . ' ' . $not_day_userlist;

if ( $display_not_day_userlist )
{
	$day_userlist .= '<br />' . $not_day_userlist;
}

//
// End of MOD
//
PS @Acid: Ebenfalls netter Nick ;)
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“