--- trunk/lib/Frey/DBIC/Browser.pm 2009/01/25 12:57:28 1014 +++ trunk/lib/Frey/DBIC/Browser.pm 2009/01/25 15:20:40 1015 @@ -20,6 +20,20 @@ default => 'DBI:mysql:database=reblog;host=127.0.0.1;port=13306', ); +has table => ( + is => 'rw', + isa => 'Str', + required => 1, + default => 'Items', +); + +has order_by => ( + is => 'rw', + isa => 'Str', + required => 1, + default => 'timestamp desc', +); + has page => ( is => 'rw', isa => 'Int', @@ -42,21 +56,30 @@ eval $code; die $@ if $@; - warn "# schema ", $self->dump( $schema ); + $schema->storage->debug(1); # XXX dump storage generated SQL - my @feeds = $schema->resultset('Feeds')->search( - undef, - { - page => $self->page, - order_by => [ 'timestamp desc' ], - } - ); + my $attrs; + + $attrs->{ $_ } = $self->$_ foreach ( grep { $self->$_ } ( qw/page order_by/ ) ); + warn "# attrs ", $self->dump( $attrs ); + + + my $rs = $schema->resultset( $self->table ) + # ->search( undef, $attrs ) + ->search({ + 'userdata.label' => 'published', + 'userdata.value_numeric' => 1, + }, { + join => [ 'userdata' ], + %$attrs + }) + ; my @rows; my @name; my $name_pos; - foreach my $feed ( @feeds ) { + while ( my $feed = $rs->next ) { my %row = $feed->get_columns; my @row; @@ -78,6 +101,7 @@ return { rows => \@rows, NAME => \@name, + total_entries => $rs->pager->total_entries, } }