[Cpan-forum-commit] rev 234 - in trunk: . lib/CPAN lib/CPAN/Forum lib/CPAN/Forum/DB lib/CPAN/Forum/RM schema templates
svn at pti.co.il
svn at pti.co.il
Tue Jul 3 23:57:45 IDT 2007
Author: gabor
Date: 2007-07-03 23:57:45 +0300 (Tue, 03 Jul 2007)
New Revision: 234
Added:
trunk/lib/CPAN/Forum/DB/Tags.pm
trunk/lib/CPAN/Forum/RM/Tags.pm
Modified:
trunk/
trunk/MANIFEST
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/INC.pm
trunk/lib/CPAN/Forum/RM/Dist.pm
trunk/schema/schema.sql
trunk/templates/groups.tmpl
Log:
start adding code to deal with tags on CPAN::Forum but
it is still hidden to allow moving to new server
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4091
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4094
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/MANIFEST
===================================================================
--- trunk/MANIFEST 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/MANIFEST 2007-07-03 20:57:45 UTC (rev 234)
@@ -24,6 +24,7 @@
lib/CPAN/Forum/DB/Subscriptions_all.pm
lib/CPAN/Forum/DB/Subscriptions_pauseid.pm
lib/CPAN/Forum/DB/Subscriptions.pm
+lib/CPAN/Forum/DB/Tags.pm
lib/CPAN/Forum/DB/Users.pm
lib/CPAN/Forum/DB/Usergroups.pm
lib/CPAN/Forum/DB/UserInGroup.pm
@@ -36,6 +37,7 @@
lib/CPAN/Forum/RM/Other.pm
lib/CPAN/Forum/RM/Search.pm
lib/CPAN/Forum/RM/Subscriptions.pm
+lib/CPAN/Forum/RM/Tags.pm
lib/CPAN/Forum/RM/UserAccounts.pm
lib/CPAN/Forum/RM/Users.pm
Added: trunk/lib/CPAN/Forum/DB/Tags.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Tags.pm (rev 0)
+++ trunk/lib/CPAN/Forum/DB/Tags.pm 2007-07-03 20:57:45 UTC (rev 234)
@@ -0,0 +1,61 @@
+package CPAN::Forum::DB::Tags;
+use strict;
+use warnings;
+
+use CPAN::Forum::DBI;
+
+use Carp qw();
+
+sub list_tags {
+ my ($self, $group_id) = @_;
+ my $dbh = CPAN::Forum::DBI::db_Main();
+ #my $sth = $dbh->prepare("SELECT tags.name name FROM tags_on_groups, tags
+ # WHERE tags_on_groups.tag_id=tags.id AND tags_on_groups.group_id=?");
+
+ #$sth->execute($group_id);
+ #my $ar = $sth->fetchrow_arrayref;
+ #my @names = map { {name => $_->[0]} } @$ar;
+ #my @names = map { $_->[0] } @$ar;
+ #return @names;
+ return qw(qqrq perl);
+}
+
+sub attach_tag {
+ my ($self, $group_id, $text) = @_;
+ Carp::croak("Invalid tag") if not defined $text or $text !~ /^\w+$/;
+
+ $text = lc $text;
+
+ my $tag_id = $self->_get_tag_id($text);
+ if (not $tag_id) {
+ $tag_id = $self->_add_tag($text);
+ }
+ return if not $tag_id;
+
+ my $dbh = CPAN::Forum::DBI::db_Main();
+ return $dbh->do("INSERT INTO tags_on_groups (tag_id, group_id) VALUES (?, ?)",
+ undef, $tag_id, $group_id);
+}
+
+# assume valid text
+sub _add_tag {
+ my ($self, $text) = @_;
+
+ my $dbh = CPAN::Forum::DBI::db_Main();
+ my $sth->do("INSERT INTO tags (name) VALUES (?)", undef, $text);
+ return $self->_get_tag_id($text);
+}
+
+# assume valid text
+sub _get_tag_id {
+ my ($self, $text) = @_;
+
+ my $dbh = CPAN::Forum::DBI::db_Main();
+ my $sth = $dbh->prepare("SELECT id FROM tags WHERE name=?");
+ $sth->execute($text);
+ my ($id) = $sth->fetchrow_array;
+ $sth->finish;
+ return $id;
+}
+
+1;
Modified: trunk/lib/CPAN/Forum/INC.pm
===================================================================
--- trunk/lib/CPAN/Forum/INC.pm 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/lib/CPAN/Forum/INC.pm 2007-07-03 20:57:45 UTC (rev 234)
@@ -18,6 +18,8 @@
use CPAN::Forum::DB::UserInGroup;
use CPAN::Forum::DB::Users;
+#use CPAN::Forum::DB::Tags;
+
1;
Modified: trunk/lib/CPAN/Forum/RM/Dist.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Dist.pm 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/lib/CPAN/Forum/RM/Dist.pm 2007-07-03 20:57:45 UTC (rev 234)
@@ -62,6 +62,10 @@
if ($gr and $gr->pauseid and $gr->pauseid->pauseid) {
$t->param(pauseid_name => $gr->pauseid->pauseid);
}
+
+ #my (@tags) = CPAN::Forum::DB::Tags->list_tags($gid);
+ #$t->param(tags => join ", ", @tags);
+
return $t->output;
}
Added: trunk/lib/CPAN/Forum/RM/Tags.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Tags.pm (rev 0)
+++ trunk/lib/CPAN/Forum/RM/Tags.pm 2007-07-03 20:57:45 UTC (rev 234)
@@ -0,0 +1,7 @@
+package CPAN::Forum::RM::Search;
+use strict;
+use warnings;
+
+1;
+
+
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/lib/CPAN/Forum.pm 2007-07-03 20:57:45 UTC (rev 234)
@@ -586,6 +586,8 @@
selfconfig => 'CPAN::Forum::RM::UserAccounts',
change_info => 'CPAN::Forum::RM::UserAccounts',
change_password => 'CPAN::Forum::RM::UserAccounts',
+
+ tags => 'CPAN::Forum::RM::Tags',
);
=head2 setup
Modified: trunk/schema/schema.sql
===================================================================
--- trunk/schema/schema.sql 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/schema/schema.sql 2007-07-03 20:57:45 UTC (rev 234)
@@ -139,3 +139,20 @@
CREATE UNIQUE INDEX groups_name ON groups (name);
CREATE INDEX posts_thread ON posts (thread);
CREATE INDEX posts_gid ON posts (gid);
+
+---- add tagcloud
+--- TODO unique tag_id, group_id pair
+CREATE TABLE tags (
+ id INTEGER PRIMARY KEY auto_increment,
+ name VARCHAR(100) UNIQUE NOT NULL
+);
+CREATE UNIQUE INDEX tags_name ON tags (name);
+CREATE TABLE tags_on_groups (
+ tag_id INTEGER,
+ group_id INTEGER
+ ,FOREIGN KEY (tag_id) REFERENCES tags(id)
+ ,FOREIGN KEY (group_id) REFERENCES groups(id)
+);
+
+
+
Modified: trunk/templates/groups.tmpl
===================================================================
--- trunk/templates/groups.tmpl 2007-07-02 06:01:55 UTC (rev 233)
+++ trunk/templates/groups.tmpl 2007-07-03 20:57:45 UTC (rev 234)
@@ -38,7 +38,19 @@
</p>
<TMPL_INCLUDE NAME="listing.tmpl">
+<!--
<p>
+Tags: <TMPL_VAR tags><br />
+
+<form method="post" action="/update/">
+<input type="hidden" name="rm" value="tags" />
+<input type="hidden" name="group" value="<TMPL_VAR group>" />
+<input name="tag" value="<TMPL_VAR tag>" />
+<input type="submit" value="Add tag" />
+</form>
+</p>
+-->
+<p>
Users currently monitoring this forum:
<TMPL_LOOP users>
<a href="/users/<TMPL_VAR username>"><TMPL_VAR username></a>,
More information about the Cpan-forum-commit
mailing list