[Cpan-forum-commit] rev 301 - in trunk: . lib/CPAN lib/CPAN/Forum/DB
svn at pti.co.il
svn at pti.co.il
Sun Jul 22 07:04:37 EEST 2007
Author: gabor
Date: 2007-07-22 07:04:36 +0300 (Sun, 22 Jul 2007)
New Revision: 301
Modified:
trunk/
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/DB/Posts.pm
Log:
_posts is now using only plain SQL
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4308
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4309
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:04:20 UTC (rev 300)
+++ trunk/lib/CPAN/Forum/DB/Posts.pm 2007-07-22 04:04:36 UTC (rev 301)
@@ -6,7 +6,6 @@
__PACKAGE__->table('posts');
__PACKAGE__->columns(All => qw/id gid uid parent subject text date thread hidden/);
__PACKAGE__->columns(Essential => qw/id gid uid parent subject text date thread hidden/);
-#__PACKAGE__->has_many(responses => "CPAN::Forum::DB::Posts");
__PACKAGE__->has_a(parent => "CPAN::Forum::DB::Posts");
__PACKAGE__->has_a(uid => "CPAN::Forum::DB::Users");
__PACKAGE__->has_a(gid => "CPAN::Forum::DB::Groups");
@@ -15,8 +14,6 @@
__PACKAGE__->set_sql(count_where => "SELECT count(*) FROM __TABLE__ WHERE %s='%s'");
__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);
my $MORE_SQL = 'groups.name group_name, users.fname user_fname, users.lname user_lname, users.username user_username';
sub get_post {
@@ -163,5 +160,12 @@
return $self->_fetch_arrayref_of_hashes($sql, $limit);
}
+sub list_posts_by {
+ my ($self, $field, $value) = @_;
+ Carp::croak("Invalid field '$field'") if $field ne 'parent';
+ my $sql = "SELECT id FROM posts WHERE $field=?";
+ return $self->_fetch_arrayref_of_hashes($sql, $value);
+};
+
1;
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-07-22 04:04:20 UTC (rev 300)
+++ trunk/lib/CPAN/Forum.pm 2007-07-22 04:04:36 UTC (rev 301)
@@ -1258,14 +1258,14 @@
sub _post {
my ($self, $post) = @_;
- my @responses = map {{id => $_->id}} CPAN::Forum::DB::Posts->search(parent => $post->{id});
+ my $responses = CPAN::Forum::DB::Posts->list_posts_by(parent => $post->{id}); # SQL
my $user = CPAN::Forum::DB::Users->info_by(id => $post->{uid}); # SQL
my %post = (
postername => $user->{username},
date => _post_date($post->{date}),
parentid => $post->{parent},
- responses => \@responses,
+ responses => $responses,
text => $self->_text_escape($post->{text}),
);
More information about the Cpan-forum-commit
mailing list