[Cpan-forum-commit] rev 316 - in trunk: . lib/CPAN lib/CPAN/Forum/DB
svn at pti.co.il
svn at pti.co.il
Thu Aug 2 09:25:17 EEST 2007
Author: gabor
Date: 2007-08-02 09:25:17 +0300 (Thu, 02 Aug 2007)
New Revision: 316
Modified:
trunk/
trunk/lib/CPAN/Forum.pm
trunk/lib/CPAN/Forum/DB/Posts.pm
Log:
hopefully fix error while submitting new post
turning submitting into plain SQL call
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4372
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4373
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DB/Posts.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Posts.pm 2007-08-02 06:25:02 UTC (rev 315)
+++ trunk/lib/CPAN/Forum/DB/Posts.pm 2007-08-02 06:25:17 UTC (rev 316)
@@ -167,5 +167,27 @@
return $self->_fetch_arrayref_of_hashes($sql, $value);
};
+sub add_post {
+ my ($self, $data, $parent_post, $parent) = @_;
+ $self->add('posts', $data);
+ my $dbh = CPAN::Forum::DBI::db_Main();
+ my $post_id = $dbh->func('last_insert_rowid');
+
+ my $sql = "UPDATE posts SET thread=?";
+ my @values = (
+ ($parent_post ? $parent_post->{thread} : $post_id),
+ );
+ if ($parent_post) {
+ $sql .= ", parent=?";
+ push @values, $parent;
+ }
+ $sql .= " WHERE id=?";
+ push @values, $post_id;
+ $dbh->do($sql, undef, @values);
+ return $post_id;
+}
+
+
+
1;
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2007-08-02 06:25:02 UTC (rev 315)
+++ trunk/lib/CPAN/Forum.pm 2007-08-02 06:25:17 UTC (rev 316)
@@ -1248,25 +1248,21 @@
);
}
- my $post_id;
my $username = $self->session->param("username");
my $user = CPAN::Forum::DB::Users->info_by( username => $username ); # SQL
if (not $user) {
return $self->internal_error("Unknown username: '$username'");
}
- eval {
- my $post = CPAN::Forum::DB::Posts->create({
+
+
+ my %data = (
uid => $user->{id},
- gid => $parent_post ? $parent_post->{gid} : $q->param("new_group_id"),
+ gid => ($parent_post ? $parent_post->{gid} : $q->param("new_group_id")),
subject => $q->param("new_subject"),
text => $new_text,
date => time,
- });
- $post->thread($parent_post ? $parent_post->{thread} : $post->id);
- $post->parent($parent) if $parent_post;
- $post->update;
- $post_id = $post->id;
- };
+ );
+ my $post_id = eval { CPAN::Forum::DB::Posts->add_post(\%data, $parent_post, $parent); }; #SQL
if ($@) {
#push @errors, "subject_too_long" if $@ =~ /subject_too_long/;
if (not @errors) {
More information about the Cpan-forum-commit
mailing list