version 1.187, 2002/08/07 13:58:38
|
version 1.194, 2002/09/10 20:53:36
|
Line 154 sub xmlbegin {
|
Line 154 sub xmlbegin {
|
} |
} |
|
|
sub xmlend { |
sub xmlend { |
|
my ($discussiononly,$symb)=@_; |
my $discussion=''; |
my $discussion=''; |
if ($ENV{'request.course.id'}) { |
if ($ENV{'request.course.id'}) { |
my $crs='/'.$ENV{'request.course.id'}; |
my $crs='/'.$ENV{'request.course.id'}; |
Line 162 sub xmlend {
|
Line 163 sub xmlend {
|
} |
} |
$crs=~s/\_/\//g; |
$crs=~s/\_/\//g; |
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
my $symb=&Apache::lonnet::symbread(); |
unless ($symb) { |
|
$symb=&Apache::lonnet::symbread(); |
|
} |
if ($symb) { |
if ($symb) { |
my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'}, |
my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'}, |
$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'}); |
if ($contrib{'version'}) { |
if ($contrib{'version'}) { |
$discussion.= |
unless ($discussiononly) { |
'<address><hr /><h2>Course Discussion of Resource</h2>'; |
$discussion.= |
|
'<address><hr />'; |
|
} |
my $idx; |
my $idx; |
for ($idx=1;$idx<=$contrib{'version'};$idx++) { |
for ($idx=1;$idx<=$contrib{'version'};$idx++) { |
my $hidden=($contrib{'hidden'}=~/\.$idx\./); |
my $hidden=($contrib{'hidden'}=~/\.$idx\./); |
Line 183 sub xmlend {
|
Line 188 sub xmlend {
|
} |
} |
my $sender='Anonymous'; |
my $sender='Anonymous'; |
if ((!$contrib{$idx.':anonymous'}) || ($seeid)) { |
if ((!$contrib{$idx.':anonymous'}) || ($seeid)) { |
$sender=$contrib{$idx.':plainname'}.' ('. |
$sender=&Apache::loncommon::aboutmewrapper( |
|
$contrib{$idx.':plainname'}, |
|
$contrib{$idx.':sendername'}, |
|
$contrib{$idx.':senderdomain'}).' ('. |
$contrib{$idx.':sendername'}.' at '. |
$contrib{$idx.':sendername'}.' at '. |
$contrib{$idx.':senderdomain'}.')'; |
$contrib{$idx.':senderdomain'}.')'; |
if ($contrib{$idx.':anonymous'}) { |
if ($contrib{$idx.':anonymous'}) { |
Line 211 sub xmlend {
|
Line 219 sub xmlend {
|
} |
} |
} |
} |
} |
} |
$discussion.='</address>'; |
unless ($discussiononly) { |
|
$discussion.='</address>'; |
|
} |
|
} |
|
if ($discussiononly) { |
|
$discussion.='<h1>'.$symb.'</h1>'; |
} |
} |
} |
} |
} |
} |
return $discussion.'</html>'; |
return $discussion.($discussiononly?'':'</html>'); |
} |
} |
|
|
sub tokeninputfield { |
sub tokeninputfield { |
Line 539 sub htmlclean {
|
Line 552 sub htmlclean {
|
return $output; |
return $output; |
} |
} |
|
|
|
sub latex_special_symbols { |
|
my ($current_token,$stack,$parstack)=@_; |
|
$current_token=~s/\\/\\char92 /g; |
|
$current_token=~s/\^/\\char94 /g; |
|
$current_token=~s/\~/\\char126 /g; |
|
$current_token=~s/(&[^a-z#])/\\$1/g; |
|
$current_token=~s/([^&]\#)/\\$1/g; |
|
$current_token=~s/(\$|_|{|})/\\$1/g; |
|
$current_token=~s/\\char92 /\\texttt{\\char92}/g; |
|
$current_token=~s/>/\$>\$/g; #more |
|
$current_token=~s/</\$<\$/g; #less |
|
if ($current_token=~m/\d%/) {$current_token =~ s/(\d)%/$1\\%/g;} #percent after digit |
|
if ($current_token=~m/\s%/) {$current_token =~ s/(\s)%/$1\\%/g;} #persent after space |
|
return $current_token; |
|
} |
|
|
sub inner_xmlparse { |
sub inner_xmlparse { |
my ($target,$stack,$parstack,$pars,$safeeval,$style_for_target)=@_; |
my ($target,$stack,$parstack,$pars,$safeeval,$style_for_target)=@_; |
my $finaloutput = ''; |
my $finaloutput = ''; |
Line 548 sub inner_xmlparse {
|
Line 577 sub inner_xmlparse {
|
while ($token = $$pars['-1']->get_token) { |
while ($token = $$pars['-1']->get_token) { |
if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) { |
if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) { |
if ($metamode<1) { |
if ($metamode<1) { |
if ($target eq 'tex') { |
my $text=$token->[1]; |
my @temp_array = @$stack; |
if ($token->[0] eq 'C' && $target eq 'tex') { |
if ($temp_array[-1] ne 'm') { |
$text = '%'.$text; |
if ($temp_array[-1] ne 'tt') { |
$text =~ s/[\n\r]//g; |
if ($token->[1]=~m/\^/) {$token->[1]=~s/\^/\\verb|\^|/g;} |
|
} else { |
|
if ($token->[1]=~m/\^/) {$token->[1]=~s/\^/}\\verb|\^|{/g;} |
|
} |
|
if ($token->[1]=~m/>/) {$token->[1]=~s/>/\$>\$/g;} |
|
if ($token->[1]=~m/</) {$token->[1]=~s/</\$<\$/g;} |
|
} |
|
} |
} |
$result.=$token->[1]; |
$result.=$text; |
} |
} |
} elsif ($token->[0] eq 'PI') { |
} elsif ($token->[0] eq 'PI') { |
if ($metamode<1) { |
if ($metamode<1) { |
Line 623 sub inner_xmlparse {
|
Line 645 sub inner_xmlparse {
|
$result= &Apache::run::evaluate($result,$safeeval,''); |
$result= &Apache::run::evaluate($result,$safeeval,''); |
} |
} |
} |
} |
|
if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) { |
|
if ($target eq 'tex') { |
|
$result=&latex_special_symbols($result,$stack,$parstack); |
|
} |
|
} |
|
|
# Encode any high ASCII characters |
# Encode any high ASCII characters |
if (!$Apache::lonxml::prevent_entity_encode) { |
if (!$Apache::lonxml::prevent_entity_encode) { |
$result=&HTML::Entities::encode($result,"\200-\377"); |
$result=&HTML::Entities::encode($result,"\200-\377"); |
Line 749 sub callsub {
|
Line 777 sub callsub {
|
} |
} |
if (!$deleted) { |
if (!$deleted) { |
if ($space) { |
if ($space) { |
#&Apache::lonxml::debug("Calling sub $sub in $space $metamode"); |
&Apache::lonxml::debug("Calling sub $sub in $space $metamode"); |
$sub1="$space\:\:$sub"; |
$sub1="$space\:\:$sub"; |
($currentstring,$nodefault) = &$sub1($target,$token,$tagstack, |
($currentstring,$nodefault) = &$sub1($target,$token,$tagstack, |
$parstack,$parser,$safeeval, |
$parstack,$parser,$safeeval, |
$style); |
$style); |
} else { |
} else { |
#&Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode"); |
&Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode"); |
if ($metamode <1) { |
if ($metamode <1) { |
if (defined($token->[4]) && ($metamode < 1)) { |
if (defined($token->[4]) && ($metamode < 1)) { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
Line 948 sub decreasedepth {
|
Line 976 sub decreasedepth {
|
} |
} |
|
|
sub get_all_text_unbalanced { |
sub get_all_text_unbalanced { |
|
#there is a copy of this in lonpublisher.pm |
my($tag,$pars)= @_; |
my($tag,$pars)= @_; |
my $token; |
my $token; |
my $result=''; |
my $result=''; |