X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=Memories%2FPhoto.pm;h=ce0cd2003a777277b06e5e535389e14c1be033ba;hb=0462f25b10e5adb4eacc0e11f4ced5165784f38f;hp=771c3a6ba3f6e619ed704b1d9f783394426b161d;hpb=d1391b6c98b7f74a85b2a83ce2f0d48a3bf5bfc2;p=memories.git diff --git a/Memories/Photo.pm b/Memories/Photo.pm index 771c3a6..ce0cd20 100644 --- a/Memories/Photo.pm +++ b/Memories/Photo.pm @@ -14,6 +14,12 @@ FROM __TABLE__ ORDER BY uploaded DESC LIMIT 4 }); +__PACKAGE__->set_sql(popular => q{ +SELECT __ESSENTIAL__ +FROM __TABLE__ +ORDER BY hit_count DESC +LIMIT 4 +}); __PACKAGE__->has_many(comments => "Memories::Comment"); __PACKAGE__->has_a(uploader => "Memories::User"); @@ -118,18 +124,29 @@ sub similar :Exported {} use Class::DBI::Plugin::Pager; use Class::DBI::Plugin::AbstractCount; -sub recent :Exported { - my ($self, $r) = @_; +sub view_paged_ordered { + my ($self, $r, $how) = @_; my $page = $r->params->{page} || 1; my $pager = $self->pager( per_page => Memories->config->{photos_per_page}, page => $page, syntax => PAGER_SYNTAX, - order_by => "uploaded desc" + order_by => $how ); $r->objects([$pager->retrieve_all ]); $r->{template_args}{pager} = $pager; $r->last_search; + $r->template("paged"); # Set the what using the action name +} + +sub recent :Exported { + my ($self, $r) = @_; + $self->view_paged_ordered($r, "uploaded desc"); +} + +sub popular :Exported { + my ($self, $r) = @_; + $self->view_paged_ordered($r, "hit_count desc"); } sub add_comment :Exported {