forums working for the most part

This commit is contained in:
JT Smith 2005-02-12 19:33:44 +00:00
parent 924139ba30
commit e6ca0fa19e
4 changed files with 51 additions and 28 deletions

View file

@ -14,6 +14,7 @@ use strict;
use Tie::CPHash;
use WebGUI::Asset;
use WebGUI::Asset::Template;
use WebGUI::Asset::Post::Thread;
use WebGUI::DateTime;
use WebGUI::Grouping;
use WebGUI::HTML;
@ -333,9 +334,9 @@ sub getTemplateVars {
$var{"dateSubmitted.human"} = epochToHuman($self->get("dateSubmitted"));
$var{"dateUpdated.human"} = epochToHuman($self->get("dateUpdated"));
$var{content} = $self->formatContent;
$var{content} = $self->formatContent if ($self->getThread);
$var{canEdit} = $self->canEdit;
$var{canEdit} = $self->canEdit if ($self->getThread);
$var{"delete.url"} = $self->getDeleteUrl;
$var{"edit.url"} = $self->getEditUrl;
@ -374,7 +375,7 @@ sub getTemplateVars {
sub getThread {
my $self = shift;
unless (exists $self->{_thread}) {
$self->{_thread} = WebGUI::Asset::Thread->new($self->get("threadId"));
$self->{_thread} = WebGUI::Asset::Post::Thread->new($self->get("threadId"));
}
return $self->{_thread};
}
@ -505,27 +506,37 @@ sub notifySubscribers {
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {
my $self = shift;
$self->SUPER::processPropertiesFromFormPost;
if ($session{form}{assetId} eq "new" && $session{setting}{enableKarma} && $self->getThread->getParent->get("karmaPerPost")) {
my $u = WebGUI::User->new($session{user}{userId});
$u->addKarma($self->getThread->getParent->get("karmaPerPost"), $self->getId, "Collaboration post");
$self->SUPER::processPropertiesFromFormPost;
my %data;
if ($session{form}{assetId} eq "new") {
if ($self->getParent->get("className") eq "WebGUI::Asset::Wobject::Collaboration") {
$self->update({threadId=>$self->getId});
} else {
$self->update({threadId=>$self->getParent->get("threadId")});
}
if ($session{setting}{enableKarma} && $self->getThread->getParent->get("karmaPerPost")) {
my $u = WebGUI::User->new($session{user}{userId});
$u->addKarma($self->getThread->getParent->get("karmaPerPost"), $self->getId, "Collaboration post");
}
%data = (
ownerUserId => $session{user}{userId},
groupIdView => $self->getThread->getParent->get("groupIdView"),
groupIdEdit => $self->getThread->getParent->get("groupIdEdit"),
isHidden => 1
);
if ($self->getThread->getParent->canModerate) {
$self->getThread->lock if ($session{form}{'lock'});
$self->getThread->stick if ($session{form}{stick});
}
}
my %data = (
ownerUserId => $session{user}{userId},
groupIdView => $self->getThread->get("groupIdView"),
groupIdEdit => $self->getThread->get("groupIdEdit")
);
$data{startDate} = $self->getThread->getParent->get("startDate") unless ($session{form}{startDate});
$data{endDate} = $self->getThread->getParent->get("endDate") unless ($session{form}{endDate});
($data{synopsis}, $data{content}) = $self->getSynopsisAndContentFromFormPost;
if ($self->getThread->getParent->get("addEditStampToPosts")) {
$data{content} .= "<p>\n\n --- (Edited on ".WebGUI::DateTime::epochToHuman()." by ".$session{user}{alias}.") --- \n</p>";
}
$data{isHidden} = 1;
$self->update(\%data);
$self->getThread->subscribe if ($session{form}{subscribe});
$self->getThread->lock if ($session{form}{'lock'});
$self->getThread->stick if ($session{form}{stick});
if ($self->getThread->getParent->get("moderatePosts")) {
$self->setStatusPending;
} else {
@ -700,21 +711,16 @@ sub www_edit {
name=>"class",
value=>$session{form}{class}
});
if ($self->getThread->getParent->canModerate) {
$var{'lock.form'} = WebGUI::Form::yesNo({
name=>'lock',
value=>$session{form}{'lock'}
});
}
if ($session{form}{class} eq "WebGUI::Asset::Post") { # new reply
return $self->getThread->getParent->processStyle(WebGUI::Privilege::insufficient()) unless ($self->canReply);
$self->{_thread} = $self->getParent->getThread;
return $self->getThread->getParent->processStyle(WebGUI::Privilege::insufficient()) unless ($self->getThread->canReply);
$var{isReply} = 1;
if ($session{form}{content} || $session{form}{title}) {
$content = $session{form}{content};
$title = $session{form}{title};
} else {
$content = "[quote]".$self->getParent->get("content")."[/quote]" if ($session{form}{withQuote});
$title = $self->getParent->get("subject");
$title = $self->getParent->get("title");
$title = "Re: ".$title unless ($title =~ /^Re:/);
}
$var{'subscribe.form'} = WebGUI::Form::yesNo({
@ -729,6 +735,10 @@ sub www_edit {
name=>'stick',
value=>$session{form}{stick}
});
$var{'lock.form'} = WebGUI::Form::yesNo({
name=>'lock',
value=>$session{form}{'lock'}
});
}
$var{'subscribe.form'} = WebGUI::Form::yesNo({
name=>"subscribe",
@ -825,7 +835,7 @@ sub www_edit {
value => $self->getValue("startDate")
});
$self->getThread->getParent->appendTemplateLabels(\%var);
return $self->getParent->processStyle($self->processTemplate(\%var,$self->getThread->getParent->get("postFormTemplateId")));
return $self->getThread->getParent->processStyle($self->processTemplate(\%var,$self->getThread->getParent->get("postFormTemplateId")));
}

View file

@ -610,7 +610,7 @@ sub view {
)
order by ";
if ($layout eq "flat") {
$sql .= "post.dateSubmitted";
$sql .= "Post.dateSubmitted";
} else {
$sql .= "asset.lineage";
}
@ -625,7 +625,7 @@ sub view {
for (my $i=0; $i<$replyVars->{depth}; $i++) {
push(@{$replyVars->{indent_loop}},{depth=>$i});
}
push (@{$var->{reply_loop}}, $replyVars);
push (@{$var->{post_loop}}, $replyVars);
}
$p->appendTemplateVars($var);
$var->{'add.url'} = $self->getParent->getNewThreadUrl;
@ -636,7 +636,7 @@ sub view {
$var->{"next.url"} = $next->getUrl if (defined $next);
$var->{"search.url"} = $self->getParent->getSearchUrl;
$var->{"back.url"} = $self->getThread->getParent->getUrl;
$var->{"collaboration.url"} = $self->getThread->getParent->getUrl;
return $self->processTemplate($var,$self->getParent->get("threadTemplateId"));
}

View file

@ -117,6 +117,7 @@ sub appendTemplateLabels {
$var->{"layout.flat.label"} = "Flat";
$var->{'image.label'} = "Image";
$var->{'link.header.label'} = "Edit Link";
$var->{"lastReply.label"} = "Last Reply";
$var->{"lock.label"} = "Lock";
$var->{"layout.label"} = "Layout";
$var->{'message.header.label'} = "Edit Message";
@ -131,6 +132,7 @@ sub appendTemplateLabels {
$var->{"rating.label"} = "Rating";
$var->{"rate.label"} = "Rate";
$var->{"reply.label"} = "Reply";
$var->{"replies.label"} = "Replies";
$var->{"readmore.label"} = "Read More";
$var->{"responses.label"} = "Responses";
$var->{'results.label'} = "Results";
@ -230,6 +232,10 @@ sub definition {
tableName=>'Collaboration',
className=>'WebGUI::Asset::Wobject::Collaboration',
properties=>{
allowReplies =>{
fieldType=>"yesNo",
defaultValue=>1
},
threadsPerPage =>{
fieldType=>"integer",
defaultValue=>30
@ -460,6 +466,11 @@ sub getEditForm {
-label=>"Edit Timeout",
-value=>$self->getValue("editTimeout")
);
$tabform->getTab("security")->yesNo(
-name=>"allowReplies",
-label=>"Allow replies?",
-value=>$self->getValue("allowReplies")
);
$tabform->getTab("security")->yesNo(
-name=>"addEditStampToPosts",
-label=>"Add edit stamp to posts?",
@ -475,7 +486,7 @@ sub getEditForm {
-label=>"Use content filter?",
-value=>$self->getValue("useContentFilter")
);
$tabform->getTab("display")->yesNo(
$tabform->getTab("properties")->yesNo(
-name=>"usePreview",
-label=>"Use preview?",
-value=>$self->getValue("usePreview")