From 87d2b6459355119f04387f7a2bdc08c271878f3c Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Tue, 17 May 2005 17:17:01 +0000 Subject: [PATCH] numerous fixes --- lib/WebGUI/Asset/Post.pm | 6 +++--- lib/WebGUI/Asset/Post/Thread.pm | 30 ++++++++++++++---------------- lib/WebGUI/Asset/Redirect.pm | 4 ++-- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index df7f8180e..818ce0377 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -395,7 +395,7 @@ sub getTemplateVars { $var{"deny.url"} = $self->getDenyUrl; $var{"reply.url"} = $self->getReplyUrl; $var{'reply.withquote.url'} = $self->getReplyUrl(1); - $var{'url'} = WebGUI::URL::getSiteURL().$self->getUrl.'#'.$self->getId; + $var{'url'} = $self->getUrl.'#'.$self->getId; $var{'rating.value'} = $self->get("rating")+0; $var{'rate.url.1'} = $self->getRateUrl(1); $var{'rate.url.2'} = $self->getRateUrl(2); @@ -706,7 +706,7 @@ sub rate { my ($sum) = WebGUI::SQL->quickArray("select sum(rating) from Post_rating where assetId=".quote($self->getId)); my $average = WebGUI::Utility::round($sum/$count); $self->update({rating=>$average}); - $self->getThread->rate; + $self->getThread->rate($rating); } } @@ -1049,7 +1049,7 @@ The web method to rate a post. sub www_rate { my $self = shift; - $self->rate($session{form}{rating}) if ($self->canView && !$self->hasRated); + $self->WebGUI::Asset::Post::rate($session{form}{rating}) if ($self->canView && !$self->hasRated); $self->www_view; } diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index 1e2d0c98a..ff74fa9e0 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -448,27 +448,25 @@ An integer between 1 and 5 (5 being best) to rate this post with. =cut sub rate { - my $self = shift; - my $rating = shift; - unless ($self->hasRated) { - WebGUI::SQL->write("insert into Post_rating (assetId,userId,ipAddress,dateOfRating,rating) values (" - .quote($self->getId).", ".quote($session{user}{userId}).", ".quote($session{env}{REMOTE_ADDR}).", - ".WebGUI::DateTime::time().", $rating)"); - my ($count) = WebGUI::SQL->quickArray("select count(*) from Post left join asset on Post.assetId=asset.assetId - where Post.threadId=".quote($self->getId)." and Post.rating>0"); - $count = $count || 1; - my ($sum) = WebGUI::SQL->quickArray("select sum(Post.rating) from Post left join asset on Post.assetId=asset.assetId - where Post.threadId=".quote($self->getId)." and Post.rating>0"); - my $average = round($sum/$count); - $self->update({rating=>$average}); + my $self = shift; + my $rating = shift; + unless ($self->hasRated) { + WebGUI::SQL->write("insert into Post_rating (assetId,userId,ipAddress,dateOfRating,rating) values (" + .quote($self->getId).", ".quote($session{user}{userId}).", ".quote($session{env}{REMOTE_ADDR}).", + ".WebGUI::DateTime::time().", ".quote($rating).")"); + my ($count) = WebGUI::SQL->quickArray("select count(*) from Post left join asset on Post.assetId=asset.assetId where Post.threadId=".quote($self->getId)." and Post.rating>0"); + $count = $count || 1; + my ($sum) = WebGUI::SQL->quickArray("select sum(Post.rating) from Post left join asset on Post.assetId=asset.assetId where Post.threadId=".quote($self->getId)." and Post.rating>0"); + my $average = round($sum/$count); + $self->update({rating=>$average}); if ($session{setting}{useKarma}) { my $poster = WebGUI::User->new($self->get("ownerUserId")); $poster->karma($rating*$self->getParent->get("karmaRatingMultiplier"),"collaboration rating","someone rated post ".$self->getId); my $rater = WebGUI::User->new($session{user}{userId}); - $rater->karma(-$self->getParent->get("karmaSpentToRate"),"collaboration rating","spent karma to rate post ".$self->getId); + $rater->karma(-$self->getParent->get("karmaSpentToRate"),"collaboration rating","spent karma to rate post ".$self->getId); } - $self->getParent->recalculateRating; - } + $self->getParent->recalculateRating; + } } diff --git a/lib/WebGUI/Asset/Redirect.pm b/lib/WebGUI/Asset/Redirect.pm index 913ee302e..862962f72 100644 --- a/lib/WebGUI/Asset/Redirect.pm +++ b/lib/WebGUI/Asset/Redirect.pm @@ -150,8 +150,8 @@ sub www_view { if ($session{var}{adminOn}) { return $self->getContainer->www_view; } - WebGUI::HTTP::setRedirect($self->get("redirectUrl")); - return undef; +WebGUI::HTTP::setRedirect($self->get("redirectUrl")) unless $self->newByUrl($self->get("redirectUrl"))->getUrl eq $self->getUrl; + return "Redirect is self-referential"; }