Added karma.

This commit is contained in:
JT Smith 2002-06-24 01:17:17 +00:00
parent f09b00ffc9
commit 0712d229fd
5 changed files with 48 additions and 9 deletions

View file

@ -21,5 +21,6 @@ INSERT INTO international VALUES (30,'UserSubmission','English','Karma Per Submi
alter table UserSubmission add column karmaPerSubmission int not null default 0; alter table UserSubmission add column karmaPerSubmission int not null default 0;
alter table UserSubmission add column karmaPerPost int not null default 0; alter table UserSubmission add column karmaPerPost int not null default 0;
alter table MessageBoard add column karmaPerPost int not null default 0; alter table MessageBoard add column karmaPerPost int not null default 0;
alter table Article add column karmaPerPost int not null default 0;

View file

@ -21,6 +21,7 @@ use WebGUI::Search;
use WebGUI::Session; use WebGUI::Session;
use WebGUI::SQL; use WebGUI::SQL;
use WebGUI::URL; use WebGUI::URL;
use WebGUI::User;
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub _deleteReplyTree { sub _deleteReplyTree {
@ -172,7 +173,7 @@ sub post {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub postSave { sub postSave {
my ($rid, $username, $pid); my ($u, $rid, $username, $pid);
if ($session{form}{subject} eq "") { if ($session{form}{subject} eq "") {
$session{form}{subject} = WebGUI::International::get(232); $session{form}{subject} = WebGUI::International::get(232);
} }
@ -207,6 +208,10 @@ sub postSave {
} }
WebGUI::SQL->write("update discussion set subject=".quote($session{form}{subject}).", WebGUI::SQL->write("update discussion set subject=".quote($session{form}{subject}).",
message=".quote($session{form}{message}).", dateOfPost=".time()." where messageId=$session{form}{mid}"); message=".quote($session{form}{message}).", dateOfPost=".time()." where messageId=$session{form}{mid}");
if ($session{setting}{useKarma}) {
$u = WebGUI::User->new($session{user}{userId});
$u->karma($_[0],"Discussion (".$session{form}{wid}."/".$session{form}{sid}.")","Made a post.");
}
return ""; return "";
} }

View file

@ -65,6 +65,7 @@ sub duplicate {
allowDiscussion=>$_[0]->get("allowDiscussion"), allowDiscussion=>$_[0]->get("allowDiscussion"),
groupToPost=>$_[0]->get("groupToPost"), groupToPost=>$_[0]->get("groupToPost"),
groupToModerate=>$_[0]->get("groupToModerate"), groupToModerate=>$_[0]->get("groupToModerate"),
karmaPerPost=>$_[0]->get("karmaPerPost"),
editTimeout=>$_[0]->get("editTimeout") editTimeout=>$_[0]->get("editTimeout")
}); });
WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId")); WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"));
@ -88,7 +89,7 @@ sub purge {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub set { sub set {
$_[0]->SUPER::set($_[1], $_[0]->SUPER::set($_[1],
[qw(image linkTitle linkURL attachment convertCarriageReturns alignImage allowDiscussion groupToPost groupToModerate editTimeout)]); [qw(karmaPerPost image linkTitle linkURL attachment convertCarriageReturns alignImage allowDiscussion groupToPost groupToModerate editTimeout)]);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -179,6 +180,11 @@ sub www_edit {
$f->group("groupToPost",WebGUI::International::get(19,$namespace),[$_[0]->get("groupToPost")]); $f->group("groupToPost",WebGUI::International::get(19,$namespace),[$_[0]->get("groupToPost")]);
$f->group("groupToModerate",WebGUI::International::get(20,$namespace),[$groupToModerate]); $f->group("groupToModerate",WebGUI::International::get(20,$namespace),[$groupToModerate]);
$f->integer("editTimeout",WebGUI::International::get(21,$namespace),$editTimeout); $f->integer("editTimeout",WebGUI::International::get(21,$namespace),$editTimeout);
if ($session{setting}{useKarma}) {
$f->integer("karmaPerPost",WebGUI::International::get(541),$_[0]->get("karmaPerPost"));
} else {
$f->hidden("karmaPerPost",$_[0]->get("karmaPerPost"));
}
$output .= $_[0]->SUPER::www_edit($f->printRowsOnly); $output .= $_[0]->SUPER::www_edit($f->printRowsOnly);
return $output; return $output;
} else { } else {
@ -203,6 +209,7 @@ sub www_editSave {
$property{linkURL} = $session{form}{linkURL}; $property{linkURL} = $session{form}{linkURL};
$property{allowDiscussion} = $session{form}{allowDiscussion}; $property{allowDiscussion} = $session{form}{allowDiscussion};
$property{groupToModerate} = $session{form}{groupToModerate}; $property{groupToModerate} = $session{form}{groupToModerate};
$property{karmaPerPost} = $session{form}{karmaPerPost};
$property{groupToPost} = $session{form}{groupToPost}; $property{groupToPost} = $session{form}{groupToPost};
$property{editTimeout} = $session{form}{editTimeout}; $property{editTimeout} = $session{form}{editTimeout};
$_[0]->set(\%property); $_[0]->set(\%property);
@ -224,7 +231,7 @@ sub www_post {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_postSave { sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) { if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave(); WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage(); return $_[0]->www_showMessage();
} else { } else {
return WebGUI::Privilege::insufficient(); return WebGUI::Privilege::insufficient();

View file

@ -54,7 +54,8 @@ sub duplicate {
groupToPost=>$_[0]->get("groupToPost"), groupToPost=>$_[0]->get("groupToPost"),
messagesPerPage=>$_[0]->get("messagesPerPage"), messagesPerPage=>$_[0]->get("messagesPerPage"),
editTimeout=>$_[0]->get("editTimeout"), editTimeout=>$_[0]->get("editTimeout"),
groupToModerate=>$_[0]->get("groupToModerate") groupToModerate=>$_[0]->get("groupToModerate"),
karmaPerPost=>$_[0]->get("karmaPerPost")
}); });
WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId")); WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"));
} }
@ -76,7 +77,7 @@ sub purge {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub set { sub set {
$_[0]->SUPER::set($_[1],[qw(editTimeout groupToPost groupToModerate messagesPerPage)]); $_[0]->SUPER::set($_[1],[qw(editTimeout karmaPerPost groupToPost groupToModerate messagesPerPage)]);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -125,6 +126,11 @@ sub www_edit {
$f->group("groupToModerate",WebGUI::International::get(21,$namespace),[$groupToModerate]); $f->group("groupToModerate",WebGUI::International::get(21,$namespace),[$groupToModerate]);
$f->integer("messagesPerPage",WebGUI::International::get(4,$namespace),$messagesPerPage); $f->integer("messagesPerPage",WebGUI::International::get(4,$namespace),$messagesPerPage);
$f->integer("editTimeout",WebGUI::International::get(5,$namespace),$editTimeout); $f->integer("editTimeout",WebGUI::International::get(5,$namespace),$editTimeout);
if ($session{setting}{useKarma}) {
$f->integer("karmaPerPost",WebGUI::International::get(541),$_[0]->get("karmaPerPost"));
} else {
$f->hidden("karmaPerPost",$_[0]->get("karmaPerPost"));
}
$output .= $_[0]->SUPER::www_edit($f->printRowsOnly); $output .= $_[0]->SUPER::www_edit($f->printRowsOnly);
return $output; return $output;
} else { } else {
@ -141,6 +147,7 @@ sub www_editSave {
messagesPerPage=>$session{form}{messagesPerPage}, messagesPerPage=>$session{form}{messagesPerPage},
groupToPost=>$session{form}{groupToPost}, groupToPost=>$session{form}{groupToPost},
editTimeout=>$session{form}{editTimeout}, editTimeout=>$session{form}{editTimeout},
karmaPerPost=>$session{form}{karmaPerPost},
groupToModerate=>$session{form}{groupToModerate} groupToModerate=>$session{form}{groupToModerate}
}); });
return ""; return "";
@ -161,7 +168,7 @@ sub www_post {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_postSave { sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) { if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave(); WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage(); return $_[0]->www_showMessage();
} else { } else {
return WebGUI::Privilege::insufficient(); return WebGUI::Privilege::insufficient();

View file

@ -26,6 +26,7 @@ use WebGUI::Privilege;
use WebGUI::Session; use WebGUI::Session;
use WebGUI::SQL; use WebGUI::SQL;
use WebGUI::URL; use WebGUI::URL;
use WebGUI::User;
use WebGUI::Utility; use WebGUI::Utility;
use WebGUI::Wobject; use WebGUI::Wobject;
@ -213,6 +214,8 @@ sub duplicate {
groupToApprove=>$_[0]->get("groupToApprove"), groupToApprove=>$_[0]->get("groupToApprove"),
allowDiscussion=>$_[0]->get("allowDiscussion"), allowDiscussion=>$_[0]->get("allowDiscussion"),
editTimeout=>$_[0]->get("editTimeout"), editTimeout=>$_[0]->get("editTimeout"),
karmaPerPost=>$_[0]->get("karmaPerPost"),
karmaPerSubmission=>$_[0]->get("karmaPerSubmission"),
groupToPost=>$_[0]->get("groupToPost"), groupToPost=>$_[0]->get("groupToPost"),
layout=>$_[0]->get("layout"), layout=>$_[0]->get("layout"),
displayThumbnails=>$_[0]->get("displayThumbnails"), displayThumbnails=>$_[0]->get("displayThumbnails"),
@ -252,7 +255,7 @@ sub purge {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub set { sub set {
$_[0]->SUPER::set($_[1],[qw(submissionsPerPage groupToContribute groupToApprove defaultStatus groupToModerate $_[0]->SUPER::set($_[1],[qw(submissionsPerPage groupToContribute groupToApprove defaultStatus groupToModerate
groupToPost displayThumbnails editTimeout layout allowDiscussion)]); groupToPost displayThumbnails editTimeout karmaPerPost karmaPerSubmission layout allowDiscussion)]);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -389,11 +392,21 @@ sub www_edit {
$f->group("groupToContribute",WebGUI::International::get(2,$namespace),[$_[0]->get("groupToContribute")]); $f->group("groupToContribute",WebGUI::International::get(2,$namespace),[$_[0]->get("groupToContribute")]);
$f->integer("submissionsPerPage",WebGUI::International::get(6,$namespace),$submissionsPerPage); $f->integer("submissionsPerPage",WebGUI::International::get(6,$namespace),$submissionsPerPage);
$f->select("defaultStatus",\%submissionStatus,WebGUI::International::get(10,$namespace),[$defaultStatus]); $f->select("defaultStatus",\%submissionStatus,WebGUI::International::get(10,$namespace),[$defaultStatus]);
if ($session{setting}{useKarma}) {
$f->integer("karmaPerSubmission",WebGUI::International::get(30,$namespace),$_[0]->get("karmaPerSubmission"));
} else {
$f->hidden("karmaPerSubmission",$_[0]->get("karmaPerSubmission"));
}
$f->yesNo("displayThumbnails",WebGUI::International::get(51,$namespace),$_[0]->get("displayThumbnails")); $f->yesNo("displayThumbnails",WebGUI::International::get(51,$namespace),$_[0]->get("displayThumbnails"));
$f->yesNo("allowDiscussion",WebGUI::International::get(48,$namespace),$_[0]->get("allowDiscussion")); $f->yesNo("allowDiscussion",WebGUI::International::get(48,$namespace),$_[0]->get("allowDiscussion"));
$f->integer("editTimeout",WebGUI::International::get(49,$namespace),$_[0]->get("editTimeout")); $f->integer("editTimeout",WebGUI::International::get(49,$namespace),$_[0]->get("editTimeout"));
$f->group("groupToPost",WebGUI::International::get(50,$namespace),[$_[0]->get("groupToPost")]); $f->group("groupToPost",WebGUI::International::get(50,$namespace),[$_[0]->get("groupToPost")]);
$f->group("groupToModerate",WebGUI::International::get(44,$namespace),[$groupToModerate]); $f->group("groupToModerate",WebGUI::International::get(44,$namespace),[$groupToModerate]);
if ($session{setting}{useKarma}) {
$f->integer("karmaPerPost",WebGUI::International::get(541),$_[0]->get("karmaPerPost"));
} else {
$f->hidden("karmaPerPost",$_[0]->get("karmaPerPost"));
}
$output .= $_[0]->SUPER::www_edit($f->printRowsOnly); $output .= $_[0]->SUPER::www_edit($f->printRowsOnly);
return $output; return $output;
} else { } else {
@ -412,6 +425,8 @@ sub www_editSave {
defaultStatus=>$session{form}{defaultStatus}, defaultStatus=>$session{form}{defaultStatus},
groupToModerate=>$session{form}{groupToModerate}, groupToModerate=>$session{form}{groupToModerate},
groupToPost=>$session{form}{groupToPost}, groupToPost=>$session{form}{groupToPost},
karmaPerPost=>$session{form}{karmaPerPost},
karmaPerSubmission=>$session{form}{karmaPerSubmission},
editTimeout=>$session{form}{editTimeout}, editTimeout=>$session{form}{editTimeout},
allowDiscussion=>$session{form}{allowDiscussion}, allowDiscussion=>$session{form}{allowDiscussion},
layout=>$session{form}{layout}, layout=>$session{form}{layout},
@ -467,7 +482,7 @@ sub www_editSubmission {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_editSubmissionSave { sub www_editSubmissionSave {
my ($sqlAdd,$owner,$image,$attachment,$title); my ($sqlAdd,$owner,$image,$attachment,$title,$u);
($owner) = WebGUI::SQL->quickArray("select userId from UserSubmission_submission where submissionId='$session{form}{sid}'"); ($owner) = WebGUI::SQL->quickArray("select userId from UserSubmission_submission where submissionId='$session{form}{sid}'");
if ($owner == $session{user}{userId} if ($owner == $session{user}{userId}
|| ($session{form}{sid} eq "new" && WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute"))) || ($session{form}{sid} eq "new" && WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute")))
@ -476,6 +491,10 @@ sub www_editSubmissionSave {
$session{form}{sid} = getNextId("submissionId"); $session{form}{sid} = getNextId("submissionId");
WebGUI::SQL->write("insert into UserSubmission_submission (wobjectId,submissionId,userId,username) WebGUI::SQL->write("insert into UserSubmission_submission (wobjectId,submissionId,userId,username)
values (".$_[0]->get("wobjectId").",$session{form}{sid},$session{user}{userId},".quote($session{user}{username}).")"); values (".$_[0]->get("wobjectId").",$session{form}{sid},$session{user}{userId},".quote($session{user}{username}).")");
if ($session{setting}{useKarma}) {
$u = WebGUI::User->new($session{user}{userId});
$u->karma($_[0]->get("karmaPerSubmission"),$namespace." (".$_[0]->get("wobjectId")."/".$session{form}{sid}.")","User submission.");
}
} }
$image = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid}); $image = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
$image->save("image"); $image->save("image");
@ -523,7 +542,7 @@ sub www_post {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_postSave { sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) { if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave(); WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage(); return $_[0]->www_showMessage();
} else { } else {
return WebGUI::Privilege::insufficient(); return WebGUI::Privilege::insufficient();