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 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::SQL;
use WebGUI::URL;
use WebGUI::User;
#-------------------------------------------------------------------
sub _deleteReplyTree {
@ -172,7 +173,7 @@ sub post {
#-------------------------------------------------------------------
sub postSave {
my ($rid, $username, $pid);
my ($u, $rid, $username, $pid);
if ($session{form}{subject} eq "") {
$session{form}{subject} = WebGUI::International::get(232);
}
@ -207,6 +208,10 @@ sub postSave {
}
WebGUI::SQL->write("update discussion set subject=".quote($session{form}{subject}).",
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 "";
}

View file

@ -65,6 +65,7 @@ sub duplicate {
allowDiscussion=>$_[0]->get("allowDiscussion"),
groupToPost=>$_[0]->get("groupToPost"),
groupToModerate=>$_[0]->get("groupToModerate"),
karmaPerPost=>$_[0]->get("karmaPerPost"),
editTimeout=>$_[0]->get("editTimeout")
});
WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"));
@ -88,7 +89,7 @@ sub purge {
#-------------------------------------------------------------------
sub set {
$_[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("groupToModerate",WebGUI::International::get(20,$namespace),[$groupToModerate]);
$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);
return $output;
} else {
@ -203,6 +209,7 @@ sub www_editSave {
$property{linkURL} = $session{form}{linkURL};
$property{allowDiscussion} = $session{form}{allowDiscussion};
$property{groupToModerate} = $session{form}{groupToModerate};
$property{karmaPerPost} = $session{form}{karmaPerPost};
$property{groupToPost} = $session{form}{groupToPost};
$property{editTimeout} = $session{form}{editTimeout};
$_[0]->set(\%property);
@ -224,7 +231,7 @@ sub www_post {
#-------------------------------------------------------------------
sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave();
WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();

View file

@ -54,7 +54,8 @@ sub duplicate {
groupToPost=>$_[0]->get("groupToPost"),
messagesPerPage=>$_[0]->get("messagesPerPage"),
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"));
}
@ -76,7 +77,7 @@ sub purge {
#-------------------------------------------------------------------
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->integer("messagesPerPage",WebGUI::International::get(4,$namespace),$messagesPerPage);
$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);
return $output;
} else {
@ -141,6 +147,7 @@ sub www_editSave {
messagesPerPage=>$session{form}{messagesPerPage},
groupToPost=>$session{form}{groupToPost},
editTimeout=>$session{form}{editTimeout},
karmaPerPost=>$session{form}{karmaPerPost},
groupToModerate=>$session{form}{groupToModerate}
});
return "";
@ -161,7 +168,7 @@ sub www_post {
#-------------------------------------------------------------------
sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave();
WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();

View file

@ -26,6 +26,7 @@ use WebGUI::Privilege;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::URL;
use WebGUI::User;
use WebGUI::Utility;
use WebGUI::Wobject;
@ -213,6 +214,8 @@ sub duplicate {
groupToApprove=>$_[0]->get("groupToApprove"),
allowDiscussion=>$_[0]->get("allowDiscussion"),
editTimeout=>$_[0]->get("editTimeout"),
karmaPerPost=>$_[0]->get("karmaPerPost"),
karmaPerSubmission=>$_[0]->get("karmaPerSubmission"),
groupToPost=>$_[0]->get("groupToPost"),
layout=>$_[0]->get("layout"),
displayThumbnails=>$_[0]->get("displayThumbnails"),
@ -252,7 +255,7 @@ sub purge {
#-------------------------------------------------------------------
sub set {
$_[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->integer("submissionsPerPage",WebGUI::International::get(6,$namespace),$submissionsPerPage);
$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("allowDiscussion",WebGUI::International::get(48,$namespace),$_[0]->get("allowDiscussion"));
$f->integer("editTimeout",WebGUI::International::get(49,$namespace),$_[0]->get("editTimeout"));
$f->group("groupToPost",WebGUI::International::get(50,$namespace),[$_[0]->get("groupToPost")]);
$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);
return $output;
} else {
@ -412,6 +425,8 @@ sub www_editSave {
defaultStatus=>$session{form}{defaultStatus},
groupToModerate=>$session{form}{groupToModerate},
groupToPost=>$session{form}{groupToPost},
karmaPerPost=>$session{form}{karmaPerPost},
karmaPerSubmission=>$session{form}{karmaPerSubmission},
editTimeout=>$session{form}{editTimeout},
allowDiscussion=>$session{form}{allowDiscussion},
layout=>$session{form}{layout},
@ -467,7 +482,7 @@ sub www_editSubmission {
#-------------------------------------------------------------------
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}'");
if ($owner == $session{user}{userId}
|| ($session{form}{sid} eq "new" && WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute")))
@ -476,6 +491,10 @@ sub www_editSubmissionSave {
$session{form}{sid} = getNextId("submissionId");
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}).")");
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->save("image");
@ -523,7 +542,7 @@ sub www_post {
#-------------------------------------------------------------------
sub www_postSave {
if (WebGUI::Privilege::isInGroup($_[0]->get("groupToPost"),$session{user}{userId})) {
WebGUI::Discussion::postSave();
WebGUI::Discussion::postSave($_[0]->get("karmaPerPost"));
return $_[0]->www_showMessage();
} else {
return WebGUI::Privilege::insufficient();