Регистрация    Забыли пароль?        Правила форума    FAQ (читать перед созданием новой темы)
Имя   Пароль  запомнить
  
Просмотр темы
Вернуться на сайт: PHP-Fusion SF Russian Support Site

Форум поддержки PHP-Fusion SF | PHP-Fusion SF - Разное | Вопросы / Жалобы / Предложения
# 1 Тема: Статистика форума
pozitiv
SF Team

Avatar пользователя

паZитифф

SF Support Team

Почетный SF

Сообщений: 1676
Откуда: Киев
Зарегистрирован: 18 Ноября 2007, 18:49:13
Сказали спасибо 148 раз
Статус: offline
ICQ статус 3902393
Опубликовано 06 Апреля 2008, 22:40:19
Сделал немного расширенную статистику форума для главной страницы форума(собрал с разных модов)


echo "
<table width='100%' cellpadding='0' cellspacing='0' align='center'>
<tr>
<table border='0' cellpadding='0' cellspacing='1' width='100%' class='tbl-border' align='center'><tr>
<td class='forum-caption' align='left'><b>Статистика форума</b>
<tr><td width='100%' align='left' class='tbl1'>";

// Online Users Panel Code
if ($settings['maintenance'] != "1") {
$cond = ($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".FUSION_IP."'");
$result = dbquery("SELECT * FROM ".$db_prefix."online WHERE online_user=".$cond."");
if (dbrows($result) != 0) {
$result = dbquery("UPDATE ".$db_prefix."online SET online_lastactive='".time()."' WHERE online_user=".$cond."");
} else {
$name = ($userdata['user_level'] != 0 ? $userdata['user_id'] : "0");
$result = dbquery("INSERT INTO ".$db_prefix."online VALUES('$name', '".FUSION_IP."', '".time()."')");
}
if (isset($_POST['login'])) {
$result = dbquery("DELETE FROM ".$db_prefix."online WHERE online_user='0' AND online_ip='".FUSION_IP."'");
} else if (isset($logout)) {
$result = dbquery("DELETE FROM ".$db_prefix."online WHERE online_ip='".FUSION_IP."'");
}
$result = dbquery("DELETE FROM ".$db_prefix."online WHERE online_lastactive<".(time()-60)."");
$result = dbquery("SELECT * FROM ".$db_prefix."online WHERE online_user='0'");
echo "<span class='small'>".$locale['011']." <b>".dbrows($result)."</b> </span><br>\n";
$result = dbquery(
"SELECT ton.*, user_id,user_name FROM ".$db_prefix."online ton
LEFT JOIN ".$db_prefix."users tu ON ton.online_user=tu.user_id
WHERE online_user!='0'"
);
$usersPosts = dbcount("(user_id)", "users", "user_posts != '0'");

function daysBetween($day1,$day2){
return round((strtotime($day2)-strtotime($day1))/(24*60*60),0);
}


$useRealPosts = TRUE; //set to false if you want to use the posts stored in profile for calculations rather than real amount of posts


$topPoster = ($useRealPosts ? dbarray(dbquery("SELECT ".$db_prefix."users.*,count(post_id) AS user_posts
FROM ".$db_prefix."users LEFT JOIN ".$db_prefix."posts ON ".$db_prefix."users.user_id = ".$db_prefix."posts.post_author
GROUP BY ".$db_prefix."users.user_id ORDER BY user_posts DESC LIMIT 0,1")) : dbarray(dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_posts DESC")));




$daysInCommunity = daysBetween(date("Y/m/d", $topPoster['user_joined']), date("Y/m/d"));
$topUserPost = ($topPoster['user_posts'] ? $topPoster['user_posts'] : 0);
$postsDaily = (!empty($topUserPost) && $topUserPost != 0 ? number_format($daysInCommunity / $topUserPost, 2) : "0");



// This code reads the amount of Forum Post from the Database
$facount = dbquery("SELECT count(post_id) FROM ".$db_prefix."posts");
$facount2 = dbquery("SELECT count(thread_id) FROM ".$db_prefix."threads");
//echo "<span class='small'>На форуме сообщений: </span><span class='small'><b>".dbresult($facount, 0)."</b><br>";
//echo "<span class='small'>На форуме <b>".dbresult($facount, 0)."</b> сообщений в <b>".dbresult($facount2, 0)."</b> темах</span><span class='small'><br>";
echo "<span class='small'>";
// Ends Forum Post code

$members = dbrows($result);
if ($members != 0) {
$i = 1;
echo $locale['012'];
while($data = dbarray($result)) {
echo "<a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' class='side'>".$data['user_name']."</a>";
if ($i != $members) echo ", ";
$i++;
}
echo "<br>\n";
} else {
echo $locale['013']."<br>\n";
}

$online = dbcount("(online_user)","online");
if ($settings['record_count'] < $online) {
$result = dbquery("UPDATE ".$db_prefix."settings SET record_datestamp='".time()."', record_count='$online'");
}
echo "<span class='small'>Рекорд посещаемости форума - ".$settings['record_count'].", зафиксирован - ".showdate("longdate", $settings['record_datestamp'])."</span><br>";


echo "<br><span class='small'>На форуме <b>".dbresult($facount, 0)."</b> сообщений в <b>".dbresult($facount2, 0)."</b> темах, оставленные <b>".$usersPosts."</b> пользователями</span><span class='small'><br>";
$result = dbquery("SELECT user_id,user_name FROM ".$db_prefix."users ORDER BY user_joined DESC");
$total = dbrows($result);
$data = dbarray($result);
echo "<span class='small'>Зарегистрировано пользователей: <b>".$total."</b></span>\n";


if ($settings['admin_activation'] == "1") echo "".$locale['015'].dbcount("(user_id)", "users", "user_status='2'")."<br>\n";
$data = dbarray(dbquery("SELECT user_id,user_name FROM ".$db_prefix."users WHERE user_status='0' ORDER BY user_joined DESC LIMIT 0,1"));


echo "<br>Приветствуем нового пользователя <a href='".BASEDIR."profile.php?lookup=".$data['user_name']."' class='side'><B>".$data['user_name']."</B></a><br>\n";
//начало последний визит
$results = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='".$data['user_id']."'");
$datas = dbarray($results);
//$profile .= "Ваш последний визит: ".($datas['user_lastvisit'] != 0 ? showdate("longdate", $datas['user_lastvisit']) : никогда)."\n";
$profile .= "Ваш последний визит: ".($userdata['user_lastvisit'] != 0 ? showdate("longdate", $userdata['user_lastvisit']) : $locale['u049'])."";
//echo"<span class='small'>Последний визит: ".ucwords(showdate("longdate", time()))."</span><br />";
echo $profile;
//конец последний визит


//еще статистика



$yourposts = ($useRealPosts ? dbcount("(post_id)", "posts", "post_author=".$userdata['user_id']) : $userdata['user_posts']);
$facount = dbcount("(post_id)", "posts");
$result = dbquery("SELECT tp.*, tf.* FROM ".$db_prefix."posts tp INNER JOIN ".$db_prefix."forums tf USING(forum_id) WHERE ".groupaccess('forum_access')." AND tp.post_datestamp>'$lastvisited'");

//if ($facount){
if ($yourposts == 0) {
$postInfo = "s".$facount."ы"."<br />";
} else {
$yourperc = number_format((($yourposts/$facount)*100),2);
$postInfo = "<br>Вы оставили: ".$yourposts." сообщений, это ".$yourperc."% из всех постов форума<br />";
}
//} else {
//$postInfo = "No posts at all on this forum yet. ";
//}

echo $postInfo;
$activ = dbcount("(forum_id)", "posts", "post_author='".$userdata['user_id']."'");

$topflood = ($useRealPosts ? dbarray(dbquery("SELECT ".$db_prefix."users.*,count(post_id) AS user_posts
FROM ".$db_prefix."posts LEFT JOIN ".$db_prefix."posts ON ".$db_prefix."users.user_id = ".$db_prefix."posts.post_author
GROUP BY ".$db_prefix."users.user_id ORDER BY user_posts DESC LIMIT 0,1")) : dbarray(dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_posts DESC")));
echo"Наибольшая активность в ".$topflood['user_name']."";

$resultes = dbquery("SELECT tp.*, tf.* FROM ".$db_prefix."posts tp INNER JOIN ".$db_prefix."forums tf USING(forum_id) WHERE ".groupaccess('forum_access')." AND tp.post_datestamp>'$lastvisited'");
//if (dbrows($resultes) != 0){
$resultesw = dbquery("SELECT tp.*, tf.*, tu.user_id,user_name FROM ".$db_prefix."posts tp
INNER JOIN ".$db_prefix."forums tf USING(forum_id)
LEFT JOIN ".$db_prefix."users tu ON tp.post_author=tu.user_id
WHERE ".groupaccess('forum_access')." AND tp.post_datestamp>'$lastvisited' ORDER BY post_datestamp DESC LIMIT 0,1");
$data = dbarray($resultesw);
//echo"<br>Последнее сообщение в теме \"<b><a href='".BASEDIR."forum/viewthread.php?forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."
;&pid=".$data['post_id']."#post_".$data['post_id']."'>".$data['post_subject']."</a>
</b>\"";
echo"<br>С момента вашего последнего визита <b>".dbrows($resultes)."</b> новых сообщения, последнее сообщение в теме \"<b><a href='".BASEDIR."forum/viewthread.php?forum_id=".$data['forum_id']."&thread_id=".$data['thread_id']."
;&pid=".$data['post_id']."#post_".$data['post_id']."'>".$data['post_subject']."</a>
</b>\"";
//конец
//}
echo"<br>Наибольший флудер: <a href='".BASEDIR."profile.php?lookup=".$topPoster['user_id']."'>".$topPoster['user_name']."<
;/a>, с ".$topPoster['user_posts']." постами (".$postsDaily." постов в день)";



}
// End Online Users Panel Code

echo "</div></td>
</tr><br>
</td></tr></td></tr></table>\n";


тут немного корявый код, и хотел бы сделать чтобы показывало в какой теме наибольшая активность пользователя....

Показывает
Статистика форума
Гостей: 0
Посетители: man
Рекорд посещаемости форума - 3, зафиксирован - April 06 2008 19:53:59

На форуме 221 сообщений в 88 темах, оставленные 3 пользователями
Зарегистрировано пользователей: 10
Приветствуем нового пользователя re
Ваш последний визит: April 06 2008 20:44:28
Вы оставили: 208 сообщений, это 94.12% из всех постов форума
Наибольшая активность в
С момента вашего последнего визита 1 новых сообщения, последнее сообщение в теме "RE: 111"
Наибольший флудер: man, с 208 постами (0.33 постов в день)



Помотреть можно здесь: http://tracker-fusion.ho.ua/forum/index_.php
логин я пароль 987412365 (на всяк случай)

надеюсь мне помогут доделать наибольшую активность=)


[Изменил(а) pozitiv, 06 Апреля 2008, 22:40:46]

--------------------
wmz - Z226856101527
wmr - R513979829437

Все вопросы задавать на форуме. На вопросы заданные в приват или асю неотвечаю!
^ наверх ^ 3902393 http://nekto.me
Перейти на форум:


95,240,963 уникальных посетителей
сейчас: 28 Апреля 2024, 14:24:56
Генерация страницы: 0.05 сек.