Seite 1 von 1

Userstatistik auf Startseite

Verfasst: 28.05.2008 23:26
von Bob_ROss
Halloa,

ich habe mal wieder ein kleines Problem.
Ich nutze ein CMS mit dem ich meine Webseite erstellt habe, und phpbb3 als Forum. Jetzt möchte ich die ins Forum integrierte Userstatistik (neuster User, Anzahl der User, Anzahl der User online, etc.) auch auf meiner Hauptseite darstellen. Die benötigten Abfragen müssten ja schon in einer PHP stehen, und quasi nur noch per html abgefragt werden, oder?

Wie könnte das funktionieren?
Achja, jier meine Seite: http://fortheliving-gilde.de/

Danke für jede Hilfe im Vorraus. :)

Verfasst: 29.05.2008 17:30
von Bob_ROss
Es geht wohl mit um diese Zeilen:

Code: Alles auswählen

<table class="tablebg" width="100%" cellspacing="1">
335 <tr>
336 <td class="cat" colspan="2"><h4><a href="./viewonline.php">Wer ist online?</a></h4></td>
337 </tr>
338 <tr>
339 <td class="row1" rowspan="2" align="center" valign="middle"><img src="./styles/AnimeZone/theme/images/whosonline.gif" alt="Wer ist online?" /></td>
340 <td class="row1" width="100%"><span class="genmed">Insgesamt ist <strong>1</strong> Besucher online: 1 registrierter, 0 unsichtbare und 0 Gäste<br />Der Besucherrekord liegt bei <strong>4</strong> Besuchern, die am 24. Mai 2008, 02:23 zeitgleich online waren.<br /><br />Mitglieder: <a href="./memberlist.php?mode=viewprofile&u=2" style="color: #FF9900;" class="username-coloured">Bob_ROss</a></span></td>
341 </tr>
342 <tr>
343 <td class="row1"><b class="gensmall">Legende :: <a style="color:#FF9900" href="./memberlist.php?mode=group&g=5">Administratoren</a>, <a style="color:#FFFF99" href="./memberlist.php?mode=group&g=4">Globale Moderatoren</a>, <a style="color:#FFFF99" href="./memberlist.php?mode=group&g=7">Web-Administratoren</a></b></td>
344 </tr>
345 </table>
346 <br clear="all" />
347
348 <table class="tablebg" width="100%" cellspacing="1">
349 <tr>
350 <td class="cat" colspan="2"><h4>Geburtstage</h4></td>
351 </tr>
352 <tr>
353 <td class="row1" align="center" valign="middle"><img src="./styles/AnimeZone/theme/images/whosonline.gif" alt="Geburtstage" /></td>
354 <td class="row1" width="100%"><p class="genmed">Heute hat kein Mitglied Geburtstag</p></td>
355 </tr>
356 </table>
357
358<br clear="all" />
359
360<table class="tablebg" width="100%" cellspacing="1">
361<tr>
362 <td class="cat" colspan="2"><h4>Statistik</h4></td>
363</tr>
364<tr>
365 <td class="row1"><img src="./styles/AnimeZone/theme/images/stats.gif" alt="Statistik" /></td>
366 <td class="row1" width="100%" valign="middle"><p class="genmed">Beiträge insgesamt: <strong>348</strong> | Themen insgesamt: <strong>43</strong> | Mitglieder insgesamt: <strong>14</strong> | Unser neuestes Mitglied: <strong><a href="./memberlist.php?mode=viewprofile&u=67" style="color: #FFFFFF;" class="username-coloured">TDDaBrain</a></strong></p></td>
367</tr>
368</table>
369
Nur wo finde ich die, und wie bekomm ich die verbaut?

Edit: die Sachen scheinen in der memberlist.php abgefragt zu werden. Wie ich das sehe müsste ich quasi eine .php erstellen die diese Zeilen enthält, und dann z.B. per javascript einbinden. Soweit würde ich das sicher auch hinbekommen, wenn ich wüsste wie die php auszusehen hat.

Edit 2: in der index_body.html habe ich jetzt die Tabelle gefunden:

Code: Alles auswählen

<table class="tablebg" width="100%" cellspacing="1">
<tr>
	<td class="cat" colspan="2"><h4>{L_STATISTICS}</h4></td>
</tr>
<tr>
	<td class="row1"><img src="{T_THEME_PATH}/images/stats.gif" alt="{L_STATISTICS}" /></td>
	<td class="row1" width="100%" valign="middle"><p class="genmed">{TOTAL_POSTS} | {TOTAL_TOPICS} | {TOTAL_USERS} | {NEWEST_USER}</p></td>
