/usr/local/CPAN/CPAN-Forum/CPAN/Forum/Posts.pm
package CPAN::Forum::Posts;
use strict;
use warnings;
use Carp;
use base 'CPAN::Forum::DBI';
__PACKAGE__->table('posts');
__PACKAGE__->columns(All => qw/id gid uid parent subject text date thread hidden/);
#__PACKAGE__->has_many(responses => "CPAN::Forum::Posts");
__PACKAGE__->has_a(parent => "CPAN::Forum::Posts");
__PACKAGE__->has_a(uid => "CPAN::Forum::Users");
__PACKAGE__->has_a(gid => "CPAN::Forum::Groups");
__PACKAGE__->set_sql(latest => "SELECT __ESSENTIAL__ FROM __TABLE__ ORDER BY DATE DESC LIMIT %s");
__PACKAGE__->set_sql(count_thread => "SELECT count(*) FROM __TABLE__ WHERE thread=%s");
__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);
sub retrieve_latest {
my ($class, $count) = @_;
# $where = $where ? "WHERE $where" : "";
return $class->sth_to_objects($class->sql_latest($count));
}
sub mysearch {
my ($self, $params) = @_;
my %where = %{$params->{where}};
%where = (1 => 1) if not %where;
my $pager = __PACKAGE__->pager(
where => \%where,
per_page => $params->{per_page} || 10,
page => $params->{page} || 1,
order_by => $params->{order_by} || "id DESC",
);
}
1;