Using common modules and templates.
[blog.pm.git] / lib / Blog / RDBO / Post / Manager.pm
blob5c8443bb0f4b4023a0b638bfb4647b1fef79a303
1 package Blog::RDBO::Post::Manager;
3 use strict;
5 use base 'Rose::DB::Object::I18N::Manager';
7 use Hash::Merge 'merge';
8 use Common::RDBO::Helper::Post::Manager qw(:all);
10 sub object_class { 'Blog::RDBO::Post' }
12 __PACKAGE__->make_manager_methods( 'posts');
14 sub feed {
15 my ( $self ) = @_;
17 return $self->get_posts(
18 i18n => Blog->context->language,
19 sort_by => 'addtime DESC',
20 limit => 20,
21 group_by => 't1.id'
25 sub list {
26 my ( $self ) = shift;
27 my %args = @_;
29 my $cond = merge {
30 sort_by => 'addtime DESC', }, \%args;
32 return $self->get_list( %$cond );
35 sub archive {
36 my $self = shift;
37 my ( $year, $month, $day ) = @_;
39 return $self->get_archive(
40 year => $year,
41 month => $month,
42 day => $day
46 sub recent {
47 my ( $self, $limit ) = @_;
49 return $self->get_posts(
50 i18n => Blog->context->language,
51 select => [ qw/ id key orig_lang t2.i18nid t2.lang t2.istran t2.title / ],
52 sort_by => 'addtime DESC',
53 limit => $limit || 10
57 sub newer {
58 my ( $self, $addtime ) = @_;
60 return $self->get_newer(
61 addtime => $addtime,
62 select =>
63 [ qw/ id key orig_lang t2.i18nid t2.lang t2.istran t2.title / ],
67 sub older {
68 my ( $self, $addtime ) = @_;
70 return $self->get_older(
71 addtime => $addtime,
72 select =>
73 [ qw/ id key orig_lang t2.i18nid t2.lang t2.istran t2.title / ],
77 =head1 AUTHOR
79 vti
81 =head1 LICENSE
83 This library is free software, you can redistribute it and/or modify
84 it under the same terms as Perl itself.
86 =cut