package Bookmarks::M::DB::Tags; use strict; __PACKAGE__->has_many( links => [Bookmarks::M::DB::LinkTags => 'link'] ); __PACKAGE__->set_sql('related_tags' <<'END_SQL'); SELECT tags.pk FROM tags, links_tags lt1, links_tags lt2 WHERE tags.pk = lt1.tag AND lt2.link = lt2.link AND lt2.tag = ? 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 END_SQL sub count_links { my ($self)=@_; return scalar $self->links(); } sub related_tags { my ($self)=@_; return $self->search_related_tags($self->pk()); } sub get_all_tags_by_popularity { return $_[0]->search_popularity(); } =head1 NAME Bookmarks::M::DB::Tags - CDBI Model Component Table Class =head1 SYNOPSIS Very simple to use =head1 DESCRIPTION Very nice component. =head1 AUTHOR Clever guy =head1 LICENSE This library is free software . You can redistribute it and/or modify it under the same terms as perl itself. =cut 1;