</tr>
</table>
Ich kann mit diesen Schnipseln nichts anfangen :(

Verfasst: 30.05.2008 16:57
von Bob_ROss
Kann mir niemand helfen :(

Verfasst: 03.06.2008 22:55
von Bob_ROss
:(

Verfasst: 07.06.2008 00:29
von Bob_ROss
Hilfe.... :(

Verfasst: 07.06.2008 01:13
von 4seven
Diese Userstatistiken bieten die meisten Portale schon on the fly.

Mein Tip:
Schnapp dir die "fix und fertigen" Anweisungen aus einem Portal
und implementiere sie, wo du sie haben willst.

Verfasst: 08.06.2008 00:20
von Bob_ROss
Ich hab jetzt ein Portal installiert was so aussieht http://fortheliving-gilde.de/forum/portal.php

Also ist da schonmal was kaputt. Aber egal, da ich das ja nicht direkt nutzen will... rechts gibts auch die Statistik wo die Anzahl der User und der neuste User drin steht.

Wenn ich per javascript die php einbinden will kommt "hacking attempt" http://fortheliving-gilde.de/lastmember.htm

Die php sieht so aus:

Code: Alles auswählen

<?php
/*
*
* @package phpBB3 Portal  a.k.a canverPortal  ( www.phpbb3portal.com )
* @version $Id: statistics.php,v 1.4 2008/02/09 08:18:14 angelside Exp $
* @copyright (c) Canver Software - www.canversoft.net
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/
if (!defined('IN_PHPBB') or !defined('IN_PORTAL'))
{
	die('Hacking attempt');
	exit;
}

/**
*/

// switch idea from phpBB2 :p
function get_db_stat($mode)
{
	global $db, $user;

	switch( $mode )
	{
	/*
		case 'newposttotal':
			$sql = 'SELECT COUNT(distinct post_id) AS newpost_total
				FROM ' . POSTS_TABLE . '
				WHERE post_time > ' . $user->data['session_last_visit'];
		break;

		case 'newtopictotal':
			$sql = 'SELECT COUNT(distinct p.post_id) AS newtopic_total
				FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
				WHERE p.post_time > ' . $user->data['session_last_visit'] . '
				AND p.post_id = t.topic_first_post_id';
		break;
			
		case 'newannouncmenttotal':
			$sql = 'SELECT COUNT(distinct t.topic_id) AS newannouncment_total
				FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
				WHERE t.topic_type = ' . POST_ANNOUNCE . '
					AND p.post_time > ' . $user->data['session_last_visit'] . '
					AND p.post_id = t.topic_first_post_id';
		break;

		case 'newstickytotal':
			$sql = 'SELECT COUNT(distinct t.topic_id) AS newsticky_total
				FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
				WHERE t.topic_type = ' . POST_STICKY . '
					AND p.post_time > ' . $user->data['session_last_visit'] . '
					AND p.post_id = t.topic_first_post_id';
		break;	
	*/
		case 'announcmenttotal':
			$sql = 'SELECT COUNT(distinct t.topic_id) AS announcment_total
				FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
				WHERE t.topic_type = ' . POST_ANNOUNCE . '
					AND p.post_id = t.topic_first_post_id';
		break;

		case 'stickytotal':
			$sql = 'SELECT COUNT(distinct t.topic_id) AS sticky_total
				FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
				WHERE t.topic_type = ' . POST_STICKY . '
					AND p.post_id = t.topic_first_post_id';
		break;

		case 'attachmentstotal':
			$sql = 'SELECT COUNT(attach_id) AS attachments_total
					FROM ' . ATTACHMENTS_TABLE;
		break;
	}
	
	if ( !($result = $db->sql_query($sql)) )
	{
		return false;
	}

	$row = $db->sql_fetchrow($result);
 
	switch ( $mode )
	{
	/*
		case 'newposttotal':
			return $row['newpost_total'];
		break;

		case 'newtopictotal':
			return $row['newtopic_total'];
		break;

		case 'newannouncmenttotal':
			return $row['newannouncment_total'];
		break;
	
		case 'newstickytotal':
			return $row['newsticky_total'];
		break;
	*/

		case 'announcmenttotal':
			return $row['announcment_total'];
		break;
			

		case 'stickytotal':
			return $row['sticky_total'];
		break;

		case 'attachmentstotal':
			return $row['attachments_total'];
		break;
	}
	return false;
}

// Set some stats, get posts count from forums data if we... hum... retrieve all forums data
$total_posts		= $config['num_posts'];
$total_topics		= $config['num_topics'];
$total_users		= $config['num_users'];

// no last user color, no more SQL codes ;)
$newest_user		= $config['newest_username'];
$newest_uid			= $config['newest_user_id'];

$l_total_user_s 	= ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER';
$l_total_post_s 	= ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
$l_total_topic_s	= ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';

// avarage stat
$board_days = ( time() - $config['board_startdate'] ) / 86400;

$topics_per_day		= round($total_topics / $board_days, 0);
$posts_per_day 		= round($total_posts / $board_days, 0);
$users_per_day 		= round($total_users / $board_days, 0);
$topics_per_user	= round($total_topics / $total_users, 0);
$posts_per_user 	= round($total_posts / $total_users, 0);
$posts_per_topic 	= ( $total_topics > 0 ) ? round($total_posts / $total_topics, 0) : 0 ;
	

if ($topics_per_day > $total_topics)
{
	$topics_per_day = $total_topics;
}

if ($posts_per_day > $total_posts)
{
	$posts_per_day = $total_posts;
}

if ($users_per_day > $total_users)
{
	$users_per_day = $total_users;
}

if ($topics_per_user > $total_topics)
{
	$topics_per_user = $total_topics;
}

if ($posts_per_user > $total_posts)
{
	$posts_per_user = $total_posts;
}

if ($posts_per_topic > $total_posts)
{
	$posts_per_topic = $total_posts;
}

$l_topics_per_day_s = ($total_topics == 0) ? 'TOPICS_PER_DAY_ZERO' : 'TOPICS_PER_DAY_OTHER';
$l_posts_per_day_s = ($total_posts == 0) ? 'POSTS_PER_DAY_ZERO' : 'POSTS_PER_DAY_OTHER';
$l_users_per_day_s = ($total_users == 0) ? 'USERS_PER_DAY_ZERO' : 'USERS_PER_DAY_OTHER';
$l_topics_per_user_s = ($total_topics == 0) ? 'TOPICS_PER_USER_ZERO' : 'TOPICS_PER_USER_OTHER';
$l_posts_per_user_s = ($total_posts == 0) ? 'POSTS_PER_USER_ZERO' : 'POSTS_PER_USER_OTHER';
$l_posts_per_topic_s = ($total_posts == 0) ? 'POSTS_PER_TOPIC_ZERO' : 'POSTS_PER_TOPIC_OTHER';

// Assign specific vars
$template->assign_vars(array(
	'S_DISPLAY_ADVANCED_STAT' => true,
	'TOTAL_POSTS'	=> sprintf($user->lang[$l_total_post_s], $total_posts),
	'TOTAL_TOPICS'	=> sprintf($user->lang[$l_total_topic_s], $total_topics),
	'TOTAL_USERS'	=> sprintf($user->lang[$l_total_user_s], $total_users),
	'NEWEST_USER'	=> sprintf($user->lang['NEWEST_USER'], '<a href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $newest_uid) . '">' . $newest_user . '</a>'),
/*
	'S_NEW_POSTS'	=> get_db_stat('newposttotal'),
	'S_NEW_TOPIC'	=> get_db_stat('newtopictotal'),
	'S_NEW_ANN'		=> get_db_stat('newannouncmenttotal'),
	'S_NEW_SCT'		=> get_db_stat('newstickytotal'),
*/
	'S_ANN'			=> get_db_stat('announcmenttotal'),
	'S_SCT'			=> get_db_stat('stickytotal'),
	'S_TOT_ATTACH'	=> get_db_stat('attachmentstotal'),
	
	// avarage stat
	'TOPICS_PER_DAY'	=> sprintf($user->lang[$l_topics_per_day_s], $topics_per_day),	
	'POSTS_PER_DAY'		=> sprintf($user->lang[$l_posts_per_day_s], $posts_per_day),	
	'USERS_PER_DAY'		=> sprintf($user->lang[$l_users_per_day_s], $users_per_day),	
	'TOPICS_PER_USER'	=> sprintf($user->lang[$l_topics_per_user_s], $topics_per_user),	
	'POSTS_PER_USER'	=> sprintf($user->lang[$l_posts_per_user_s], $posts_per_user),	
	'POSTS_PER_TOPIC'	=> sprintf($user->lang[$l_posts_per_topic_s], $posts_per_topic),
));

?>
Wenn ich eine der htmls in den Templates nutzen will haut die Abfrage nicht mehr hin :(