From 49618f03be76614f011e420fae0399150a1e0d6a Mon Sep 17 00:00:00 2001 From: dakkar Date: Tue, 25 Oct 2005 13:01:24 +0000 Subject: r705@narval2: dakkar | 2005-10-21 18:39:41 +0200 workaround per bug in CDBI::Loader: 'use LinksTags' esplicito in Links ora mostra tag correlati --- lib/Bookmarks/C/Main.pm | 2 ++ lib/Bookmarks/M/DB/Links.pm | 1 + lib/Bookmarks/M/DB/LinksTags.pm | 5 +++-- lib/Bookmarks/M/DB/Tags.pm | 5 +++-- 4 files changed, 9 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/Bookmarks/C/Main.pm b/lib/Bookmarks/C/Main.pm index a07c594..aa71f34 100644 --- a/lib/Bookmarks/C/Main.pm +++ b/lib/Bookmarks/C/Main.pm @@ -40,8 +40,10 @@ sub tag : Regex('^tag/(.*)$') { } else { my @links=$tag->ordered_links(); + my @related_tags=$tag->related_tags(); $c->stash->{tag}=$tag; $c->stash->{links}=[@links]; + $c->stash->{related}=[@related_tags]; $c->stash->{template}='links'; } } diff --git a/lib/Bookmarks/M/DB/Links.pm b/lib/Bookmarks/M/DB/Links.pm index 1719770..350e3d5 100644 --- a/lib/Bookmarks/M/DB/Links.pm +++ b/lib/Bookmarks/M/DB/Links.pm @@ -1,6 +1,7 @@ package Bookmarks::M::DB::Links; use strict; use MIME::Base64; +use Bookmarks::M::DB::LinksTags; for my $col_name (qw(add_date last_access_date)) { __PACKAGE__->has_a( $col_name => 'DateTime', diff --git a/lib/Bookmarks/M/DB/LinksTags.pm b/lib/Bookmarks/M/DB/LinksTags.pm index 448927e..27df97d 100644 --- a/lib/Bookmarks/M/DB/LinksTags.pm +++ b/lib/Bookmarks/M/DB/LinksTags.pm @@ -2,8 +2,9 @@ package Bookmarks::M::DB::LinksTags; use strict; -__PACKAGE__->has_a( link => 'Bookmarks::M::DB::Links' ); -__PACKAGE__->has_a( tag => 'Bookmarks::M::DB::Tags' ); +__PACKAGE__->columns( Primary => qw(link tag) ); +__PACKAGE__->has_a( 'link' => 'Bookmarks::M::DB::Links' ); +__PACKAGE__->has_a( 'tag' => 'Bookmarks::M::DB::Tags' ); =head1 NAME diff --git a/lib/Bookmarks/M/DB/Tags.pm b/lib/Bookmarks/M/DB/Tags.pm index 2bf38aa..b01695a 100644 --- a/lib/Bookmarks/M/DB/Tags.pm +++ b/lib/Bookmarks/M/DB/Tags.pm @@ -5,11 +5,12 @@ use strict; __PACKAGE__->has_many( links => ['Bookmarks::M::DB::LinksTags' => 'link'] ); __PACKAGE__->set_sql('related_tags', <<'END_SQL'); -SELECT tags.pk +SELECT DISTINCT tags.pk FROM tags, links_tags lt1, links_tags lt2 WHERE tags.pk = lt1.tag - AND lt2.link = lt2.link + AND lt1.link = lt2.link AND lt2.tag = ? + AND lt1.tag != lt2.tag END_SQL __PACKAGE__->set_sql('popularity', <<'END_SQL'); -- cgit v1.2.3