1 package Memories::Album;
2 use base qw(Memories::DBI Maypole::Model::CDBI::Plain);
3 __PACKAGE__->columns(Essential => qw/id name user privacy/);
4 Memories::Album->has_a(user => "Memories::User");
5 Memories::User->has_many(albums => "Memories::Album");
9 my $album = $r->objects->[0];
10 if ($album->privacy && $album->user != $r->user) {
11 $r->template("denied"); return;
13 $r->template_args->{photos} = [ $album->photos ];
18 my $page = $r->{params}{page} || 1;
19 my $pager = Memories::Album->pager(
20 Memories->config->{photos_per_page}, $page);
21 $r->{objects} = [$pager->search(privacy => 0)];
22 $r->{template_args}{pager} = $pager;
27 use Data::Dumper; warn Dumper($r->{params});
29 if ($r->{params}{album}) { # We're adding to an album
30 $album = $self->retrieve($r->{params}{album});
31 if (!$album or $album->user != $r->user) {
32 $r->template("denied"); return;
34 for (map /(\d+)/,grep /add\d+/, keys %{$r->{params}}) {
35 Memories::AlbumEntry->create({
41 $album = $r->{objects}[0];
42 if (!$album or $album->user != $r->user) {
43 $r->template("denied"); return;
45 for (map /(\d+)/,grep /delete\d+/, keys %{$r->{params}}) {
46 my ($ae) = Memories::AlbumEntry->search({
53 $r->objects([ $album ]);
54 $r->template("view"); $self->view($r);
57 package Memories::AlbumEntry;
58 use base qw(Memories::DBI);
59 __PACKAGE__->table("album_entry");
60 __PACKAGE__->columns(TEMP => qw/count/);
61 __PACKAGE__->columns(Essential => qw/id album photo/);
62 __PACKAGE__->set_sql(summary => qq/
63 SELECT id, album, count(*) AS count
69 Memories::AlbumEntry->has_a("photo" => "Memories::Photo");
70 Memories::AlbumEntry->has_a("album" => "Memories::Album");
72 Memories::Photo->has_many(albums => ["Memories::AlbumEntry" => "album"]);
73 Memories::Photo->has_many(albumentries => "Memories::AlbumEntry");
74 Memories::Album->has_many(photos => ["Memories::AlbumEntry" => "photo"] );
75 Memories::Album->has_many(albumentries => "Memories::AlbumEntry");