--- loncom/xml/lonxml.pm 2006/02/05 18:30:56 1.397 +++ loncom/xml/lonxml.pm 2006/03/09 00:39:28 1.400 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.397 2006/02/05 18:30:56 albertel Exp $ +# $Id: lonxml.pm,v 1.400 2006/03/09 00:39:28 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -971,6 +971,16 @@ sub decreasedepth { #print "
e $Apache::lonxml::depth : $Apache::lonxml::olddepth : $token->[1] : $curdepth\n"; } +sub get_id { + my ($parstack,$safeeval)=@_; + my $id= &Apache::lonxml::get_param('id',$parstack,$safeeval); + if ($env{'request.state'} eq 'construct' && $id =~ /(\.|_)/) { + &error(&mt("IDs are not allowed to contain "_" or "."")); + } + if ($id =~ /^\s*$/) { $id = $Apache::lonxml::curdepth; } + return $id; +} + sub get_all_text_unbalanced { #there is a copy of this in lonpublisher.pm my($tag,$pars)= @_; @@ -1031,6 +1041,27 @@ sub store_counter { return ''; } +{ + my $state; + sub clear_problem_counter { + undef($state); + &Apache::lonnet::delenv('form.counter'); + &Apache::lonxml::init_counter(); + &Apache::lonxml::store_counter(); + } + + sub remember_problem_counter { + &Apache::lonnet::transfer_profile_to_env(); + $state = $env{'form.counter'}; + } + + sub restore_problem_counter { + if (defined($state)) { + &Apache::lonnet::appenv(('form.counter' => $state)); + } + } +} + sub get_all_text { my($tag,$pars,$style)= @_; my $gotfullstack=1;