[Cpan-forum-commit] rev 293 - in trunk: . lib/CPAN/Forum/DB lib/CPAN/Forum/RM schema templates
svn at pti.co.il
svn at pti.co.il
Sun Jul 22 07:02:13 EEST 2007
Author: gabor
Date: 2007-07-22 07:02:13 +0300 (Sun, 22 Jul 2007)
New Revision: 293
Modified:
trunk/
trunk/lib/CPAN/Forum/DB/Posts.pm
trunk/lib/CPAN/Forum/RM/Other.pm
trunk/lib/CPAN/Forum/RM/Users.pm
trunk/schema/schema.sql
trunk/templates/stats.tmpl
Log:
show most active users
add another index to the database to speed up this query
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4300
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4301
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DB/Posts.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Posts.pm 2007-07-22 04:01:49 UTC (rev 292)
+++ trunk/lib/CPAN/Forum/DB/Posts.pm 2007-07-22 04:02:13 UTC (rev 293)
@@ -17,15 +17,6 @@
__PACKAGE__->set_sql(count_like => "SELECT count(*) FROM __TABLE__ WHERE %s LIKE '%s'");
#__PACKAGE__->add_constraint('subject_too_long', subject => sub { length $_[0] <= 70 and $_[0] !~ /</});
#__PACKAGE__->add_constraint('text_format', text => \&check_text_format);
-#__PACKAGE__->set_sql(stat_posts_by_user => qq{
-# SELECT COUNT(*) cnt, users.username username
-# FROM posts,users
-# WHERE posts.uid=users.id
-# GROUP BY username
-# ORDER BY cnt DESC
-# LIMIT ?
-# });
-
my $MORE_SQL = 'groups.name group_name, users.fname user_fname, users.lname user_lname, users.username user_username';
sub get_post {
@@ -159,5 +150,18 @@
return $self->_fetch_arrayref_of_hashes($sql, $limit);
}
+sub stat_posts_by_user {
+ my ($self, $limit) = @_;
+ my $sql = qq{
+ SELECT COUNT(*) cnt, users.username username
+ FROM posts,users
+ WHERE posts.uid=users.id
+ GROUP BY username
+ ORDER BY cnt DESC
+ LIMIT ?
+ };
+ return $self->_fetch_arrayref_of_hashes($sql, $limit);
+}
+
1;
Modified: trunk/lib/CPAN/Forum/RM/Other.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Other.pm 2007-07-22 04:01:49 UTC (rev 292)
+++ trunk/lib/CPAN/Forum/RM/Other.pm 2007-07-22 04:02:13 UTC (rev 293)
@@ -39,12 +39,17 @@
sub stats {
my $self = shift;
my $t = $self->load_tmpl("stats.tmpl");
- my $groups = CPAN::Forum::DB::Posts->stat_posts_by_group(50); # SQL
+ my $modules_cnt = 50;
+ my $groups = CPAN::Forum::DB::Posts->stat_posts_by_group($modules_cnt); # SQL
+ my $users_cnt = 50;
+ my $top_users = CPAN::Forum::DB::Posts->stat_posts_by_user($users_cnt); # SQL
#
# TODO: user stats removed as it was extreamly slow..
#
+ $t->param(modules_cnt => $modules_cnt);
$t->param(groups => $groups);
- #$t->param(users => \@users);
+ $t->param(users_cnt => $users_cnt);
+ $t->param(users => $top_users);
$t->output;
}
Modified: trunk/lib/CPAN/Forum/RM/Users.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Users.pm 2007-07-22 04:01:49 UTC (rev 292)
+++ trunk/lib/CPAN/Forum/RM/Users.pm 2007-07-22 04:02:13 UTC (rev 293)
@@ -27,7 +27,7 @@
$t->param(hide_username => 1);
- my ($user) = CPAN::Forum::DB::Users->info_by(username => $username); # SQL
+ my $user = CPAN::Forum::DB::Users->info_by(username => $username); # SQL
if (not $user) {
return $self->internal_error("Non existing user was accessed");
@@ -35,9 +35,9 @@
my $fullname = "";
- $fullname .= $user->fname if $user->fname;
+ $fullname .= $user->{fname} if $user->{fname};
$fullname .= " " if $fullname;
- $fullname .= $user->lname if $user->lname;
+ $fullname .= $user->{lname} if $user->{lname};
#$fullname = $username if not $fullname;
$t->param(this_username => $username);
@@ -45,7 +45,7 @@
$t->param(title => "Information about $username");
my $page = $q->param('page') || 1;
- $self->_search_results($t, {where => {uid => $user->id}, page => $page});
+ $self->_search_results($t, {where => {uid => $user->{id}}, page => $page});
$t->output;
}
Modified: trunk/schema/schema.sql
===================================================================
--- trunk/schema/schema.sql 2007-07-22 04:01:49 UTC (rev 292)
+++ trunk/schema/schema.sql 2007-07-22 04:02:13 UTC (rev 293)
@@ -139,6 +139,7 @@
CREATE UNIQUE INDEX groups_name ON groups (name);
CREATE INDEX posts_thread ON posts (thread);
CREATE INDEX posts_gid ON posts (gid);
+CREATE INDEX posts_uid ON posts (uid);
---- add tagcloud
--- TODO unique tag_id, group_id pair
Modified: trunk/templates/stats.tmpl
===================================================================
--- trunk/templates/stats.tmpl 2007-07-22 04:01:49 UTC (rev 292)
+++ trunk/templates/stats.tmpl 2007-07-22 04:02:13 UTC (rev 293)
@@ -5,7 +5,7 @@
<a name="statistics"></a>
<div class="about_list">
-<p class="about_title">Top 50 modules (number of posts)</p>
+<p class="about_title">Top <TMPL_VAR modules_cnt> modules (number of posts)</p>
<table>
<TMPL_LOOP groups>
<tr><td><a href="/dist/<TMPL_VAR gname>"><TMPL_VAR gname></a></td><td><TMPL_VAR cnt></td></tr>
@@ -15,7 +15,7 @@
<TMPL_IF users>
<div class="about_list">
- <p class="about_title">10 most active users (number of posts)</p>
+ <p class="about_title"><TMPL_VAR users_cnt> most active users (number of posts)</p>
<table>
<TMPL_LOOP users>
<tr><td><a href="/users/<TMPL_VAR username>"><TMPL_VAR username></a></td><td><TMPL_VAR cnt></td></tr>
More information about the Cpan-forum-commit
mailing list