--- loncom/xml/lonxml.pm 2003/09/11 22:37:54 1.275 +++ loncom/xml/lonxml.pm 2004/01/21 02:33:05 1.297 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.275 2003/09/11 22:37:54 albertel Exp $ +# $Id: lonxml.pm,v 1.297 2004/01/21 02:33:05 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -96,6 +96,7 @@ use Apache::style(); use Apache::run(); use Apache::londefdef(); use Apache::scripttag(); +use Apache::languagetags(); use Apache::edit(); use Apache::inputtags(); use Apache::outputtags(); @@ -105,6 +106,7 @@ use Apache::loncommon(); use Apache::lonfeedback(); use Apache::lonmsg(); use Apache::loncacc(); +use Apache::lonlocal; #================================================== Main subroutine: xmlparse #debugging control, to turn on debugging modify the correct handler @@ -159,6 +161,15 @@ $Apache::lonxml::usestyle=1; $Apache::lonxml::style_values=''; $Apache::lonxml::style_end_values=''; +#array of ssi calls that need to occur after we are done parsing +@Apache::lonxml::ssi_info=(); + +#should we do the postag variable interpolation +$Apache::lonxml::post_evaluate=1; + +#a header message to emit in the case of any generated warning or errors +$Apache::lonxml::warnings_error_header=''; + sub xmlbegin { my $output=''; if ($ENV{'browser.mathml'}) { @@ -175,118 +186,13 @@ sub xmlbegin { } sub xmlend { - my ($discussiononly,$symb)=@_; - my $discussion=''; - if ($ENV{'request.course.id'}) { - my $crs='/'.$ENV{'request.course.id'}; - if ($ENV{'request.course.sec'}) { - $crs.='_'.$ENV{'request.course.sec'}; - } - $crs=~s/\_/\//g; - my $seeid=&Apache::lonnet::allowed('rin',$crs); - my $viewgrades=&Apache::lonnet::allowed('vgr',$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.= - '
Attachment: '.$fname.'.'.$ft.''; - } - if ($message) { - if ($hidden) { - $message=''.$message.''; - } - 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.=' Make Visible'; - } else { - $sender.=' Hide'; - } - $sender.=' Delete'; - } - } else { - if ($screenname) { - $sender=''.$screenname.''; - } - } - my $vgrlink; - if ($viewgrades) { - $vgrlink=&Apache::loncommon::submlink('Submissions',$contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'},$symb); - } - $discussion.='
'.$sender.' '.$vgrlink.' ('. - localtime($contrib{$idx.':timestamp'}). - '):
'.$message. - ''; - } - } - } - unless ($discussiononly) { - $discussion.=''; - } - } - if ($discussiononly) { - $discussion.=(<
-Attachment (128 KB max size): -
- -ENDDISCUSS - $discussion.=&Apache::lonfeedback::generate_preview_button(); - } - } + my $mode='xml'; + my $status='OPEN'; + if ($Apache::lonhomework::parsing_a_problem) { + $mode='problem'; + $status=$Apache::inputtags::status[-1]; } - return $discussion.($discussiononly?'':'