version 1.272, 2003/08/13 18:57:28
|
version 1.280, 2003/09/21 21:40:06
|
Line 105 use Apache::loncommon();
|
Line 105 use Apache::loncommon();
|
use Apache::lonfeedback(); |
use Apache::lonfeedback(); |
use Apache::lonmsg(); |
use Apache::lonmsg(); |
use Apache::loncacc(); |
use Apache::loncacc(); |
|
use Apache::lonlocal; |
|
|
#================================================== Main subroutine: xmlparse |
#================================================== Main subroutine: xmlparse |
#debugging control, to turn on debugging modify the correct handler |
#debugging control, to turn on debugging modify the correct handler |
Line 175 sub xmlbegin {
|
Line 176 sub xmlbegin {
|
} |
} |
|
|
sub xmlend { |
sub xmlend { |
my ($discussiononly,$symb)=@_; |
my $mode='xml'; |
my $discussion=''; |
my $status='OPEN'; |
if ($ENV{'request.course.id'}) { |
if ($Apache::lonhomework::parsing_a_problem) { |
my $crs='/'.$ENV{'request.course.id'}; |
$mode='problem'; |
if ($ENV{'request.course.sec'}) { |
$status=$Apache::inputtags::status[-1]; |
$crs.='_'.$ENV{'request.course.sec'}; |
|
} |
|
$crs=~s/\_/\//g; |
|
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
|
unless ($symb) { |
|
$symb=&Apache::lonnet::symbread(); |
|
} |
|
if ($symb) { |
|
my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, |
|
$ENV{'course.'.$ENV{'request.course.id'}.'.num'}); |
|
if ($contrib{'version'}) { |
|
unless ($discussiononly) { |
|
$discussion.= |
|
'<address><hr />'; |
|
} |
|
my $idx; |
|
for ($idx=1;$idx<=$contrib{'version'};$idx++) { |
|
my $hidden=($contrib{'hidden'}=~/\.$idx\./); |
|
my $deleted=($contrib{'deleted'}=~/\.$idx\./); |
|
unless ((($hidden) && (!$seeid)) || ($deleted)) { |
|
my $message=$contrib{$idx.':message'}; |
|
$message=~s/\n/\<br \/\>/g; |
|
$message=&Apache::lontexconvert::msgtexconverted($message); |
|
if ($contrib{$idx.':attachmenturl'}) { |
|
my ($fname,$ft) |
|
=($contrib{$idx.':attachmenturl'}=~/\/(\w+)\.(\w+)$/); |
|
$message.='<p>Attachment: <a href="'. |
|
&Apache::lonnet::tokenwrapper($contrib{$idx.':attachmenturl'}). |
|
'"><tt>'.$fname.'.'.$ft.'</tt></a>'; |
|
} |
|
if ($message) { |
|
if ($hidden) { |
|
$message='<font color="#888888">'.$message.'</font>'; |
|
} |
|
my $screenname=&Apache::loncommon::screenname( |
|
$contrib{$idx.':sendername'}, |
|
$contrib{$idx.':senderdomain'}); |
|
my $plainname=&Apache::loncommon::nickname( |
|
$contrib{$idx.':sendername'}, |
|
$contrib{$idx.':senderdomain'}); |
|
|
|
my $sender='Anonymous'; |
|
if ((!$contrib{$idx.':anonymous'}) || ($seeid)) { |
|
$sender=&Apache::loncommon::aboutmewrapper( |
|
$plainname, |
|
$contrib{$idx.':sendername'}, |
|
$contrib{$idx.':senderdomain'}).' ('. |
|
$contrib{$idx.':sendername'}.' at '. |
|
$contrib{$idx.':senderdomain'}.')'; |
|
if ($contrib{$idx.':anonymous'}) { |
|
$sender.=' [anonymous] '. |
|
$screenname; |
|
} |
|
if ($seeid) { |
|
if ($hidden) { |
|
$sender.=' <a href="/adm/feedback?unhide='. |
|
$symb.':::'.$idx.'">Make Visible</a>'; |
|
} else { |
|
$sender.=' <a href="/adm/feedback?hide='. |
|
$symb.':::'.$idx.'">Hide</a>'; |
|
} |
|
$sender.=' <a href="/adm/feedback?deldisc='. |
|
$symb.':::'.$idx.'">Delete</a>'; |
|
} |
|
} else { |
|
if ($screenname) { |
|
$sender='<i>'.$screenname.'</i>'; |
|
} |
|
} |
|
$discussion.='<p><b>'.$sender.'</b> ('. |
|
localtime($contrib{$idx.':timestamp'}). |
|
'):<blockquote>'.$message. |
|
'</blockquote></p>'; |
|
} |
|
} |
|
} |
|
unless ($discussiononly) { |
|
$discussion.='</address>'; |
|
} |
|
} |
|
if ($discussiononly) { |
|
$discussion.=(<<ENDDISCUSS); |
|
<form action="/adm/feedback" method="post" name="mailform" enctype="multipart/form-data"> |
|
<input type="submit" name="discuss" value="Post Discussion" /> |
|
<input type="submit" name="anondiscuss" value="Post Anonymous Discussion" /> |
|
<input type="hidden" name="symb" value="$symb" /> |
|
<input type="hidden" name="sendit" value="true" /> |
|
<br /> |
|
<font size="1">Note: in anonymous discussion, your name is visible only to |
|
course faculty</font><br /> |
|
<textarea name=comment cols=60 rows=10 wrap=hard></textarea> |
|
<p> |
|
Attachment (128 KB max size): <input type="file" name="attachment" /> |
|
</p> |
|
</form> |
|
ENDDISCUSS |
|
$discussion.=&Apache::lonfeedback::generate_preview_button(); |
|
} |
|
} |
|
} |
} |
return $discussion.($discussiononly?'':'</html>'); |
return &Apache::lonfeedback::list_discussion().'</html>'; |
} |
} |
|
|
sub tokeninputfield { |
sub tokeninputfield { |
Line 482 sub latex_special_symbols {
|
Line 383 sub latex_special_symbols {
|
if ($where eq 'header') { |
if ($where eq 'header') { |
$string =~ s/(\\|_|\^)/ /g; |
$string =~ s/(\\|_|\^)/ /g; |
$string =~ s/(\$|%|\#|&|\{|\})/\\$1/g; |
$string =~ s/(\$|%|\#|&|\{|\})/\\$1/g; |
|
$string =~ s/_/ /g; |
} else { |
} else { |
$string=~s/\\ /\\char92 /g; |
$string=~s/\\ /\\char92 /g; |
$string=~s/\^/\\char94 /g; |
$string=~s/\^/\\char94 /g; |
Line 590 sub inner_xmlparse {
|
Line 492 sub inner_xmlparse {
|
} |
} |
|
|
# 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"); |
} |
# } |
if ($Apache::lonxml::redirection) { |
if ($Apache::lonxml::redirection) { |
$Apache::lonxml::outputstack['-1'] .= $result; |
$Apache::lonxml::outputstack['-1'] .= $result; |
} else { |
} else { |
Line 891 sub decreasedepth {
|
Line 793 sub decreasedepth {
|
$Apache::lonxml::olddepth=$Apache::lonxml::depth+1; |
$Apache::lonxml::olddepth=$Apache::lonxml::depth+1; |
} |
} |
if ( $Apache::lonxml::depth < -1) { |
if ( $Apache::lonxml::depth < -1) { |
&Apache::lonxml::warning("Missing tags, unable to properly run file."); |
&Apache::lonxml::warning(&mt("Missing tags, unable to properly run file.")); |
$Apache::lonxml::depth='-1'; |
$Apache::lonxml::depth='-1'; |
} |
} |
my $curdepth=join('_',@Apache::lonxml::depthcounter); |
my $curdepth=join('_',@Apache::lonxml::depthcounter); |
Line 1163 SIMPLECONTENT
|
Line 1065 SIMPLECONTENT
|
return $filecontents; |
return $filecontents; |
} |
} |
|
|
|
sub createnewsty { |
|
my $filecontents=(<<SIMPLECONTENT); |
|
<definetag name=""> |
|
<render> |
|
<web></web> |
|
<tex></tex> |
|
</render> |
|
</definetag> |
|
SIMPLECONTENT |
|
return $filecontents; |
|
} |
|
|
|
|
sub inserteditinfo { |
sub inserteditinfo { |
my ($result,$filecontents)=@_; |
my ($result,$filecontents,$filetype)=@_; |
$filecontents = &HTML::Entities::encode($filecontents); |
$filecontents = &HTML::Entities::encode($filecontents); |
# my $editheader='<a href="#editsection">Edit below</a><hr />'; |
# my $editheader='<a href="#editsection">Edit below</a><hr />'; |
my $xml_help = Apache::loncommon::helpLatexCheatsheet(); |
my $xml_help = ''; |
|
if ($filetype eq 'html') { |
|
$xml_help=Apache::loncommon::helpLatexCheatsheet(); |
|
} |
|
my $cleanbut = ''; |
|
if ($filetype eq 'html') { |
|
$cleanbut='<input type="submit" name="attemptclean" value="'. |
|
&mt('Save and then attempt to clean HTML').'" />'; |
|
} |
my $titledisplay=&display_title(); |
my $titledisplay=&display_title(); |
|
my %lt=&Apache::lonlocal::texthash('st' => 'Save this', |
|
'vi' => 'View', |
|
'ed' => 'Edit'); |
my $buttons=(<<BUTTONS); |
my $buttons=(<<BUTTONS); |
<input type="submit" name="attemptclean" |
$cleanbut |
value="Save and then attempt to clean HTML" /> |
<input type="submit" name="savethisfile" value="$lt{'st'}" /> |
<input type="submit" name="savethisfile" value="Save this" /> |
<input type="submit" name="viewmode" value="$lt{'vi'}" /> |
<input type="submit" name="viewmode" value="View" /> |
|
BUTTONS |
BUTTONS |
my $editfooter=(<<ENDFOOTER); |
my $editfooter=(<<ENDFOOTER); |
<hr /> |
<hr /> |
<a name="editsection" /> |
<a name="editsection" /> |
<form method="post"> |
<form method="post"> |
$xml_help |
$xml_help |
<input type="hidden" name="editmode" value="Edit" /> |
<input type="hidden" name="editmode" value="$lt{'ed'}" /> |
$buttons<br /> |
$buttons<br /> |
<textarea cols="80" rows="40" name="filecont">$filecontents</textarea> |
<textarea cols="80" rows="40" name="filecont">$filecontents</textarea> |
<br />$buttons |
<br />$buttons |
Line 1229 sub handler {
|
Line 1153 sub handler {
|
$Apache::lonxml::debug=$ENV{'user.debug'}; |
$Apache::lonxml::debug=$ENV{'user.debug'}; |
|
|
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
$request->content_type('text/xml'); |
&Apache::loncommon::content_type($request,'text/xml'); |
} else { |
} else { |
$request->content_type('text/html'); |
&Apache::loncommon::content_type($request,'text/html'); |
} |
} |
&Apache::loncommon::no_cache($request); |
&Apache::loncommon::no_cache($request); |
$request->send_http_header; |
$request->send_http_header; |
Line 1240 sub handler {
|
Line 1164 sub handler {
|
|
|
|
|
my $file=&Apache::lonnet::filelocation("",$request->uri); |
my $file=&Apache::lonnet::filelocation("",$request->uri); |
|
my $filetype; |
|
if ($file =~ /\.sty$/) { |
|
$filetype='sty'; |
|
} else { |
|
$filetype='html'; |
|
} |
# |
# |
# Edit action? Save file. |
# Edit action? Save file. |
# |
# |
Line 1266 sub handler {
|
Line 1196 sub handler {
|
ENDNOTFOUND |
ENDNOTFOUND |
$filecontents=''; |
$filecontents=''; |
if ($ENV{'request.state'} ne 'published') { |
if ($ENV{'request.state'} ne 'published') { |
$filecontents=&createnewhtml(); |
if ($filetype eq 'sty') { |
|
$filecontents=&createnewsty(); |
|
} else { |
|
$filecontents=&createnewhtml(); |
|
} |
$ENV{'form.editmode'}='Edit'; #force edit mode |
$ENV{'form.editmode'}='Edit'; #force edit mode |
} |
} |
} else { |
} else { |
Line 1294 ENDNOTFOUND
|
Line 1228 ENDNOTFOUND
|
$displayfile=~s/^\/[^\/]*//; |
$displayfile=~s/^\/[^\/]*//; |
$result='<html><body bgcolor="#FFFFFF"><h3>'.$displayfile. |
$result='<html><body bgcolor="#FFFFFF"><h3>'.$displayfile. |
'</h3></body></html>'; |
'</h3></body></html>'; |
$result=&inserteditinfo($result,$filecontents); |
$result=&inserteditinfo($result,$filecontents,$filetype); |
} |
} |
} |
} |
|
if ($filetype eq 'html') { writeallows($request->uri); } |
writeallows($request->uri); |
|
|
|
|
|
$request->print($result); |
$request->print($result); |