Userstatistik auf Startseite

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Userstatistik auf Startseite

Beitrag 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. :)
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Beitrag 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 :(
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Beitrag von Bob_ROss »

Kann mir niemand helfen :(
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Beitrag von Bob_ROss »

:(
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Beitrag von Bob_ROss »

Hilfe.... :(
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag 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.
Bob_ROss
Mitglied
Beiträge: 20
Registriert: 21.05.2008 00:46

Beitrag 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 :(
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“