version 1.111, 2004/08/01 16:05:14
|
version 1.112, 2004/08/03 21:29:32
|
Line 36 use Apache::loncommon();
|
Line 36 use Apache::loncommon();
|
use Apache::lontexconvert(); |
use Apache::lontexconvert(); |
use Apache::lonlocal; # must not have () |
use Apache::lonlocal; # must not have () |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use HTML::LCParser(); |
use Apache::lonspeller(); |
use Apache::lonspeller(); |
|
|
sub discussion_open { |
sub discussion_open { |
Line 268 sub list_discussion {
|
Line 269 sub list_discussion {
|
} |
} |
my ($message,$subject); |
my ($message,$subject); |
if ($idx > 0) { |
if ($idx > 0) { |
if ($contrib{$idx.':message'} =~ /.*::::\Q$numoldver\E::::(.+?)$/si) { |
if ($contrib{$idx.':message'} =~ /^<version num="0">/) { |
$message = $1; |
my %versions = (); |
|
&get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver); |
|
$message = &HTML::Entities::decode($versions{$numoldver}); |
} else { |
} else { |
$message = $contrib{$idx.':message'}; |
$message = $contrib{$idx.':message'}; |
} |
} |
Line 280 sub list_discussion {
|
Line 283 sub list_discussion {
|
$message=~s/\n/\<br \/\>/g; |
$message=~s/\n/\<br \/\>/g; |
$message=&Apache::lontexconvert::msgtexconverted($message); |
$message=&Apache::lontexconvert::msgtexconverted($message); |
if ($idx > 0) { |
if ($idx > 0) { |
if ($contrib{$idx.':subject'} =~ /.*::::\Q$numoldver\E::::(.+?)$/si) { |
if ($contrib{$idx.':subject'} =~ /^<version num="0"/) { |
$subject = $1; |
my %versions = (); |
|
&get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver); |
|
$subject = &HTML::Entities::decode($versions{$numoldver}); |
} else { |
} else { |
$subject = $contrib{$idx.':subject'}; |
$subject = $contrib{$idx.':subject'}; |
} |
} |
Line 966 END
|
Line 971 END
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) { |
unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) { |
|
if ($contrib{$idx.':history'}) { |
|
if ($contrib{$idx.':history'} =~ /:/) { |
|
my @oldversions = split/:/,$contrib{$idx.':history'}; |
|
$numoldver = @oldversions; |
|
} else { |
|
$numoldver = 1; |
|
} |
|
} |
if ($ENV{'form.replydisc'}) { |
if ($ENV{'form.replydisc'}) { |
if ($contrib{$idx.':history'}) { |
if ($contrib{$idx.':history'}) { |
if ($contrib{$idx.':history'} =~ /:/) { |
if ($contrib{$idx.':history'} =~ /:/) { |
Line 977 END
|
Line 990 END
|
} |
} |
my $message; |
my $message; |
if ($idx > 0) { |
if ($idx > 0) { |
if ($contrib{$idx.':message'} =~ /::::\Q$numoldver\E::::(.+?)$/si) { |
if ($contrib{$idx.':message'} =~ /^<version num="0"/) { |
$message = $1; |
my %versions = (); |
|
&get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver); |
|
$message = &HTML::Entities::decode($versions{$numoldver}); |
} else { |
} else { |
$message = $contrib{$idx.':message'}; |
$message = $contrib{$idx.':message'}; |
} |
} |
Line 988 END
|
Line 1003 END
|
$message=~s/\n/\<br \/\>/g; |
$message=~s/\n/\<br \/\>/g; |
$quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>'; |
$quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>'; |
if ($idx > 0) { |
if ($idx > 0) { |
if ($contrib{$idx.':subject'} =~ /::::\Q$numoldver\E::::(.+?)$/si) { |
if ($contrib{$idx.':subject'} =~ /^<version num="0"/) { |
$subject = $1; |
my %versions = (); |
|
&get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver); |
|
$subject = &HTML::Entities::decode($versions{$numoldver}); |
} else { |
} else { |
$subject = $contrib{$idx.':subject'}; |
$subject = $contrib{$idx.':subject'}; |
} |
} |
Line 998 END
|
Line 1015 END
|
$subject = &HTML::Entities::encode($subject,'<>&"'); |
$subject = &HTML::Entities::encode($subject,'<>&"'); |
} else { |
} else { |
$attachmenturls = $contrib{$idx.':attachmenturl'}; |
$attachmenturls = $contrib{$idx.':attachmenturl'}; |
if ($contrib{$idx.':message'} =~ /.*::::(\d+)::::(.*?)$/si) { |
if ($contrib{$idx.':message'} =~ /^<version num="0">/) { |
$numoldver = $1; |
my %versions = (); |
$comment = $2; |
&get_post_versions(\%versions,$contrib{$idx.':message'},$numoldver); |
|
$comment = $versions{$numoldver}; |
} else { |
} else { |
$comment = $contrib{$idx.':message'}; |
$comment = &HTML::Entities::encode($contrib{$idx.':message'},'<>&"'); |
} |
} |
$comment = &HTML::Entities::encode($comment,'<>&"'); |
if ($contrib{$idx.':subject'} =~ /<version num="0">/) { |
if ($contrib{$idx.':subject'} =~ /.*::::\d+::::(.+?)$/si) { |
my %versions = (); |
$subject = $1; |
&get_post_versions(\%versions,$contrib{$idx.':subject'},$numoldver); |
|
$subject = $versions{$numoldver}; |
} else { |
} else { |
$subject = $contrib{$idx.':subject'}; |
$subject = &HTML::Entities::encode($contrib{$idx.':subject'},'<>&"'); |
} |
} |
$subject = &HTML::Entities::encode($subject,'<>&"'); |
|
if (defined($contrib{$idx.':replyto'})) { |
if (defined($contrib{$idx.':replyto'})) { |
$parentmsg = $contrib{$idx.':replyto'}; |
$parentmsg = $contrib{$idx.':replyto'}; |
} |
} |
Line 1652 END
|
Line 1670 END
|
END |
END |
} |
} |
|
|
|
sub get_post_versions { |
|
my ($versions,$incoming,$numver) = @_; |
|
my $p = HTML::LCParser->new(\$incoming); |
|
my $done = 0; |
|
while ( (my $token = $p->get_tag("version")) && (!$done)) { |
|
my $num = $token->[1]{num}; |
|
my $text = $p->get_text("/version"); |
|
if (defined($numver)) { |
|
if ($num == $numver) { |
|
$$versions{$numver}=$text; |
|
$done = 1; |
|
} |
|
} else { |
|
$$versions{$num}=$text; |
|
} |
|
} |
|
return; |
|
} |
|
|
sub fail_redirect { |
sub fail_redirect { |
my ($r,$feedurl) = @_; |
my ($r,$feedurl) = @_; |
if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' }; |
if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' }; |
Line 2014 sub adddiscuss {
|
Line 2051 sub adddiscuss {
|
} |
} |
my $numnewver = $numoldver + 1; |
my $numnewver = $numoldver + 1; |
if (defined($oldcontrib{$oldidx.':subject'})) { |
if (defined($oldcontrib{$oldidx.':subject'})) { |
if ($oldcontrib{$oldidx.':subject'} =~ /::::\d+::::/) { |
if ($oldcontrib{$oldidx.':subject'} =~ /^<version num="0">/) { |
$contrib{'subject'} = $oldcontrib{$oldidx.':subject'}.'::::'.$numnewver.'::::'.$contrib{'subject'}; |
$contrib{'subject'} = '<version num="'.$numnewver.'">'.&HTML::Entities::encode($contrib{'subject'},'<>&"').'</version>'; |
|
$contrib{'subject'} = $oldcontrib{$oldidx.':subject'}.$contrib{'subject'}; |
} else { |
} else { |
$contrib{'subject'} = '::::0::::'.$oldcontrib{$oldidx.':subject'}.'::::1::::'.$contrib{'subject'}; |
$contrib{'subject'} = '<version num="0">'.&HTML::Entities::encode($oldcontrib{$oldidx.':subject'},'<>&"').'</version><version num="1">'.&HTML::Entities::encode($contrib{'subject'},'<>&"').'</version>'; |
} |
} |
} |
} |
if (defined($oldcontrib{$oldidx.':message'})) { |
if (defined($oldcontrib{$oldidx.':message'})) { |
if ($oldcontrib{$oldidx.':message'} =~ /::::\d+::::/) { |
if ($oldcontrib{$oldidx.':message'} =~ /^<version num="0">/) { |
$contrib{'message'} = $oldcontrib{$oldidx.':message'}.'::::'.$numnewver.'::::'.$contrib{'message'}; |
$contrib{'message'} = '<version num="'.$numnewver.'">'.&HTML::Entities::encode($contrib{'message'},'<>&"').'</version>'; |
|
$contrib{'message'} = $oldcontrib{$oldidx.':message'}.$contrib{'message'}; |
} else { |
} else { |
$contrib{'message'} = '::::0::::'.$oldcontrib{$oldidx.':message'}.'::::1::::'.$contrib{'message'}; |
$contrib{'message'} = '<version num="0">'.&HTML::Entities::encode($oldcontrib{$oldidx.':message'},'<>&"').'</version><version num="1">'.&HTML::Entities::encode($contrib{'message'},'<>&"').'</version>'; |
} |
} |
} |
} |
$contrib{'history'} .= $oldcontrib{$oldidx.':timestamp'}; |
$contrib{'history'} .= $oldcontrib{$oldidx.':timestamp'}; |
Line 2459 END
|
Line 2498 END
|
if ($contrib{$idx.':history'}) { |
if ($contrib{$idx.':history'}) { |
my $attachmenturls = $contrib{$idx.':attachmenturl'}; |
my $attachmenturls = $contrib{$idx.':attachmenturl'}; |
my @postversions = (); |
my @postversions = (); |
|
my %messages = (); |
|
my %subjects = (); |
if ($contrib{$idx.':history'} =~ m/:/) { |
if ($contrib{$idx.':history'} =~ m/:/) { |
@postversions = split/:/,$contrib{$idx.':history'}; |
@postversions = split/:/,$contrib{$idx.':history'}; |
} else { |
} else { |
@postversions = ("$contrib{$idx.':history'}"); |
@postversions = ("$contrib{$idx.':history'}"); |
} |
} |
if (@postversions > 0) { |
if (@postversions > 0) { |
|
&get_post_versions(\%messages,$contrib{$idx.':message'}); |
|
&get_post_versions(\%subjects,$contrib{$idx.':subject'}); |
push @postversions,$contrib{$idx.':timestamp'}; |
push @postversions,$contrib{$idx.':timestamp'}; |
my $screenname=&Apache::loncommon::screenname( |
my $screenname=&Apache::loncommon::screenname( |
$contrib{$idx.':sendername'}, |
$contrib{$idx.':sendername'}, |
Line 2485 END
|
Line 2528 END
|
for (my $i=0; $i<@postversions; $i++) { |
for (my $i=0; $i<@postversions; $i++) { |
my ($timesent,$message,$subject,$attachmsg); |
my ($timesent,$message,$subject,$attachmsg); |
$timesent = &Apache::lonlocal::locallocaltime($postversions[$i]); |
$timesent = &Apache::lonlocal::locallocaltime($postversions[$i]); |
if ($i == @postversions-1) { |
$message=&HTML::Entities::decode($messages{$i}); |
($message)=($contrib{$idx.':message'} =~ /.*::::\Q$i\E::::(.+?)$/si); |
$subject=&HTML::Entities::decode($subjects{$i}); |
($subject)=($contrib{$idx.':subject'} =~ /.*::::\Q$i\E::::(.+?)$/si); |
|
} else { |
|
($message)=($contrib{$idx.':message'} =~ /::::\Q$i\E::::(.+?)::::/si); |
|
($subject)=($contrib{$idx.':subject'} =~ /::::\Q$i\E::::(.+?)::::/si); |
|
} |
|
$message=~s/\n/\<br \/\>/g; |
$message=~s/\n/\<br \/\>/g; |
$message=&Apache::lontexconvert::msgtexconverted($message); |
$message=&Apache::lontexconvert::msgtexconverted($message); |
$subject=~s/\n/\<br \/\>/g; |
$subject=~s/\n/\<br \/\>/g; |