--- loncom/xml/lonxml.pm 2003/05/02 19:57:01 1.250 +++ loncom/xml/lonxml.pm 2003/10/23 18:14:16 1.286 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.250 2003/05/02 19:57:01 albertel Exp $ +# $Id: lonxml.pm,v 1.286 2003/10/23 18:14:16 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -69,6 +69,8 @@ use Safe::Hole(); use Math::Cephes(); use Math::Random(); use Opcode(); +use POSIX qw(strftime); + sub register { my ($space,@taglist) = @_; @@ -94,13 +96,17 @@ use Apache::style(); use Apache::run(); use Apache::londefdef(); use Apache::scripttag(); +use Apache::languagetags(); use Apache::edit(); +use Apache::inputtags(); +use Apache::outputtags(); use Apache::lonnet(); use Apache::File(); 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 @@ -151,6 +157,16 @@ $Apache::lonxml::counter_changed=0; #internal check on whether to look at style defs $Apache::lonxml::usestyle=1; +#locations used to store the parameter string for style substitutions +$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; + sub xmlbegin { my $output=''; if ($ENV{'browser.mathml'}) { @@ -167,113 +183,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); - 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.''; - } - } - $discussion.='
'.$sender.' ('. - 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?'':'