diff options
author | dakkar <dakkar@luxion> | 2005-10-20 11:27:13 +0000 |
---|---|---|
committer | dakkar <dakkar@luxion> | 2005-10-20 11:27:13 +0000 |
commit | 86a26a896db925d5d3ee8e0d6ed226a565214912 (patch) | |
tree | 376c14bfa44a20e7bb128e4ccee5bf54eebfdfd2 /lib/Bookmarks/M | |
parent | relazioni, e inizio lavori (diff) | |
download | Bookmarks-86a26a896db925d5d3ee8e0d6ed226a565214912.tar.gz Bookmarks-86a26a896db925d5d3ee8e0d6ed226a565214912.tar.bz2 Bookmarks-86a26a896db925d5d3ee8e0d6ed226a565214912.zip |
comincia a far finta di andare. le icone non vengono caricate, non so perché
Diffstat (limited to 'lib/Bookmarks/M')
-rw-r--r-- | lib/Bookmarks/M/DB/Links.pm | 8 | ||||
-rw-r--r-- | lib/Bookmarks/M/DB/Tags.pm | 17 |
2 files changed, 18 insertions, 7 deletions
diff --git a/lib/Bookmarks/M/DB/Links.pm b/lib/Bookmarks/M/DB/Links.pm index 851d9a3..3ae761d 100644 --- a/lib/Bookmarks/M/DB/Links.pm +++ b/lib/Bookmarks/M/DB/Links.pm @@ -1,15 +1,17 @@ package Bookmarks::M::DB::Links; - use strict; +use DBI; for my $col_name (qw(add_date last_access_date)) { __PACKAGE__->has_a( $col_name => 'DateTime', - inflate => sub { DateTime->from_epoch( epoch => $_ ) }, + inflate => sub { DateTime->from_epoch( epoch => $_[0] ) }, deflate => 'epoch', ); } -__PACKAGE__->has_many( tags => [Bookmarks::M::DB::LinkTags => 'tag'] ); +__PACKAGE__->has_many( tags => ['Bookmarks::M::DB::LinksTags' => 'tag'] ); + +__PACKAGE__->data_type( icon => DBI::SQL_BINARY ); =head1 NAME diff --git a/lib/Bookmarks/M/DB/Tags.pm b/lib/Bookmarks/M/DB/Tags.pm index e9057a8..c1e1f0b 100644 --- a/lib/Bookmarks/M/DB/Tags.pm +++ b/lib/Bookmarks/M/DB/Tags.pm @@ -2,9 +2,9 @@ package Bookmarks::M::DB::Tags; use strict; -__PACKAGE__->has_many( links => [Bookmarks::M::DB::LinkTags => 'link'] ); +__PACKAGE__->has_many( links => ['Bookmarks::M::DB::LinksTags' => 'link'] ); -__PACKAGE__->set_sql('related_tags' <<'END_SQL'); +__PACKAGE__->set_sql('related_tags', <<'END_SQL'); SELECT tags.pk FROM tags, links_tags lt1, links_tags lt2 WHERE tags.pk = lt1.tag @@ -12,13 +12,16 @@ SELECT tags.pk AND lt2.tag = ? END_SQL -__PACKAGE__->set_sql('popularity' <<'END_SQL'); +__PACKAGE__->set_sql('popularity', <<'END_SQL'); SELECT tags.pk, COUNT(links_tags.link) AS how_many FROM tags, links_tags WHERE tags.pk = links_tags.tag -ORDER BY how_many +GROUP BY links_tags.tag +ORDER BY how_many DESC END_SQL +__PACKAGE__->columns(TEMP=> 'how_wany'); + sub count_links { my ($self)=@_; return scalar $self->links(); @@ -34,6 +37,12 @@ sub get_all_tags_by_popularity { return $_[0]->search_popularity(); } +sub ordered_links { + my ($self)=@_; + my @links=$self->links(); + return sort {$a->access_count <=> $b->access_count} @links; +} + =head1 NAME Bookmarks::M::DB::Tags - CDBI Model Component Table Class |