summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2005-10-25 13:01:24 +0000
committerdakkar <dakkar@luxion>2005-10-25 13:01:24 +0000
commit49618f03be76614f011e420fae0399150a1e0d6a (patch)
treee8e31ba69060949841a5cc2876a883639ac5d279
parent r704@narval2: dakkar | 2005-10-21 16:58:52 +0200 (diff)
downloadBookmarks-49618f03be76614f011e420fae0399150a1e0d6a.tar.gz
Bookmarks-49618f03be76614f011e420fae0399150a1e0d6a.tar.bz2
Bookmarks-49618f03be76614f011e420fae0399150a1e0d6a.zip
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
-rw-r--r--lib/Bookmarks/C/Main.pm2
-rw-r--r--lib/Bookmarks/M/DB/Links.pm1
-rw-r--r--lib/Bookmarks/M/DB/LinksTags.pm5
-rw-r--r--lib/Bookmarks/M/DB/Tags.pm5
-rw-r--r--root/links10
5 files changed, 18 insertions, 5 deletions
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');
diff --git a/root/links b/root/links
index 7aac7ae..62321c7 100644
--- a/root/links
+++ b/root/links
@@ -4,9 +4,17 @@
</head>
<body>
<p>Tag: [% tag.name %] ( [% tag.descr %] )</p>
+<p>Related:</p>
+<ul>
+[% FOR rtag IN related %]
+<li><a href="[% base _ 'tag/' _ rtag.name %]">[% rtag.name %]</a></li>
+[% END %]
+</ul>
+<p>Links:</p>
<ol>
[% FOR link IN links %]
-<li><img src="[% base _ 'icon?link=' _ link.pk %]" /> <a href="[% base _ 'jump?link=' _ link.pk %]">»[% link.title %]«</a> (creato: [% link.add_date() %])</li>
+<li><img src="[% base _ 'icon?link=' _ link.pk %]" /> <a href="[% base _ 'jump?link=' _ link.pk %]">»[% link.title %]«</a> (creato: [% link.add_date() %])
+[% FOR rtag IN link.tags %] <a href="[% base _ 'tag/' _ rtag.name %]">[% rtag.name %]</a> - [% END %]</li>
[% END %]
</ol>
</body>